mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-15 12:39:19 +00: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…
x
Reference in New Issue
Block a user