struct T { const char *p; }; struct S { T a, b, c; unsigned d; }; void bar (const T &, const T &);
void foo (S &s, T e) { const char *a = e.p; const char *b = s.b.p; __asm__ volatile ("/* %0 %1 */" : : "rm" (a), "rm" (b)); bar (e, s.b); } has PRE_MODIFY and PRE_INC in MEM operands of ASM_OPERANDS. I can't see how that can be right - there is no guarantee that the operand is used in the asm at all, and even when it is used, it would have to be used in a load or store with update insn. -- Summary: auto-inc-dec pushes PRE_MODIFY/PRE_INC into inline asm operands Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org GCC target triplet: powerpc64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44492