aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2007-09-26 18:27:25 +0000
committerFariborz Jahanian <fjahanian@apple.com>2007-09-26 18:27:25 +0000
commitd0b90bff98bafb72ea9809f509bf37c93c60e74e (patch)
treed24b1c4e75fd7cca92f339e0735ef44e6c33e201 /test
parent095ffca8c5f69df5826fea8714b7f50a1313d7c6 (diff)
This patch inserts ivars declared in @implementation in its object and verifies
that they conform(in type, name and numbers) to those declared in @interface. Test case highlights kind of checking we do here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42360 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/Sema/conflicting-ivar-test-1.m84
1 files changed, 84 insertions, 0 deletions
diff --git a/test/Sema/conflicting-ivar-test-1.m b/test/Sema/conflicting-ivar-test-1.m
new file mode 100644
index 0000000000..e08da34bc2
--- /dev/null
+++ b/test/Sema/conflicting-ivar-test-1.m
@@ -0,0 +1,84 @@
+@interface INTF
+{
+@public
+ int IVAR; // expected-error {{previous definition is here}}
+}
+@end
+
+@implementation INTF
+{
+@private
+
+ int XIVAR; // expected-error {{conflicting instance variable name 'XIVAR'}}
+}
+@end
+
+
+
+@interface INTF1
+{
+@public
+ int IVAR;
+ int IVAR1; // expected-error {{inconsistent instance variable specification}}
+}
+@end
+
+@implementation INTF1
+{
+@private
+
+ int IVAR;
+}
+@end
+
+
+@interface INTF2
+{
+@public
+ int IVAR;
+}
+@end
+
+@implementation INTF2
+{
+@private
+
+ int IVAR;
+ int IVAR1; // expected-error {{inconsistent instance variable specification}}
+}
+@end
+
+
+@interface INTF3
+{
+@public
+ int IVAR; // expected-error {{previous definition is here}}
+}
+@end
+
+@implementation INTF3
+{
+@private
+
+ short IVAR; // expected-error {{conflicting instance variable type}}
+}
+@end
+
+@implementation INTF4 // expected-warning {{cannot find interface declaration for 'INTF4'}}
+{
+@private
+
+ short IVAR;
+}
+@end
+
+@interface INTF5
+{
+ char * ch;
+}
+@end
+
+@implementation INTF5
+{
+}
+@end