[Bug middle-end/85956] [8/9 Regression] ICE in wide_int_to_tree_1, at tree.c:1549
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue May 29 10:32:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85956
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|9.0 |8.2
Summary|[9 Regression] ICE in |[8/9 Regression] ICE in
|wide_int_to_tree_1, at |wide_int_to_tree_1, at
|tree.c:1549 |tree.c:1549
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
It actually started with r254830 if you drop the default(none) so that you
don't hit the bug r260156 was fixing.
Not really sure if it is desirable to slow down code at runtime for warnings
though, by forcing passing around array lengths for the cases of pointers to
VLA, even when nothing in the code refers to those temporaries.
The problem is in:
warning_at (location, OPT_Warray_bounds,
"array subscript %E is below array bounds of %qT",
low_sub, artype);
where we've checked that low_bound is INTEGER_CST, but up_bound is
error_mark_node (what the temporary VAR_DECL that doesn't get passed to the
parallel region is replaced with).
So, either we shouldn't try to print %qT in this case, at least when up_bound
is error_mark_node, or the type printing should handle the case of
error_mark_node bounds gracefully (say print it as [] rather than crash), or
perhaps omp expansion could just try to replace these error_mark_node array
bounds with NULLs somewhere (no idea if that is actually possible though).
More information about the Gcc-bugs
mailing list