aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/libclang/LibclangTest.cpp
diff options
context:
space:
mode:
authorElliot Colp <colpell@ca.ibm.com>2016-08-18 18:04:26 +0000
committerElliot Colp <colpell@ca.ibm.com>2016-08-18 18:04:26 +0000
commit687691aeac1065d2a023aafe0354507f90d7c080 (patch)
treef1e3ba80c4ac9e245f27128603cae4b78fa2abc9 /clang/unittests/libclang/LibclangTest.cpp
parent84c2da47f9bbe2e9fb61b3ba28c5bb3039f40c7d (diff)
downloadllvm-687691aeac1065d2a023aafe0354507f90d7c080.zip
llvm-687691aeac1065d2a023aafe0354507f90d7c080.tar.gz
llvm-687691aeac1065d2a023aafe0354507f90d7c080.tar.bz2
Fix SystemZ compilation abort caused by negative AND mask
Normally, when an AND with a constant is lowered to NILL, the constant value is truncated to 16 bits. However, since r274066, ANDs whose results are used in a shift are caught by a different pattern that does not truncate. The instruction printer expects a 16-bit unsigned immediate operand for NILL, so this results in an abort. This patch adds code to manually truncate the constant in this situation. The rest of the bits are then set, so we will detect a case for NILL "naturally" rather than using peephole optimizations. Differential Revision: http://reviews.llvm.org/D21854 llvm-svn: 279105
Diffstat (limited to 'clang/unittests/libclang/LibclangTest.cpp')
0 files changed, 0 insertions, 0 deletions