Re: Bug#121282: On i386, gcc-3.0 allows $ in indentifiers but not the asm
On Tue, Nov 27, 2001 at 07:18:43PM -0500, Christopher C. Chimelis wrote:
>
> On Tue, 27 Nov 2001, Daniel Jacobowitz wrote:
>
> > I look at this differently; it's our job to be accepting and GCC's job
> > to be conformant. With Joseph and others actively deprecating
> > extensions, that seems a better place to take this up.
>
> Agreed. It's worth at least some discussion there before any decisions
> are made. For now, I'll agree that other things need to be changed
> external to gcc (kernel code and/or Makefiles, etc) before flipping this
> option off, so we can just point at any further bug reports and say "bad
> code, please fix" and mark them wishlist until the issue is decided upon
> with upstream.
>
> Ok, that makes sense to me then. I guess I'll expect a few gas bugs to be
> filed sooner or later about this, but I can live with that :-)
It seems to me gcc output broken asm code, not just that gas does not handle
it correctly.
Here a new file that compiles and links OK but which produce
buggy output:
yellowpig% cat <<EOF >bug2.c
int $b=3;
int b=2;
main()
{
printf("%d\n",$b);
}
EOF
yellowpig% gcc-3.0 bug.c
yellowpig% ./a.out
134518112
The offending asm instruction is of course
movl $b,%eax
This is the same with gcc-2.95.
Also gcc272 is (was?) the prefered compiler for the Linux kernel and, as I
previously reported, Debian gcc272 does not allow dollars in identifiers by
default:
yellowpig% gcc272 bug2.c
bug2.c:1: parse error before `$'
bug2.c: In function `main':
bug2.c:5: parse error before `$'
(Also the NTFS code is not x86 specific, so it must also compile on platforms
where $ are forbidden.)
Cheers,
Bill. <ballombe@debian.org>
PS: Sorry to be so lame as to try to compile perl script with gcc:-)
Reply to: