re PR middle-end/59399 (ICE in expand_expr_real_1 with -m64 -fsanitize=signed-integer-overflow)

PR sanitizer/59399
	* expr.c (expand_expr_real_1): Remove assert dealing with
	internal calls and turn that into a condition instead.

From-SVN: r205888
This commit is contained in:
Marek Polacek 2013-12-11 12:25:05 +00:00 committed by Marek Polacek
parent e15aa62309
commit 67f95586af
2 changed files with 11 additions and 7 deletions

View File

@ -1,3 +1,9 @@
2013-12-11 Marek Polacek <polacek@redhat.com>
PR sanitizer/59399
* expr.c (expand_expr_real_1): Remove assert dealing with
internal calls and turn that into a condition instead.
2013-12-11 Yvan Roux <yvan.roux@linaro.org> 2013-12-11 Yvan Roux <yvan.roux@linaro.org>
* config/arm/arm.opt (mlra): Enable LRA by default. * config/arm/arm.opt (mlra): Enable LRA by default.

View File

@ -9482,13 +9482,11 @@ expand_expr_real_1 (tree exp, rtx target, enum machine_mode tmode,
the same mode we got when the variable was declared. */ the same mode we got when the variable was declared. */
if (code == SSA_NAME if (code == SSA_NAME
&& (g = SSA_NAME_DEF_STMT (ssa_name)) && (g = SSA_NAME_DEF_STMT (ssa_name))
&& gimple_code (g) == GIMPLE_CALL) && gimple_code (g) == GIMPLE_CALL
{ && !gimple_call_internal_p (g))
gcc_assert (!gimple_call_internal_p (g)); pmode = promote_function_mode (type, mode, &unsignedp,
pmode = promote_function_mode (type, mode, &unsignedp, gimple_call_fntype (g),
gimple_call_fntype (g), 2);
2);
}
else else
pmode = promote_decl_mode (exp, &unsignedp); pmode = promote_decl_mode (exp, &unsignedp);
gcc_assert (GET_MODE (decl_rtl) == pmode); gcc_assert (GET_MODE (decl_rtl) == pmode);