aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-05-04 07:30:50 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-05-04 07:30:50 +0000
commit7d187fdfdfcf16441c895625f2d947c7a09a0060 (patch)
tree934fa97e4e8975a4351d77cb5226f668ac1a3a96 /gcc/tree.c
parent9b5713f7ce06d6f4c0df7410352623573d2506ea (diff)
downloadgcc-7d187fdfdfcf16441c895625f2d947c7a09a0060.zip
gcc-7d187fdfdfcf16441c895625f2d947c7a09a0060.tar.gz
gcc-7d187fdfdfcf16441c895625f2d947c7a09a0060.tar.bz2
re PR tree-optimization/85627 (ICE in update_phi_components in tree-complex.c)
2018-05-04 Richard Biener <rguenther@suse.de> PR middle-end/85627 * tree-complex.c (update_complex_assignment): We are always in SSA form. (expand_complex_div_wide): Likewise. (expand_complex_operations_1): Likewise. (expand_complex_libcall): Preserve EH info of the original stmt. (tree_lower_complex): Handle removed blocks. * tree.c (build_common_builtin_nodes): Do not set ECF_NOTRHOW on complex multiplication and division libcall builtins. * g++.dg/torture/pr85627.C: New testcase. From-SVN: r259923
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index b661d3d..77a73b4 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -10386,17 +10386,19 @@ build_common_builtin_nodes (void)
*q = TOLOWER (*p);
*q = '\0';
+ /* For -ftrapping-math these should throw from a former
+ -fnon-call-exception stmt. */
built_in_names[mcode] = concat (prefix, "mul", mode_name_buf, "3",
NULL);
local_define_builtin (built_in_names[mcode], ftype, mcode,
built_in_names[mcode],
- ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+ ECF_CONST | ECF_LEAF);
built_in_names[dcode] = concat (prefix, "div", mode_name_buf, "3",
NULL);
local_define_builtin (built_in_names[dcode], ftype, dcode,
built_in_names[dcode],
- ECF_CONST | ECF_NOTHROW | ECF_LEAF);
+ ECF_CONST | ECF_LEAF);
}
}