rfg@paris.ics.uci.edu (Ronald Guilmette) (02/28/90)
/* gcc 1.37 bug 900227_01 gcc allows short and char type global variables to be initialized with addresses of relocatable entities. Even if the ANSI C standard seems to permit this, I believe that GCC should not allow it. I tried this code on 5 different machines and it failed on all five (unless I also use the GNU assembler and the GNU linker). Three of the five (Sun3, Sun4, and Symmetry) got link-time errors about byte offset overflows. The other two (368/SystemV and AViiON) got assembly time errors about relocatable names used in "constant" expressions. It is clearly of very little value to allows this, and since mysterious linker or assembler errors may ensue, gcc should *not* allow it. */ int main (); short s = (short) &main; char c = (char) &main; int main () { return 0; }