aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-12-14 10:58:51 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-12-14 10:58:51 -0800
commita3388042b3cf9be51a9c5b54d0d36bfde97e640b (patch)
tree8769a683e9712fa41b1de0e3cde6f5f3ad48d8c9
parent4eb4e0cb6f367236e77bf9ac992489dff3f92e86 (diff)
assume ridiculous alignment in load and store are from constant pointers, so segfault
-rw-r--r--lib/Target/CppBackend/CPPBackend.cpp2
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);