From 67f95586afba2756e279f9d59a63a8f35a8d95f1 Mon Sep 17 00:00:00 2001 From: Marek Polacek Date: Wed, 11 Dec 2013 12:25:05 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/expr.c | 12 +++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 949eb947997..8a8f8a996a2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-12-11 Marek Polacek + + 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 * config/arm/arm.opt (mlra): Enable LRA by default. diff --git a/gcc/expr.c b/gcc/expr.c index 19df9dc0146..225555eaf3b 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -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. */ if (code == SSA_NAME && (g = SSA_NAME_DEF_STMT (ssa_name)) - && gimple_code (g) == GIMPLE_CALL) - { - gcc_assert (!gimple_call_internal_p (g)); - pmode = promote_function_mode (type, mode, &unsignedp, - gimple_call_fntype (g), - 2); - } + && gimple_code (g) == GIMPLE_CALL + && !gimple_call_internal_p (g)) + pmode = promote_function_mode (type, mode, &unsignedp, + gimple_call_fntype (g), + 2); else pmode = promote_decl_mode (exp, &unsignedp); gcc_assert (GET_MODE (decl_rtl) == pmode);