because some functions just use va_start and pass things to vfprintf
authorAndrew Lenharth <andrewl@lenharth.org>
Mon, 20 Jun 2005 15:41:37 +0000 (15:41 +0000)
committerAndrew Lenharth <andrewl@lenharth.org>
Mon, 20 Jun 2005 15:41:37 +0000 (15:41 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22269 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AsmParser/llvmAsmParser.y

index 94d6edf5c54e9b2cbc74a63494d1124bc7bf9fa9..b71f618779be2d33c00751c437d9123fb369d038 100644 (file)
@@ -737,6 +737,17 @@ static PATypeHolder HandleUpRefs(const Type *ty) {
   Module *Result = ParserResult;
   ParserResult = 0;
 
+  //Not all functions use vaarg, so make a second check for ObsoleteVarArgs
+  {
+    Function* F;
+    if ((F = Result->getNamedFunction("llvm.va_start"))
+        && F->getFunctionType()->getNumParams() == 0)
+      ObsoleteVarArgs = true;
+    if((F = Result->getNamedFunction("llvm.va_copy"))
+       && F->getFunctionType()->getNumParams() == 1)
+      ObsoleteVarArgs = true;
+  }
+
   if (ObsoleteVarArgs && NewVarArgs)
   {
     std::cerr << "This file is corrupt in that it uses both new and old style varargs\n";