While looking at the rules governing struct/union declarations in C, I stumbled
upon this example:

union A {
  int i;
  float f;
};

void
foo(struct A** p) {
  *p = 0;
}

This is accepted by both Comeau and the Intel C compiler, but is rejected
by GCC 4.1.2 and 4.3.0 on the grounds that

bug.c:7: error: ‘A’ defined as wrong kind of tag

My interpretation is that line 7 does not define `union A' with the
wrong kind of tag;  it declares a (totally unrelated) `struct A'.
However, I am not sure.  Should I file a bug report for this?
All the best,

    Roberto

--
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:[EMAIL PROTECTED]

Reply via email to