diff options
author | Richard Biener <rguenther@suse.de> | 2018-05-04 07:30:50 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-05-04 07:30:50 +0000 |
commit | 7d187fdfdfcf16441c895625f2d947c7a09a0060 (patch) | |
tree | 934fa97e4e8975a4351d77cb5226f668ac1a3a96 /gcc/tree.c | |
parent | 9b5713f7ce06d6f4c0df7410352623573d2506ea (diff) | |
download | gcc-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.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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); } } |