-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Closed
Labels
bugzillaIssues migrated from bugzillaIssues migrated from bugzilla
Description
Bugzilla Link | 3373 |
Resolution | FIXED |
Resolved on | Feb 27, 2011 10:53 |
Version | trunk |
OS | Linux |
CC | @sunfishcode |
Extended Description
Using yesterday's llvm-gcc (SVN r62706), I fail to build the following:
int foo(unsigned long *addr)
{
int __ret_pu;
unsigned long __pu_val;
return ({asm volatile("call _put_user" "8" : "=a" (__ret_pu) :"0"
(__pu_val), "c"(addr) : "ebx"); __ret_pu;});
}
$ llvm-gcc x.i -O0 -emit-llvm -o x.bc
x.i: In function ‘foo’:
x.i:5: error: unsupported inline asm: input constraint with a matching output constraint of incompatible type!
I thought the frontend was supposed to cast the argument to the proper type to avoid this error message.
LLVM 2.4 accepted this code, and appears to be the kernel people's favourite way to use inline asm (i.e. return type is int, but input is something else).
Can this be fixed for 2.5 please?
Metadata
Metadata
Assignees
Labels
bugzillaIssues migrated from bugzillaIssues migrated from bugzilla