diff options
author | Nico Weber <nicolasweber@gmx.de> | 2015-01-04 20:32:12 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2015-01-04 20:32:12 +0000 |
commit | 49e6bc024d0269f580e8601aecf17eaf5537df50 (patch) | |
tree | 3b13a6f2eceb700c87a1fc68bec60c3a5bb12dd3 /clang/test/Misc/ast-dump-invalid.cpp | |
parent | 1e94ef5bd09cc47f335d26a98469ca70c4226900 (diff) | |
download | bcm5719-llvm-49e6bc024d0269f580e8601aecf17eaf5537df50.tar.gz bcm5719-llvm-49e6bc024d0269f580e8601aecf17eaf5537df50.zip |
Remove an assert that's not true on invalid code.
r185773 added an assert that checked that a CXXUnresolvedConstructExpr either
has a valid rparen, or exactly one argument. This doesn't have to be true for
invalid inputs. Convert the assert to an if, and add a test for this case.
Found by SLi's afl bot.
llvm-svn: 225140
Diffstat (limited to 'clang/test/Misc/ast-dump-invalid.cpp')
-rw-r--r-- | clang/test/Misc/ast-dump-invalid.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/Misc/ast-dump-invalid.cpp b/clang/test/Misc/ast-dump-invalid.cpp new file mode 100644 index 00000000000..3b97cc65409 --- /dev/null +++ b/clang/test/Misc/ast-dump-invalid.cpp @@ -0,0 +1,20 @@ +// RUN: not %clang_cc1 -std=c++11 -triple x86_64-linux-gnu -fms-extensions -ast-dump -ast-dump-filter Test %s | FileCheck -check-prefix CHECK -strict-whitespace %s + +namespace TestInvalidRParenOnCXXUnresolvedConstructExpr { +template <class T> +void f(T i, T j) { + return T (i, j; +} +} + +// CHECK: NamespaceDecl {{.*}} <{{.*}}> {{.*}} TestInvalidRParenOnCXXUnresolvedConstructExpr +// CHECK-NEXT: `-FunctionTemplateDecl +// CHECK-NEXT: |-TemplateTypeParmDecl +// CHECK-NEXT: `-FunctionDecl +// CHECK-NEXT: |-ParmVarDecl +// CHECK-NEXT: |-ParmVarDecl +// CHECK-NEXT: `-CompoundStmt +// CHECK-NEXT: `-ReturnStmt +// CHECK-NEXT: `-CXXUnresolvedConstructExpr {{.*}} <col:10, col:16> 'T' +// CHECK-NEXT: |-DeclRefExpr {{.*}} <col:13> 'T' lvalue ParmVar {{.*}} 'i' 'T' +// CHECK-NEXT: `-DeclRefExpr {{.*}} <col:16> 'T' lvalue ParmVar {{.*}} 'j' 'T' |