summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/ExecutionDepsFix.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2017-01-30 23:30:26 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2017-01-30 23:30:26 +0000
commit642a2365fbcaf53e9eab2b9ec30985abf34c134f (patch)
tree559b2d5bdc1ecf6ade5932937f22dbb7496080f8 /llvm/lib/CodeGen/ExecutionDepsFix.cpp
parent9f432ec24c0e7ad652c873bd0ef02f553fa0005d (diff)
downloadbcm5719-llvm-642a2365fbcaf53e9eab2b9ec30985abf34c134f.tar.gz
bcm5719-llvm-642a2365fbcaf53e9eab2b9ec30985abf34c134f.zip
PR28739: Check that integer values fit into 64 bits before extracting them as 64 bit values for pointer arithmetic.
This fixes various ways to tickle an assertion in constant expression evaluation when using __int128. Longer term, we need to figure out what should happen here: either any kind of overflow in offset calculation should result in a non-constant value or we should truncate to 64 bits. In C++11 onwards, we're effectively already checking for overflow because we strictly enforce array bounds checks, but even there some forms of overflow can slip past undetected. llvm-svn: 293568
Diffstat (limited to 'llvm/lib/CodeGen/ExecutionDepsFix.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud