diff options
| author | Raphael Isemann <teemperor@gmail.com> | 2018-08-22 22:51:37 +0000 |
|---|---|---|
| committer | Raphael Isemann <teemperor@gmail.com> | 2018-08-22 22:51:37 +0000 |
| commit | fb97c54cf1b835c22f42e56b7987beb7120aadc7 (patch) | |
| tree | bb88fa8b2789b3e72f80402efcc613fd488bb022 /clang/test/Import | |
| parent | 3142a49068f7be1275e4202d745e48090b39745a (diff) | |
| download | bcm5719-llvm-fb97c54cf1b835c22f42e56b7987beb7120aadc7.tar.gz bcm5719-llvm-fb97c54cf1b835c22f42e56b7987beb7120aadc7.zip | |
[ASTImporter] Add test for ObjCAtTryStmt/ObjCAtCatchStmt/ObjCAtThrowStmt
Reviewers: a.sidorin, a_sidorin
Reviewed By: a_sidorin
Subscribers: martong, cfe-commits
Differential Revision: https://reviews.llvm.org/D51121
llvm-svn: 340468
Diffstat (limited to 'clang/test/Import')
| -rw-r--r-- | clang/test/Import/objc-try-catch/Inputs/F.m | 28 | ||||
| -rw-r--r-- | clang/test/Import/objc-try-catch/test.m | 40 |
2 files changed, 68 insertions, 0 deletions
diff --git a/clang/test/Import/objc-try-catch/Inputs/F.m b/clang/test/Import/objc-try-catch/Inputs/F.m new file mode 100644 index 00000000000..5b8b67549b3 --- /dev/null +++ b/clang/test/Import/objc-try-catch/Inputs/F.m @@ -0,0 +1,28 @@ +@interface Exception +@end +@interface OtherException +@end + +void f() { + @try { + Exception *e; + @throw e; + } + @catch (Exception *varname) { + } + @finally { + } + + @try { + } + @catch (Exception *varname1) { + @throw; + } + @catch (OtherException *varname2) { + } + + @try { + } + @finally { + } +} diff --git a/clang/test/Import/objc-try-catch/test.m b/clang/test/Import/objc-try-catch/test.m new file mode 100644 index 00000000000..7d791d54691 --- /dev/null +++ b/clang/test/Import/objc-try-catch/test.m @@ -0,0 +1,40 @@ +// RUN: clang-import-test -x objective-c++ -Xcc -fobjc-exceptions -dump-ast -import %S/Inputs/F.m -expression %s | FileCheck %s + +// CHECK: ObjCAtTryStmt +// CHECK-NEXT: CompoundStmt +// CHECK-NEXT: DeclStmt +// CHECK-NEXT: VarDecl +// CHECK-NEXT: ObjCAtThrowStmt +// CHECK-NEXT: ImplicitCastExpr +// CHECK-NEXT: DeclRefExpr +// CHECK-NEXT: ObjCAtCatchStmt +// CHECK-NEXT: VarDecl +// CHECK-SAME: varname +// CHECK-SAME: 'Exception *' +// CHECK-NEXT: CompoundStmt +// CHECK-NEXT: ObjCAtFinallyStmt +// CHECK-NEXT: CompoundStmt + +// CHECK-NEXT: ObjCAtTryStmt +// CHECK-NEXT: CompoundStmt +// CHECK-NEXT: ObjCAtCatchStmt +// CHECK-NEXT: VarDecl +// CHECK-SAME: varname1 +// CHECK-SAME: 'Exception *' +// CHECK-NEXT: CompoundStmt +// CHECK-NEXT: ObjCAtThrowStmt +// CHECK-NEXT: <<NULL>> +// CHECK-NEXT: ObjCAtCatchStmt +// CHECK-NEXT: VarDecl +// CHECK-SAME: varname2 +// CHECK-SAME: 'OtherException *' +// CHECK-NEXT: CompoundStmt + +// CHECK-NEXT: ObjCAtTryStmt +// CHECK-NEXT: CompoundStmt +// CHECK-NEXT: ObjCAtFinallyStmt +// CHECK-NEXT: CompoundStmt + +void expr() { + f(); +} |

