Fail gracefully if we have a zero arg varargs function
authorChris Lattner <sabre@nondot.org>
Thu, 23 Oct 2003 18:39:22 +0000 (18:39 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 23 Oct 2003 18:39:22 +0000 (18:39 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9436 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/CBackend/CBackend.cpp
lib/Target/CBackend/Writer.cpp

index f65d3d322ef109d212b41382a4403bf9ed71bf12..b1f8793d64d24849ed7955a0b4a79d92a5f22c72 100644 (file)
@@ -1193,6 +1193,12 @@ void CWriter::visitCallInst(CallInst &I) {
         
         Out << "va_start(*(va_list*)&" << Mang->getValueName(&I) << ", ";
         // Output the last argument to the enclosing function...
+        if (I.getParent()->getParent()->aempty()) {
+          std::cerr << "The C backend does not currently support zero "
+                    << "argument varargs functions, such as '"
+                    << I.getParent()->getParent()->getName() << "'!\n";
+          abort();
+        }
         writeOperand(&I.getParent()->getParent()->aback());
         Out << ")";
         return;
index f65d3d322ef109d212b41382a4403bf9ed71bf12..b1f8793d64d24849ed7955a0b4a79d92a5f22c72 100644 (file)
@@ -1193,6 +1193,12 @@ void CWriter::visitCallInst(CallInst &I) {
         
         Out << "va_start(*(va_list*)&" << Mang->getValueName(&I) << ", ";
         // Output the last argument to the enclosing function...
+        if (I.getParent()->getParent()->aempty()) {
+          std::cerr << "The C backend does not currently support zero "
+                    << "argument varargs functions, such as '"
+                    << I.getParent()->getParent()->getName() << "'!\n";
+          abort();
+        }
         writeOperand(&I.getParent()->getParent()->aback());
         Out << ")";
         return;