------- Comment #3 from jdemeyer at cage dot ugent dot be 2009-09-07 19:30 ------- (In reply to comment #2) > I think you need to mark both alternatives early-clobber, not only the > register > one. Thus "=&r&m" at least according to the manual.
That doesn't seem to change anything. It looks to me like the parser only checks for the presence of at least one "&", since it even accepts "=&&r&&m&&" (maybe that's another bug?). On the other hand, using "=&m" as constraint gives an error bug.c:141:2: error: '&' constraint used with no register class According to http://gcc.gnu.org/onlinedocs/gcc/Multi_002dAlternative.html, the constraint "=&rm" counts as ONE alternative, since alternatives are seperated by commas. This is one alternative, allowing both a register or memory location. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41294