Pretty-print a ParenListExpr in a variable initializer correctly. Patch by Grzegorz...
authorEli Friedman <eli.friedman@gmail.com>
Fri, 19 Oct 2012 20:36:44 +0000 (20:36 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Fri, 19 Oct 2012 20:36:44 +0000 (20:36 +0000)
llvm-svn: 166311

clang/lib/AST/DeclPrinter.cpp
clang/test/SemaCXX/ast-print.cpp

index 45280df..386ad66 100644 (file)
@@ -629,13 +629,13 @@ void DeclPrinter::VisitVarDecl(VarDecl *D) {
       ImplicitInit = D->getInitStyle() == VarDecl::CallInit &&
           Construct->getNumArgs() == 0 && !Construct->isListInitialization();
     if (!ImplicitInit) {
-      if (D->getInitStyle() == VarDecl::CallInit)
+      if ((D->getInitStyle() == VarDecl::CallInit) && !isa<ParenListExpr>(Init))
         Out << "(";
       else if (D->getInitStyle() == VarDecl::CInit) {
         Out << " = ";
       }
       Init->printPretty(Out, 0, Policy, Indentation);
-      if (D->getInitStyle() == VarDecl::CallInit)
+      if ((D->getInitStyle() == VarDecl::CallInit) && !isa<ParenListExpr>(Init))
         Out << ")";
     }
   }
index 5e89c8b..e0c154a 100644 (file)
@@ -52,3 +52,11 @@ void test6() {
     unsigned int y = 0;
     test6fn((int&)y);
 }
+
+// CHECK: S s( 1, 2 );
+
+template <class S> void test7()
+{
+    S s( 1,2 );
+}
+