Following ICEs: $ gcc /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/pr66817.c -Warray-bounds -O3 during GIMPLE pass: wrestrict /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/pr66817.c: In function ‘retframe_block’: /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/i386/pr66817.c:16:3: internal compiler error: tree check: expected integer_cst, have var_decl in get_len, at tree.h:5571 retframe_block () ^~~~~~~~~~~~~~ 0x5d5f98 tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/tree.c:9337 0x95e3fb tree_check(tree_node const*, char const*, int, char const*, tree_code) ../../gcc/tree.h:3391 0x95e3fb wi::extended_tree<128>::get_len() const ../../gcc/tree.h:5571 0x95e3fb wi::int_traits<generic_wide_int<wi::extended_tree<128> > >::decompose(long*, unsigned int, generic_wide_int<wi::extended_tree<128> > const&) ../../gcc/wide-int.h:934 0x95e3fb wide_int_ref_storage<true, false>::wide_int_ref_storage<generic_wide_int<wi::extended_tree<128> > >(generic_wide_int<wi::extended_tree<128> > const&, unsigned int) ../../gcc/wide-int.h:983 0x95e3fb generic_wide_int<wide_int_ref_storage<true, false> >::generic_wide_int<generic_wide_int<wi::extended_tree<128> > >(generic_wide_int<wi::extended_tree<128> > const&, unsigned int) ../../gcc/wide-int.h:758 0x95e3fb fixed_wide_int_storage<128>::fixed_wide_int_storage<generic_wide_int<wi::extended_tree<128> > >(generic_wide_int<wi::extended_tree<128> > const&) ../../gcc/wide-int.h:1211 0x95e3fb generic_wide_int<fixed_wide_int_storage<128> >& generic_wide_int<fixed_wide_int_storage<128> >::operator=<generic_wide_int<wi::extended_tree<128> > >(generic_wide_int<wi::extended_tree<128> > const&) ../../gcc/wide-int.h:886 0x95e3fb builtin_memref ../../gcc/gimple-ssa-warn-restrict.c:281 0x95fac2 check_bounds_or_overlap(gcall*, tree_node*, tree_node*, tree_node*, tree_node*, bool) ../../gcc/gimple-ssa-warn-restrict.c:1855 0x96270b check_call ../../gcc/gimple-ssa-warn-restrict.c:1826 0x96270b before_dom_children ../../gcc/gimple-ssa-warn-restrict.c:106 0x146bd9f dom_walker::walk(basic_block_def*) ../../gcc/domwalk.c:353 0x957071 execute ../../gcc/gimple-ssa-warn-restrict.c:120
Patch: https://gcc.gnu.org/ml/gcc-patches/2018-05/msg00939.html
Author: msebor Date: Tue May 22 15:22:16 2018 New Revision: 260537 URL: https://gcc.gnu.org/viewcvs?rev=260537&root=gcc&view=rev Log: PR tree-optimization/85826 - ICE in gimple-ssa-warn-restruct on a variable-length struct gcc/ChangeLog: PR tree-optimization/85826 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Avoid assuming that a DECL necesarily has a constant size. gcc/testsuite/ChangeLog: PR tree-optimization/85826 * gcc.dg/Wrestrict-17.c: New test. Added: trunk/gcc/testsuite/gcc.dg/Wrestrict-17.c Modified: trunk/gcc/ChangeLog trunk/gcc/gimple-ssa-warn-restrict.c trunk/gcc/testsuite/ChangeLog
Fixed via r260537.
Fixed.