[Bug c/20655] Attempt to use undefined structure tag triggers no diagnostic
--- Additional Comments From jozef dot behran at krs dot sk 2005-04-01 19:49 --- This is still valid code because the struct could be defined below still. But if the struct is not defined anywhere (not even below its use), a warning should occur. If you send the first declaration to the compiler without sending the second one, you should see a warning about an undeclared structure. However if you send your example to the compiler as you mentioned it, no warnings should appear. This warning should at least indicate the users that there may be something wrong with their code and that they should check for typos or so. Note that the code is valid, but unusual. If you see a structure tag used somewhere without being declared, most likely it is a bug in the code. Otherwise the compiler may give the user very strange error/warning messages that may confuse him seriously (a structure type seeming not to be compatible with itself). -- What|Removed |Added Status|RESOLVED|UNCONFIRMED Resolution|INVALID | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20655
[Bug c/20655] Attempt to use undefined structure tag triggers no diagnostic
--- Additional Comments From joseph at codesourcery dot com 2005-04-01 20:19 --- Subject: Re: Attempt to use undefined structure tag triggers no diagnostic On Fri, 1 Apr 2005, jozef dot behran at krs dot sk wrote: Note that the code is valid, but unusual. If you see a structure tag used somewhere without being declared, most likely it is a bug in the code. Otherwise No, if a tag is used without the structure or union contents being defined then most likely it is being used as an opaque type and the definition is in a separate internal header for e.g. the library implementation but does not form part of the public interface. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20655
[Bug c/20655] Attempt to use undefined structure tag triggers no diagnostic
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-04-01 20:58 --- If you deference or do an assignment like: TType *a, *b; b-Pointer = a; You will either get an error or a warning saying the code is invalid. Also as mentioned by JSM, it is a way to provide opaque type pointers. -- What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||WONTFIX http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20655
[Bug c/20655] Attempt to use undefined structure tag triggers no diagnostic
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-03-27 16:15 --- This is still valid code because the struct could be defined below still. For an example: struct a { struct b *c; }; struct b { int i; struct a *c; }; -- What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20655