http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52381
Bug #: 52381 Summary: asm goto output operands Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: marc.gli...@normalesup.org Hello, asm goto doesn't allow output operands (this is documented). I haven't found an enhancement request about it, but I think it is obvious that it is wanted. What I would like to ask in the meantime is for a more specific error message than: ex.c: In function 'h': ex.c:4:42: error: expected ':' before string constant or in the case of g++: ex.cc: In function 'void h(int)': ex.cc:4:42: error: expected ':' or '::' before string constant ex.cc:4:74: error: undefined named operand 'g_' Something like: "asm goto doesn't allow output operands" would be great. It took me a while to understand what was wrong by reading the doc, even with the nice column indication. silly example (yes, the contraints don't make sense, it doesn't matter) that gave the messages above: void f(int); void g(); void h(int i){ asm goto( "cmpl %1, %0\n\tje %l[g_]" : "+g" (i) : "i" (42) : "cc" : g_); return f(i); g_: return g(); }