summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2010-03-21 22:56:43 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2010-03-21 22:56:43 +0000
commit568586ff227d06d6670da11e503506eab6ed3b23 (patch)
treeaae9ebd6fe2f629910bb97a6d82701f175b42b6f /clang/test
parentb41ca8f2aeb085306fc8c1027fa621ce0a398fdc (diff)
downloadbcm5719-llvm-568586ff227d06d6670da11e503506eab6ed3b23.tar.gz
bcm5719-llvm-568586ff227d06d6670da11e503506eab6ed3b23.zip
Fix PR6618.
If a struct has an invalid field, mark it as invalid. Also avoid producing errors about incomplete types that are invalid. llvm-svn: 99150
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Sema/nested-redef.c3
-rw-r--r--clang/test/SemaCXX/PR6618.cpp13
-rw-r--r--clang/test/SemaObjC/ivar-sem-check-1.m3
3 files changed, 15 insertions, 4 deletions
diff --git a/clang/test/Sema/nested-redef.c b/clang/test/Sema/nested-redef.c
index 6a19921f47f..bbc48593677 100644
--- a/clang/test/Sema/nested-redef.c
+++ b/clang/test/Sema/nested-redef.c
@@ -1,7 +1,6 @@
// RUN: %clang_cc1 -fsyntax-only -verify %s
struct X { // expected-note{{previous definition is here}}
- struct X { } x; // expected-error{{nested redefinition of 'X'}} \
- // expected-error{{field has incomplete type}}
+ struct X { } x; // expected-error{{nested redefinition of 'X'}}
};
struct Y { };
diff --git a/clang/test/SemaCXX/PR6618.cpp b/clang/test/SemaCXX/PR6618.cpp
new file mode 100644
index 00000000000..10d4dc87b0a
--- /dev/null
+++ b/clang/test/SemaCXX/PR6618.cpp
@@ -0,0 +1,13 @@
+// RUN: %clang_cc1 -fsyntax-only -verify %s
+class bar; // expected-note {{forward declaration of 'bar'}}
+struct zed {
+ bar g; // expected-error {{field has incomplete type}}
+};
+class baz {
+ zed h;
+};
+void f() {
+ enum {
+ e = sizeof(baz)
+ };
+}
diff --git a/clang/test/SemaObjC/ivar-sem-check-1.m b/clang/test/SemaObjC/ivar-sem-check-1.m
index 099a7a669a9..de038f5487b 100644
--- a/clang/test/SemaObjC/ivar-sem-check-1.m
+++ b/clang/test/SemaObjC/ivar-sem-check-1.m
@@ -9,8 +9,7 @@ typedef int FOO();
int arr[]; // expected-error {{field has incomplete type}}
struct S IC; // expected-error {{field has incomplete type}}
struct T { // expected-note {{previous definition is here}}
- struct T {} X; // expected-error {{nested redefinition of 'T'}} \
- // expected-error {{field has incomplete type}}
+ struct T {} X; // expected-error {{nested redefinition of 'T'}}
}YYY;
FOO BADFUNC; // expected-error {{field 'BADFUNC' declared as a function}}
int kaka; // expected-note {{previous declaration is here}}
OpenPOWER on IntegriCloud