------- Comment #31 from jakub at gcc dot gnu dot org 2007-11-22 15:41 ------- Could we perhaps for !optimize allow in ASM input operands arbitrary tree expressions if TREE_CONSTANT for operands which !allows_mem && !allows_reg? Then we'd just need to make sure the few -O0 passes are able to cope with it and adjust gimplifier to do that and verification to accept that. For -O0 expecting int i = 1; asm ("" :: "i" (i)); to work is certainly bad assumption, so it is enough to preserve what the user used in the inline asm. I guess only nesting and omp passes would care, those can transform a valid "i" operand into invalid one.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23200