[Bug target/52554] Variable called $1 causes invalid asm to be generated

2012-03-28 Thread webmaster at openhardware dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52554

webmaster at openhardware dot de changed:

   What|Removed |Added

 CC||webmaster at openhardware
   ||dot de

--- Comment #5 from webmaster at openhardware dot de 2012-03-28 09:36:47 UTC ---
Hi, I tested the 42 it mit older gcc, and it behaved better:

 gcc --version
gcc (GCC) 4.2.4 (Gentoo 4.2.4 p1.0)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


 cat >try.c
int $42 = 0;

int main(void) {
return $42;
}


 gcc try.c; ./a.out; echo $?  
/tmp/ccY61UFa.s: Assembler messages:
/tmp/ccY61UFa.s:18: Error: junk `(%rip)' after expression
bash: ./a.out: No such file or directory
127

 gcc -O2 try.c; ./a.out; echo $? 
/tmp/ccXk0zWe.s: Assembler messages:
/tmp/ccXk0zWe.s:8: Error: junk `(%rip)' after expression
bash: ./a.out: No such file or directory
127


But I would expect an syntax error thrown by gcc here.


[Bug target/52554] Variable called $1 causes invalid asm to be generated

2012-03-29 Thread webmaster at openhardware dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52554

--- Comment #7 from openhardware  2012-03-29 
13:40:14 UTC ---
"Alternatively, change the documentation to the effect that invalid assembly
code and valid (but semantically wrong) assembly code aren't necessarily
compiler bugs."

Its a "windows-approach"
Not a bug but a feature.

Intel calls their errata sheets for silicon bugs "specification update"
That's really sweet, so whats a spec for?

Please fix it in gcc to be a syntax error, or at least throw a warning like
"Illegal variable name found in line # might cause illegal assembly code and
thus unpredictable results!".

This would be the best, so if one has a special "geeks-assembler", 
that allows a $ to be send to the assembler, so one could use it, for what
special geeks-reason ever (may be, to have a hack to illegally allign a
variable in memory  between the rails of the processors word length in order to
smear it into two registers [highbyte of lower register and lowbyte of upper
register] of some IO or to do some other dirty stuff directly from hell)