[Bug c/93903] New: invalid input constraint in __asm__
1059252359 at qq dot com
gcc-bugzilla@gcc.gnu.org
Mon Feb 24 14:01:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93903
Bug ID: 93903
Summary: invalid input constraint in __asm__
Product: gcc
Version: 8.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: 1059252359 at qq dot com
Target Milestone: ---
Hi,
When compiling the below testcase, gcc reports two ambiguous errors as follows
:
testcase.c: In function ‘main’:
testcase.c:10:5: error: invalid punctuation‘ ’ in constraint
10 | );
| ^
testcase.c:5:3: error: invalid punctuation ‘ ’ in constraint
5 | __asm__("movl %1, %%eax\n\t"
| ^~~~~~~
It seems to mean that the invalid input constraint 'r ' in asm in line 8. But
gcc document says that whitespace characters are ignored and can be inserted at
any position except the first.(URL:
https://gcc.gnu.org/onlinedocs/gcc/Simple-Constraints.html#Simple-Constraints)
So Is this a correct behavior for gcc complier?
TestCase:
#include <stdio.h>
int main()
{
int a = 10, b;
__asm__("movl %1, %%eax\n\t"
"movl %%eax, %0\n\t"
:"=r"(b)
:"r "(a)
:"%eax"
);
printf("Result: %d, %d\n", a, b);
return 0;
}
Compiler Version:
gcc (GCC) 8.2.0
The OS is:
Linux version 4.15.0-65-generic
More information about the Gcc-bugs
mailing list