If there are attributes on the varargs part of a
call, don't discard them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45884 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index 9f12b3e..9674bba 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -2675,8 +2675,15 @@
 
       if (Ty->isVarArg()) {
         if (I == E)
-          for (; ArgI != ArgE; ++ArgI)
+          for (; ArgI != ArgE; ++ArgI, ++index) {
             Args.push_back(ArgI->Val); // push the remaining varargs
+            if (ArgI->Attrs != ParamAttr::None) {
+              ParamAttrsWithIndex PAWI;
+              PAWI.index = index;
+              PAWI.attrs = ArgI->Attrs;
+              Attrs.push_back(PAWI);
+            }
+          }
       } else if (I != E || ArgI != ArgE)
         GEN_ERROR("Invalid number of parameters detected");
     }
@@ -3006,8 +3013,15 @@
       }
       if (Ty->isVarArg()) {
         if (I == E)
-          for (; ArgI != ArgE; ++ArgI)
+          for (; ArgI != ArgE; ++ArgI, ++index) {
             Args.push_back(ArgI->Val); // push the remaining varargs
+            if (ArgI->Attrs != ParamAttr::None) {
+              ParamAttrsWithIndex PAWI;
+              PAWI.index = index;
+              PAWI.attrs = ArgI->Attrs;
+              Attrs.push_back(PAWI);
+            }
+          }
       } else if (I != E || ArgI != ArgE)
         GEN_ERROR("Invalid number of parameters detected");
     }