[Bug c++/88256] [7/8/9 Regression] ICE: Segmentation fault (in make_ssa_name_fn), C++ FE missing DECL_EXPRs
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Nov 29 10:13:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88256
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |NEW
Component|ipa |c++
Assignee|rguenth at gcc dot gnu.org |unassigned at gcc dot gnu.org
Summary|[7/8/9 Regression] ICE: |[7/8/9 Regression] ICE:
|Segmentation fault (in |Segmentation fault (in
|make_ssa_name_fn) |make_ssa_name_fn), C++ FE
| |missing DECL_EXPRs
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
Program received signal SIGSEGV, Segmentation fault.
0x000000000174d104 in make_ssa_name_fn (fn=0x7ffff69e6160, var=<tree 0x0>,
stmt=<gimple 0x0>, version=0)
at /space/rguenther/src/gcc-sccvn/gcc/tree-ssanames.c:268
268 gcc_assert (VAR_P (var)
we are remapping a released SSA name referenced from TYPE_SIZE of
int[0:(sizetype) D.2308][0:(sizetype) D.2307]
Thus this is a FE issue where we lack a DECL_EXPR for the type used in
some memory reference:
(gdb) p debug_gimple_stmt (stmt)
# VUSE <.MEM_6(D)>
_5 = MEM[(int[0:(sizetype) D.2308][0:(sizetype) D.2307] *)foo.2_4][0]{lb: 0 sz:
_3 * 4}[0];
static void f2 (int arg) { res = ((int (*)[arg][b]) foo)[0][0][0]; }
is in .original
;; Function void f2(int) (null)
;; enabled by -tree-original
<<cleanup_point <<< Unknown tree: expr_stmt
(void) (res = (*(((sizetype) (SAVE_EXPR <(ssizetype) b + -1>) + 1) *
((sizetype) (SAVE_EXPR <(ssizetype) arg + -1>) + 1);, (int[0:(sizetype)
(SAVE_EXPR <(ssizetype) arg + -1>)][0:(sizetype) (SAVE_EXPR <(ssizetype) b +
-1>)] *) foo;))[0][0]) >>>>>;
there's no DECL_EXPR so size expressions are not properly unshared. IIRC
there's a duplicate PR where I ran into a similar issue. I'm probably
thinking of PR86216 which sadly also has no attention from FE maintainers.
Anyway, C++ FE bug.
More information about the Gcc-bugs
mailing list