public void oldConvertIntToPointer( final ILocation loc, final ExpressionResult rexp, final CPointer newType) { if (OVERAPPROXIMATE_INT_POINTER_CONVERSION) { super.convertIntToPointer(loc, rexp, newType); } else { final Expression intExpression = rexp.lrVal.getValue(); final Expression baseAdress; final Expression offsetAdress; if (mTypeSizes.useFixedTypeSizes()) { final BigInteger maxPtrValuePlusOne = mTypeSizes.getMaxValueOfPointer().add(BigInteger.ONE); final IntegerLiteral maxPointer = new IntegerLiteral(loc, maxPtrValuePlusOne.toString()); baseAdress = constructArithmeticExpression( loc, IASTBinaryExpression.op_divide, intExpression, getCTypeOfPointerComponents(), maxPointer, getCTypeOfPointerComponents()); offsetAdress = constructArithmeticExpression( loc, IASTBinaryExpression.op_modulo, intExpression, getCTypeOfPointerComponents(), maxPointer, getCTypeOfPointerComponents()); } else { baseAdress = constructLiteralForIntegerType(loc, getCTypeOfPointerComponents(), BigInteger.ZERO); offsetAdress = intExpression; } final Expression pointerExpression = MemoryHandler.constructPointerFromBaseAndOffset(baseAdress, offsetAdress, loc); final RValue rValue = new RValue(pointerExpression, newType, false, false); rexp.lrVal = rValue; } }