[Bug target/15896] Strange behaviour for inline assembler input constraint

egallager at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jan 4 02:16:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15896

Eric Gallager <egallager at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |RESOLVED
         Resolution|---                         |WORKSFORME

--- Comment #4 from Eric Gallager <egallager at gcc dot gnu.org> ---
(In reply to Eric Gallager from comment #3)
> (In reply to Eric Gallager from comment #2)
> > (In reply to Andrew Pinski from comment #1)
> > > I don't know Ada that well (in terms of promotions and types) but the
> > > following C code produces the 
> > > same ICE so I might assume the issue is that My_Type+constant is being
> > > promoted to unsigned long 
> > > long or something along that line:
> > > int f()
> > > {
> > > unsigned long long cu32 = 1;
> > >   asm("%0"::"a"(cu32));
> > > }
> > 
> > Does this still happen with newer versions of GCC? I can't reproduce with
> > gcc 7, but I'm assuming that's due to target differences; I get different
> > messages depending on 32-bit or 64-bit, but neither of them are an ICE:
> > 
> > $ gcc -c -m32 15896.c
> > 15896.c: In function 'f':
> > 15896.c:4:3: error: inconsistent operand constraints in an 'asm'
> >    asm("%0"::"a"(cu32));
> >    ^~~
> > $ gcc -c -m64 15896.c
> > 15896.c:4:Junk character 37 (%).
> > 15896.c:4:Rest of line ignored. 1st junk character valued 114 (r).
> > $
> 
> WAITING on a reply

No reply; closing.


More information about the Gcc-bugs mailing list