mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-20 20:15:49 -04:00
Re-land [ASTImporter] Add test for ObjCAtTryStmt/ObjCAtCatchStmt/ObjCAtThrowStmt
Lands r340468 again, but this time we mark the test as unsupported on Windows because it seems that try/catch crashes CodeGen at the moment. llvm-svn: 340541
This commit is contained in:
parent
40aa86751a
commit
121ecfd22c
28
clang/test/Import/objc-try-catch/Inputs/F.m
Normal file
28
clang/test/Import/objc-try-catch/Inputs/F.m
Normal file
@ -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 {
|
||||||
|
}
|
||||||
|
}
|
43
clang/test/Import/objc-try-catch/test.m
Normal file
43
clang/test/Import/objc-try-catch/test.m
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
// RUN: clang-import-test -x objective-c++ -Xcc -fobjc-exceptions -dump-ast -import %S/Inputs/F.m -expression %s | FileCheck %s
|
||||||
|
|
||||||
|
// FIXME: Seems that Objective-C try/catch crash codegen on Windows. Reenable once this is fixed.
|
||||||
|
// UNSUPPORTED: system-windows
|
||||||
|
|
||||||
|
// 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();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user