"the one true solution for compatibility with GCC 3.3+"
... or so I hope
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8454 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp
index 0a9c8d1..921aa34 100644
--- a/lib/Target/CBackend/CBackend.cpp
+++ b/lib/Target/CBackend/CBackend.cpp
@@ -1133,7 +1133,7 @@
switch (ID) {
default: assert(0 && "Unknown LLVM intrinsic!");
case LLVMIntrinsic::va_start:
- Out << "va_start((va_list)*";
+ Out << "va_start(*(va_list*)";
writeOperand(I.getOperand(1));
Out << ", ";
// Output the last argument to the enclosing function...
@@ -1141,12 +1141,12 @@
Out << ")";
return;
case LLVMIntrinsic::va_end:
- Out << "va_end((va_list)*";
+ Out << "va_end(*(va_list*)";
writeOperand(I.getOperand(1));
Out << ")";
return;
case LLVMIntrinsic::va_copy:
- Out << "va_copy((va_list)*";
+ Out << "va_copy(*(va_list*)";
writeOperand(I.getOperand(1));
Out << ", (va_list)";
writeOperand(I.getOperand(2));