https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92597
--- Comment #11 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Klaus Leppkes from comment #9) > > g++ -c error_large_lvalue.cpp > error_large_lvalue.cpp: In function ‘void DoNotOptimize(Tp&) [with Tp = > Large]’: > error_large_lvalue.cpp:16:48: error: inconsistent operand constraints in an > ‘asm’ > 16 | asm volatile("" : "+g,r"(value) : : "memory"); You just need "+g" and not "+g,r". That is what we have been saying, +m and +g are similar.