annotate clang/test/SemaObjC/try-catch.m @ 150:1d019706d866

LLVM10
author anatofuz
date Thu, 13 Feb 2020 15:10:13 +0900
parents
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -fsyntax-only -verify -fobjc-exceptions %s
anatofuz
parents:
diff changeset
2 typedef signed char BOOL;
anatofuz
parents:
diff changeset
3 typedef struct _NSZone NSZone;
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 @class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 @protocol NSObject
anatofuz
parents:
diff changeset
8 - (BOOL)isEqual:(id)object;
anatofuz
parents:
diff changeset
9 @end
anatofuz
parents:
diff changeset
10
anatofuz
parents:
diff changeset
11 @protocol NSCopying
anatofuz
parents:
diff changeset
12 - (id)copyWithZone:(NSZone *)zone;
anatofuz
parents:
diff changeset
13 @end
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 @protocol NSCoding
anatofuz
parents:
diff changeset
16 - (void)encodeWithCoder:(NSCoder *)aCoder;
anatofuz
parents:
diff changeset
17 @end
anatofuz
parents:
diff changeset
18
anatofuz
parents:
diff changeset
19 @interface NSObject <NSObject> {}
anatofuz
parents:
diff changeset
20 @end
anatofuz
parents:
diff changeset
21
anatofuz
parents:
diff changeset
22 @class NSData, NSArray, NSDictionary, NSCharacterSet, NSData, NSURL, NSError, NSLocale;
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 @interface NSException : NSObject <NSCopying, NSCoding> {}
anatofuz
parents:
diff changeset
25 @end
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 @class ASTNode, XCRefactoringParser, Transform, TransformInstance, XCRefactoringSelectionInfo;
anatofuz
parents:
diff changeset
28
anatofuz
parents:
diff changeset
29 @interface XCRefactoringTransformation : NSObject {}
anatofuz
parents:
diff changeset
30 @end
anatofuz
parents:
diff changeset
31
anatofuz
parents:
diff changeset
32 @implementation XCRefactoringTransformation
anatofuz
parents:
diff changeset
33 - (NSDictionary *)setUpInfoForTransformKey:(NSString *)transformKey outError:(NSError **)outError {
anatofuz
parents:
diff changeset
34 @try {}
anatofuz
parents:
diff changeset
35 // the exception name is optional (weird)
anatofuz
parents:
diff changeset
36 @catch (NSException *) {}
anatofuz
parents:
diff changeset
37 }
anatofuz
parents:
diff changeset
38 @end
anatofuz
parents:
diff changeset
39
anatofuz
parents:
diff changeset
40 int foo() {
anatofuz
parents:
diff changeset
41 struct s { int a, b; } agg, *pagg;
anatofuz
parents:
diff changeset
42
anatofuz
parents:
diff changeset
43 @throw 42; // expected-error {{@throw requires an Objective-C object type ('int' invalid)}}
anatofuz
parents:
diff changeset
44 @throw agg; // expected-error {{@throw requires an Objective-C object type ('struct s' invalid)}}
anatofuz
parents:
diff changeset
45 @throw pagg; // expected-error {{@throw requires an Objective-C object type ('struct s *' invalid)}}
anatofuz
parents:
diff changeset
46 @throw; // expected-error {{@throw (rethrow) used outside of a @catch block}}
anatofuz
parents:
diff changeset
47 }