Fix a use of uninitialized variables, found by Ted!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123947 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaTemplateVariadic.cpp b/lib/Sema/SemaTemplateVariadic.cpp
index 3f76d9f..8f57c56 100644
--- a/lib/Sema/SemaTemplateVariadic.cpp
+++ b/lib/Sema/SemaTemplateVariadic.cpp
@@ -532,14 +532,16 @@
     //   Template argument deduction can extend the sequence of template 
     //   arguments corresponding to a template parameter pack, even when the
     //   sequence contains explicitly specified template arguments.
-    if (NamedDecl *PartialPack 
-                  = CurrentInstantiationScope->getPartiallySubstitutedPack()) {
-      unsigned PartialDepth, PartialIndex;
-      llvm::tie(PartialDepth, PartialIndex) = getDepthAndIndex(PartialPack);
-      if (PartialDepth == Depth && PartialIndex == Index)
-        RetainExpansion = true;
+    if (!IsFunctionParameterPack) {
+      if (NamedDecl *PartialPack 
+                    = CurrentInstantiationScope->getPartiallySubstitutedPack()){
+        unsigned PartialDepth, PartialIndex;
+        llvm::tie(PartialDepth, PartialIndex) = getDepthAndIndex(PartialPack);
+        if (PartialDepth == Depth && PartialIndex == Index)
+          RetainExpansion = true;
+      }
     }
-
+    
     if (!NumExpansions) {
       // The is the first pack we've seen for which we have an argument. 
       // Record it.