Right, we break strict aliasing requirements. Make sure to disable strict
aliasing in the C compiler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12772 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/gccld/GenerateCode.cpp b/tools/gccld/GenerateCode.cpp
index d6fad5f..7a8f54a 100644
--- a/tools/gccld/GenerateCode.cpp
+++ b/tools/gccld/GenerateCode.cpp
@@ -176,15 +176,16 @@
const std::string &InputFile,
const std::string &llc, char ** const envp) {
// Run LLC to convert the bytecode file into C.
- const char *cmd[7];
+ const char *cmd[8];
cmd[0] = llc.c_str();
cmd[1] = "-march=c";
cmd[2] = "-f";
- cmd[3] = "-o";
- cmd[4] = OutputFile.c_str();
- cmd[5] = InputFile.c_str();
- cmd[6] = 0;
+ cmd[3] = "-fno-strict-aliasing";
+ cmd[4] = "-o";
+ cmd[5] = OutputFile.c_str();
+ cmd[6] = InputFile.c_str();
+ cmd[7] = 0;
return ExecWait(cmd, envp);
}