Issue with address alignment on MSVC

Hi,

On MSVC the CFG::getBlockEdgeImpl method doesn't always returns addresses with 8-byte alignment (which ProgramPoint requires), resulting in unstable/weird behaviour, at least for the checker.

Any ideas ?

-Argiris

Argiris Kirtzidis wrote:

Hi,

On MSVC the CFG::getBlockEdgeImpl method doesn't always returns addresses with 8-byte alignment (which ProgramPoint requires), resulting in unstable/weird behaviour, at least for the checker.

Any ideas ?

I forgot to mention that I've commited a small change here:
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20080421/005454.html

so that these cases can be caught by an assertion.

Thanks Argiris. We'll need to allocate the std::pair<CFGBlock*, CFGBlock*> with a forced alignment. A FoldingSet combined with a BumpPtrAllocator (using a forced alignment) should do the trick.

I probably won't get to fixing this until Monday. Thanks for reporting it!

Fixed:

http://llvm.org/viewvc/llvm-project?rev=50364&view=rev

Thanks Argiris!