In gcc/: 2000-11-09 Geoffrey Keating <geoffk@redhat.com>

In gcc/:
2000-11-09  Geoffrey Keating  <geoffk@redhat.com>

	* c-decl.c (finish_struct): When a structure is completed,
	check all its variant types for completeness.

In gcc/testsuite/:
2000-11-09  Geoffrey Keating  <geoffk@redhat.com>

	* gcc.c-torture/compile/20001109-1.c: New test.
	* gcc.c-torture/compile/20001109-2.c: New test.

From-SVN: r37346
This commit is contained in:
Geoffrey Keating 2000-11-09 21:29:54 +00:00 committed by Geoffrey Keating
parent a949941cf7
commit b52114d283
5 changed files with 24 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2000-11-09 Geoffrey Keating <geoffk@redhat.com>
* c-decl.c (finish_struct): When a structure is completed,
check all its variant types for completeness.
2000-11-09 Neil Booth <neilb@earthling.net>
* cpphash.c: Move cpp_defined here from cpplib.c.

View file

@ -5573,7 +5573,7 @@ finish_struct (t, fieldlist, attributes)
tree decl;
for (decl = current_binding_level->names; decl; decl = TREE_CHAIN (decl))
{
if (TREE_TYPE (decl) == t
if (TYPE_MAIN_VARIANT (TREE_TYPE (decl)) == TYPE_MAIN_VARIANT (t)
&& TREE_CODE (decl) != TYPE_DECL)
{
layout_decl (decl, 0);

View file

@ -1,3 +1,8 @@
2000-11-09 Geoffrey Keating <geoffk@redhat.com>
* gcc.c-torture/compile/20001109-1.c: New test.
* gcc.c-torture/compile/20001109-2.c: New test.
2000-11-09 Nathan Sidwell <nathan@codesourcery.com>
* g++.old-deja/g++.pt/operator1.C: New test.

View file

@ -0,0 +1,7 @@
typedef struct _foo foo;
extern foo bar;
struct _foo {
int a;
};
int tst[__alignof__ (bar) >= __alignof__ (int) ? 1 : -1];

View file

@ -0,0 +1,6 @@
extern struct foo bar;
struct foo {
int a;
};
int tst[__alignof__ (bar) >= __alignof__ (int) ? 1 : -1];