[cfe-dev] Analysis/ptr-arith.c fails on 64-bit systems
Sebastian Redl
sebastian.redl at getdesigned.at
Fri Mar 13 07:15:11 PDT 2009
Hi,
The test case Analysis/ptr-arith.c currently fails on 64-bit systems.
The reason is the evaluation of this expression:
colon + 1
The evaluator (RegionStoreManager::EvalBinOp) assumes that L and R (Base
and Offset) have the same width. However, in the above expression on
64-bit systems, Base is the pointer with 64 bits, whereas the Offset is
the literal 1, which has type int and thus is only 32 bits wide.
ConvertSignedness thus asserts.
I'm not sure what the best fix is here. Probably to call
getBasicVals()->getValue(Offset->getValue().getSExtValue(),
Base->getValue().getBitWidth(), Base->getValue().isUnsigned) instead of
ConvertSignedness.
Sebastian
More information about the cfe-dev
mailing list