diff options
author | Richard Stallman <rms@gnu.org> | 1993-05-26 03:50:44 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-05-26 03:50:44 +0000 |
commit | e619bb8d4bc756193b9586bba2c2e99f3157e033 (patch) | |
tree | 26be9ee5c3c54d4d80a3d164ed4af16d3739374b | |
parent | 09b11d829e344c3da800e8a98273073da752179f (diff) | |
download | gcc-e619bb8d4bc756193b9586bba2c2e99f3157e033.zip gcc-e619bb8d4bc756193b9586bba2c2e99f3157e033.tar.gz gcc-e619bb8d4bc756193b9586bba2c2e99f3157e033.tar.bz2 |
(expand_asm_operands): Detect constants as outputs.
From-SVN: r4569
-rw-r--r-- | gcc/stmt.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -1146,7 +1146,15 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) if (TREE_CODE (val) != VAR_DECL && TREE_CODE (val) != PARM_DECL && TREE_CODE (val) != INDIRECT_REF) - TREE_VALUE (tail) = save_expr (TREE_VALUE (tail)); + { + TREE_VALUE (tail) = save_expr (TREE_VALUE (tail)); + /* If it's a constant, print error now so don't crash later. */ + if (TREE_CODE (TREE_VALUE (tail)) != SAVE_EXPR) + { + error ("invalid output in `asm'"); + return; + } + } output_rtx[i] = expand_expr (TREE_VALUE (tail), NULL_RTX, VOIDmode, 0); } |