diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-12-14 10:58:51 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-12-14 10:58:51 -0800 |
commit | a3388042b3cf9be51a9c5b54d0d36bfde97e640b (patch) | |
tree | 8769a683e9712fa41b1de0e3cde6f5f3ad48d8c9 | |
parent | 4eb4e0cb6f367236e77bf9ac992489dff3f92e86 (diff) |
assume ridiculous alignment in load and store are from constant pointers, so segfault
-rw-r--r-- | lib/Target/CppBackend/CPPBackend.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Target/CppBackend/CPPBackend.cpp b/lib/Target/CppBackend/CPPBackend.cpp index df598ebd27..4d711827a5 100644 --- a/lib/Target/CppBackend/CPPBackend.cpp +++ b/lib/Target/CppBackend/CPPBackend.cpp @@ -985,6 +985,7 @@ std::string CppWriter::getLoad(std::string Assign, const Value *P, const Type *T std::string text; if (Bytes <= Alignment || Alignment == 0) { text = Assign + getPtrLoad(P); + if (Alignment == 536870912) text += "; abort() /* segfault */"; } else { // unaligned in some manner std::string PS = getOpName(P); @@ -1073,6 +1074,7 @@ std::string CppWriter::getStore(const Value *P, const Type *T, std::string VS, u std::string text; if (Bytes <= Alignment || Alignment == 0) { text = getPtrUse(P) + " = " + VS; + if (Alignment == 536870912) text += "; abort() /* segfault */"; } else { // unaligned in some manner std::string PS = getOpName(P); |