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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |egallager at gcc dot gnu.org,
                   |                            |pinskia at gcc dot gnu.org

--- Comment #2 from Eric Gallager <egallager at gcc dot gnu.org> ---
(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).
$

Reply via email to