Commit 6a22e3a7 by Richard Kenner

(substitute_expr): Don't abort for RTL_EXPR and SAVE_EXPR; just do

nothing.

From-SVN: r6357
parent dadae817
/* Language-independent node constructors for parse phase of GNU compiler. /* Language-independent node constructors for parse phase of GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993 Free Software Foundation, Inc. Copyright (C) 1987, 1988, 1992, 1993, 1994 Free Software Foundation, Inc.
This file is part of GNU CC. This file is part of GNU CC.
...@@ -2017,7 +2017,11 @@ substitute_in_expr (exp, f, r) ...@@ -2017,7 +2017,11 @@ substitute_in_expr (exp, f, r)
f, r))); f, r)));
case 2: case 2:
if (code == RTL_EXPR || code == CONSTRUCTOR) /* An RTL_EXPR cannot contain a PLACEHOLDER_EXPR; a CONSTRUCTOR
could, but we don't support it. */
if (code == RTL_EXPR)
return exp;
else if (code == CONSTRUCTOR)
abort (); abort ();
return fold (build (code, TREE_TYPE (exp), return fold (build (code, TREE_TYPE (exp),
...@@ -2026,6 +2030,11 @@ substitute_in_expr (exp, f, r) ...@@ -2026,6 +2030,11 @@ substitute_in_expr (exp, f, r)
f, r))); f, r)));
case 3: case 3:
/* It cannot be that anything inside a SAVE_EXPR contains a
PLACEHOLDER_EXPR. */
if (code == SAVE_EXPR)
return exp;
if (code != COND_EXPR) if (code != COND_EXPR)
abort (); abort ();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment