Re: GCC generuje błędny asm

Bartosz Świątek shadzik at gmail.com
Wed Mar 28 16:07:03 CEST 2012


W dniu 28 marca 2012 16:02 użytkownik Arkadiusz Miśkiewicz
<arekm w maven.pl> napisał:
> On Wednesday 28 of March 2012, Bartosz Świątek wrote:
>> W dniu 28 marca 2012 15:47 użytkownik Arkadiusz Miśkiewicz
>>
>> <arekm w maven.pl> napisał:
>> > On Wednesday 28 of March 2012, Bartosz Świątek wrote:
>> >> Cześć,
>> >>
>> >> taki oto najprostszy program:
>> >>
>> >> int $12 = 0;
>> >>
>> >> int main() {
>> >>       return $12;
>> >> }
>> >>
>> >> mam kaprys nazwać sobie zmienną $12, bo niby czemu nie.
>> >
>> > http://bit.ly/GY1fK2
>>
>> Nie zauważyleś $ przed 1? Moja nazwa zmiennej nie zaczyna się od
>> cyfry. Wszystko jest zatem dozwolone.
>
> Ano nie.
>
> "The rules for the construction of identifiers are simple: you may use the 52
> upper and lower case alphabetic characters, the 10 digits and finally the
> underscore ‘_’, which is considered to be an alphabetic character for this
> purpose. The only restriction is the usual one; identifiers must start with an
> alphabetic character."

Gdyby teoria zgadzała się z praktyką, GCC wywalił by mi syntax error -
zrobiłem coś niepoprawnego z założeniami. On jednak stwierdził, że
wszystko jest w porządku i zaczął tworzyć błędny kod ASM. I tu jest
problem, a nie w tym jak ja sobie zmienną nazwałem.

>
>>
>> >> Kompilacja zwraca:
>> >>
>> >> $ gcc test.c
>> >> /home/users/shadzik/tmp/ccFZKf57.s: Assembler messages:
>> >> /home/users/shadzik/tmp/ccFZKf57.s:20: Error: junk `(%rip)' after
>> >> expression
>> >
>> >> Ojej, no to sprawdźmy co to za brzydki asm z tego wyszedł (gcc -S
> test.c):
>> > Nawet gcc robi Cię w wała.
>>
>> No nie za bardzo. Zrozum problem, pogadamy.
>
> Jednak.

No jednak nie, ponieważ starszy GCC na innym systemie, kompiluje kod
poprawnie, bez zająknięcia.



-- 
"I'm living proof if you do one thing right in your career, you can
coast for a long time. A LOOOOONG time." -Guy Kawasaki


More information about the pld-devel-pl mailing list