inline-asm/10857: Inlining a function with inline-asm: "error: impossible constraint in `asm'"

berndtrog@yahoo.com berndtrog@yahoo.com
Mon May 19 12:25:00 GMT 2003


>Number:         10857
>Category:       inline-asm
>Synopsis:       Inlining a function with inline-asm: "error: impossible constraint in `asm'"
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon May 19 11:16:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Bernd Trog
>Release:        gcc-3.3.0
>Organization:
>Environment:
avr-gcc -v           
Reading specs from /src/build/gcc-330/lib/gcc-lib/avr/3.3/specs
Configured with: /src/gcc-330/configure -v --target=avr --prefix=/src/build/gcc-330 --with-gnu-ld --with-gnu-as --disable-nls --enable-languages=c,ada
Thread model: single
gcc version 3.3
>Description:
$ avr-gcc  test.c
test.c: In function `write_byte':
test.c:8: warning: asm operand 0 probably doesn't match constraints
test.c:8: error: impossible constraint in `asm'


Note: The information for operand 0 is available 
at compile-time(#define PORTD 0x12)!
>How-To-Repeat:
#define PORTD 0x12

static
inline
void
write_byte( unsigned char adr, unsigned char data )
{
    asm("out %0, %1" : : "I" (adr), "r" (data)  );
}

int main(void)
{
  write_byte( PORTD, 4);

  return 0;
}
>Fix:
unknown
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-bugs mailing list