summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/20030815-1.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-23 22:18:54 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-23 22:18:54 +0000
commite4052a9f2b4abb27ea642b9b34fb3437570e8c90 (patch)
tree78a76c5ec38f223d94c70b1761e375c81455986b /gcc/testsuite/gcc.dg/20030815-1.c
parent77d25dbd06926a391726a51c95f8e236041c10ab (diff)
downloadgcc-e4052a9f2b4abb27ea642b9b34fb3437570e8c90.tar.gz
* c-decl.c (pushdecl): Only put decls which finish_struct will do
something about onto incomplete chain. (finish_struct): If not removing type from incomplete list, update prev. * gcc.dg/20030815-1.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70752 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg/20030815-1.c')
-rw-r--r--gcc/testsuite/gcc.dg/20030815-1.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/20030815-1.c b/gcc/testsuite/gcc.dg/20030815-1.c
new file mode 100644
index 00000000000..fe1e7b49a58
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20030815-1.c
@@ -0,0 +1,26 @@
+/* Test completion of incomplete types.
+ There used to be a bug where some types from incomplete
+ list were accidentally lost. */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+typedef struct a A[1];
+typedef struct b B[1];
+typedef struct c C[1];
+typedef struct d D[1];
+typedef struct a E;
+typedef struct b F;
+typedef struct c G;
+typedef struct d H;
+struct a { int a; };
+struct c { int c; };
+struct d { int d; };
+struct b { int b; };
+int sa = sizeof (A);
+int sb = sizeof (B);
+int sc = sizeof (C);
+int sd = sizeof (D);
+int se = sizeof (E);
+int sf = sizeof (F);
+int sg = sizeof (G);
+int sh = sizeof (H);