http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50571
Bug #: 50571 Summary: [4.6/4.7 Regression] Undesirable folding in "m" constrained asm operands Classification: Unclassified Product: gcc Version: 4.6.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassig...@gcc.gnu.org ReportedBy: ja...@gcc.gnu.org static const int var[4] = { 1, 2, 3, 4 }; void foo (void) { __asm volatile ("" : : "m" (*(int *) var)); } warns at -O2: warning: use of memory input without lvalue in asm operand 0 is deprecated [enabled by default] although the source has there addressable memory. The problem is that gimple-fold transformed this into "m" (1), which is deprecated.