re PR middle-end/66685 (conftest.c:16:1: internal compiler error: in as_a, at is-a.h:192)
gcc/ PR bootstrap/66685 * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if there are no CALLs in the same pattern. From-SVN: r225263
This commit is contained in:
parent
c219aeb7de
commit
23bae97dbd
2 changed files with 10 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
PR bootstrap/66685
|
||||
* rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
|
||||
there are no CALLs in the same pattern.
|
||||
|
||||
2015-07-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||
|
||||
PR rtl-optimization/61047
|
||||
|
|
|
@ -683,17 +683,20 @@ classify_insn (rtx x)
|
|||
if (GET_CODE (x) == PARALLEL)
|
||||
{
|
||||
int j;
|
||||
bool has_return_p = false;
|
||||
for (j = XVECLEN (x, 0) - 1; j >= 0; j--)
|
||||
if (GET_CODE (XVECEXP (x, 0, j)) == CALL)
|
||||
return CALL_INSN;
|
||||
else if (ANY_RETURN_P (XVECEXP (x, 0, j)))
|
||||
return JUMP_INSN;
|
||||
has_return_p = true;
|
||||
else if (GET_CODE (XVECEXP (x, 0, j)) == SET
|
||||
&& GET_CODE (SET_DEST (XVECEXP (x, 0, j))) == PC)
|
||||
return JUMP_INSN;
|
||||
else if (GET_CODE (XVECEXP (x, 0, j)) == SET
|
||||
&& GET_CODE (SET_SRC (XVECEXP (x, 0, j))) == CALL)
|
||||
return CALL_INSN;
|
||||
if (has_return_p)
|
||||
return JUMP_INSN;
|
||||
}
|
||||
#ifdef GENERATOR_FILE
|
||||
if (GET_CODE (x) == MATCH_OPERAND
|
||||
|
|
Loading…
Add table
Reference in a new issue