From b614fab39dcf101ec9c87bf84b0c75a3e43e7cfe Mon Sep 17 00:00:00 2001 From: Dmitri Gribenko Date: Sun, 3 Feb 2013 23:02:47 +0000 Subject: DeclPrinter: fix CXXConstructExpr printing with implicit default argument This is an improvement of r173630, that handles the following case: struct VirualDestrClass { VirualDestrClass(int arg); virtual ~VirualDestrClass(); }; struct ConstrWithCleanupsClass { ConstrWithCleanupsClass(const VirualDestrClass& cplx = VirualDestrClass(42)); }; ConstrWithCleanupsClass cwcNoArg; That was printed as: ConstrWithCleanupsClass cwcNoArg(); llvm-svn: 174296 --- clang/test/SemaCXX/ast-print.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'clang/test') diff --git a/clang/test/SemaCXX/ast-print.cpp b/clang/test/SemaCXX/ast-print.cpp index 9ce1f8d5af8..5de8c4b51b9 100644 --- a/clang/test/SemaCXX/ast-print.cpp +++ b/clang/test/SemaCXX/ast-print.cpp @@ -110,13 +110,30 @@ struct NoArgClass NoArgClass() {} }; +struct VirualDestrClass +{ + VirualDestrClass(int arg); + virtual ~VirualDestrClass(); +}; + +struct ConstrWithCleanupsClass +{ + ConstrWithCleanupsClass(const VirualDestrClass& cplx = VirualDestrClass(42)); +}; + // CHECK: test12 // CHECK-NEXT: DefaultArgClass useDefaultArg; // CHECK-NEXT: DefaultArgClass overrideDefaultArg(1); // CHECK-NEXT: NoArgClass noArg; +// CHECK-NEXT: ConstrWithCleanupsClass cwcNoArg; +// CHECK-NEXT: ConstrWithCleanupsClass cwcOverrideArg(48); +// CHECK-NEXT: ConstrWithCleanupsClass cwcExplicitArg(VirualDestrClass(56)); void test12() { DefaultArgClass useDefaultArg; DefaultArgClass overrideDefaultArg(1); NoArgClass noArg; + ConstrWithCleanupsClass cwcNoArg; + ConstrWithCleanupsClass cwcOverrideArg(48); + ConstrWithCleanupsClass cwcExplicitArg(VirualDestrClass(56)); } -- cgit v1.2.3