https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89500
Bug ID: 89500 Summary: [9 Regression] ICE: tree check: expected integer_cst, have ssa_name in get_len, at tree.h:5653 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Started with gcc-9 at -O[23] : $ cat z1.c extern __SIZE_TYPE__ strlen (const char*); extern __SIZE_TYPE__ strnlen (const char*, __SIZE_TYPE__); void foo (int *a) { char c[0]; a[0] = strlen (c); a[0] = strnlen (c, 0); } $ gcc-9-20190224 -c z1.c -O1 $ $ gcc-9-20190224 -c z1.c -O2 during GIMPLE pass: strlen z1.c: In function 'foo': z1.c:3:6: internal compiler error: tree check: expected integer_cst, have ssa_name in get_len, at tree.h:5653 3 | void foo (int *a) | ^~~ 0x5cf414 tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/tree.c:9848 0xc517a7 tree_check(tree_node const*, char const*, int, char const*, tree_code) ../../gcc/tree.h:3432 0xc517a7 wi::extended_tree<192>::get_len() const ../../gcc/tree.h:5653 0xc517a7 wi::int_traits<generic_wide_int<wi::extended_tree<192> > >::decompose(long*, unsigned int, generic_wide_int<wi::extended_tree<192> > const&) ../../gcc/wide-int.h:964 0xc517a7 wide_int_ref_storage<true, false>::wide_int_ref_storage<generic_wide_int<wi::extended_tree<192> > >(generic_wide_int<wi::extended_tree<192> > const&, unsigned int) ../../gcc/wide-int.h:1013 0xc517a7 generic_wide_int<wide_int_ref_storage<true, false> >::generic_wide_int<generic_wide_int<wi::extended_tree<192> > >(generic_wide_int<wi::extended_tree<192> > const&, unsigned int) ../../gcc/wide-int.h:788 0xc517a7 bool wi::lts_p<generic_wide_int<wi::extended_tree<192> >, generic_wide_int<wi::extended_tree<192> > >(generic_wide_int<wi::extended_tree<192> > const&, generic_wide_int<wi::extended_tree<192> > const&) ../../gcc/wide-int.h:1880 0xe1a9ae wi::binary_traits<generic_wide_int<wi::extended_tree<192> >, generic_wide_int<wi::extended_tree<192> >, wi::int_traits<generic_wide_int<wi::extended_tree<192> > >::precision_type, wi::int_traits<generic_wide_int<wi::extended_tree<192> > >::precision_type>::signed_predicate_result operator< <generic_wide_int<wi::extended_tree<192> >, generic_wide_int<wi::extended_tree<192> > >(generic_wide_int<wi::extended_tree<192> > const&, generic_wide_int<wi::extended_tree<192> > const&) ../../gcc/wide-int.h:3227 0xe1a9ae tree_int_cst_lt(tree_node const*, tree_node const*) ../../gcc/tree.h:5809 0xe1a9ae handle_builtin_strlen ../../gcc/tree-ssa-strlen.c:1305 0xe1cf63 strlen_check_and_optimize_stmt ../../gcc/tree-ssa-strlen.c:3574 0xe1cf63 strlen_dom_walker::before_dom_children(basic_block_def*) ../../gcc/tree-ssa-strlen.c:3927 0x1483d67 dom_walker::walk(basic_block_def*) ../../gcc/domwalk.c:353 0xe16c97 execute ../../gcc/tree-ssa-strlen.c:4007