(expand_asm_operands): Detect constants as outputs.
authorRichard Stallman <rms@gnu.org>
Wed, 26 May 1993 03:50:44 +0000 (03:50 +0000)
committerRichard Stallman <rms@gnu.org>
Wed, 26 May 1993 03:50:44 +0000 (03:50 +0000)
From-SVN: r4569

gcc/stmt.c

index 05b0738f551b38e5896ce7adc60a53f0bfdfc05e..737e217fcf848adebc90cd4e9b3ab4fb8d2c0532 100644 (file)
@@ -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);
     }