This fixes PR21419 by checking that read-only expressions are not given as outputs for an asm statement. The gimplifier was already performed consistency tests on asm statements, so this looked like a good place to make this check. --- gcc/gcc/gimplify.c 14 Sep 2005 06:59:10 -0000 +++ gcc/gcc/gimplify.c 25 Sep 2005 12:32:41 -0000 @@ -3543,6 +3543,12 @@ gimplify_asm_expr (tree *expr_p, tree *p parse_output_constraint (&constraint, i, 0, 0, &allows_mem, &allows_reg, &is_inout); + if (TYPE_READONLY (TREE_TYPE (TREE_VALUE (link)))) + { + error ("invalid lvalue in asm output %d", i); + ret = GS_ERROR; + } + if (!allows_reg && allows_mem) lang_hooks.mark_addressable (TREE_VALUE (link));