aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/gcc.dg/Wcxx-compat-8.c3
-rw-r--r--gcc/testsuite/gcc.dg/declspec-1.c6
-rw-r--r--gcc/testsuite/gcc.dg/pr24293.c12
-rw-r--r--gcc/testsuite/gcc.dg/pr63549.c2
5 files changed, 28 insertions, 4 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fb9826e..a2c9ba9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2016-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
+
+ PR c/24293
+ * gcc.dg/pr24293.c: New test.
+ * gcc.dg/Wcxx-compat-8.c: Adjust to accept error due to
+ incomplete struct type.
+ * gcc.dg/declspec-1.c: Likewise.
+ * gcc.dg/pr63549.c: Likewise.
+
2016-01-20 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/66612
diff --git a/gcc/testsuite/gcc.dg/Wcxx-compat-8.c b/gcc/testsuite/gcc.dg/Wcxx-compat-8.c
index f7e8c55..4e9ddc1 100644
--- a/gcc/testsuite/gcc.dg/Wcxx-compat-8.c
+++ b/gcc/testsuite/gcc.dg/Wcxx-compat-8.c
@@ -33,6 +33,7 @@ enum e3
__typeof__ (struct s5 { int i; }) v5; /* { dg-warning "invalid in C\[+\]\[+\]" } */
__typeof__ (struct t5) w5; /* { dg-bogus "invalid in C\[+\]\[+\]" } */
+ /* { dg-error "storage size of 'w5' isn't known" "" { target *-*-* } 35 } */
int
f1 (struct s1 *p)
@@ -64,4 +65,4 @@ f5 ()
return &((struct t8) { }); /* { dg-warning "invalid in C\[+\]\[+\]" } */
}
-/* { dg-error "invalid use of undefined type" "" { target *-*-* } 64 } */
+/* { dg-error "invalid use of undefined type" "" { target *-*-* } 65 } */
diff --git a/gcc/testsuite/gcc.dg/declspec-1.c b/gcc/testsuite/gcc.dg/declspec-1.c
index c19f107..b024601 100644
--- a/gcc/testsuite/gcc.dg/declspec-1.c
+++ b/gcc/testsuite/gcc.dg/declspec-1.c
@@ -9,13 +9,15 @@ typedef int t;
/* These should all be diagnosed, but only once, not for every
identifier declared. */
struct s0 int x0, /* { dg-error "two or more data types" } */
-x1;
+/* { dg-error "storage size of 'x0' isn't known" "" { target *-*-* } 11 } */
+x1; /* { dg-error "storage size of 'x1' isn't known" } */
char union u0 x2, /* { dg-error "two or more data types" } */
x3;
enum e0 struct s1 x4, /* { dg-error "two or more data types" } */
-x5;
+ /* { dg-error "storage size of 'x4' isn't known" "" { target *-*-* } 18 } */
+x5; /* { dg-error "storage size of 'x5' isn't known" } */
short short x6, /* { dg-error "duplicate" } */
x7;
diff --git a/gcc/testsuite/gcc.dg/pr24293.c b/gcc/testsuite/gcc.dg/pr24293.c
new file mode 100644
index 0000000..5bf7ad17
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr24293.c
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-options "-fsyntax-only" } */
+
+static struct foo x; /* { dg-error "storage size of 'x' isn't known" } */
+static union bar y; /* { dg-error "storage size of 'y' isn't known" } */
+
+typedef struct P p;
+static p p_obj; /* { dg-error "storage size of 'p_obj' isn't known" } */
+
+static enum e e_var; /* { dg-error "storage size of 'e_var' isn't known" } */
+
+extern struct undefined_object object;
diff --git a/gcc/testsuite/gcc.dg/pr63549.c b/gcc/testsuite/gcc.dg/pr63549.c
index c9b1718..bd0b706 100644
--- a/gcc/testsuite/gcc.dg/pr63549.c
+++ b/gcc/testsuite/gcc.dg/pr63549.c
@@ -2,6 +2,6 @@
/* { dg-do compile } */
/* { dg-options "" } */
-enum E e;
+enum E e; /* { dg-error "storage size of 'e' isn't known" } */
int a[10];
int i = a[e]; /* { dg-error "has an incomplete type" } */