On Wed, May 1, 2024 at 7:50 PM Andrew Pinski <pins...@gmail.com> wrote: > > On Wed, May 1, 2024 at 7:40 PM Ian Lance Taylor <i...@google.com> wrote: > > > > On Wed, May 1, 2024 at 12:43 AM Aldy Hernandez <al...@redhat.com> wrote: > > > > > > gcc/ChangeLog: > > > > > > * ipa-fnsummary.cc (evaluate_properties_for_edge): Initialize > > > Value_Range's. > > > * value-range.h (class Value_Range): Add a buffer and remove > > > m_irange and m_frange. > > > (Value_Range::Value_Range): Call init. > > > (Value_Range::set_type): Same. > > > (Value_Range::init): Use in place new to initialize buffer. > > > (Value_Range::operator=): Tidy. > > > > > > I'm seeing a crash building on sparc-sun-solaris2.11 that may be due > > to this change. The crash occurs in stage 1, the first time the newly > > built compiler is used. > > > > ./xgcc -B./ -B/var/gcc/iant/install/sparc-sun-solaris2.11/bin/ > > -isystem /var/gcc/iant/install/sparc-sun-solaris2.11/include -isystem > > /var/gcc/iant/install/sparc-sun-solaris2.11/sys-include > > -L/var/gcc/iant/bootstrap/gcc/../ld -xc -nostdinc /dev/null -S -o > > /dev/null -fself-test=../../gcc/gcc/testsuite/selftests > > In function ‘test_fn’: > > cc1: internal compiler error: Bus Error > > 0x1c7db03 crash_signal > > ../../gcc/gcc/toplev.cc:319 > > 0x104a82c void wi::copy<wide_int_storage, > > generic_wide_int<wide_int_ref_storage<true, false> > > > >(wide_int_storage&, generic_wide_int<wide_int_ref_storage<true, > > false> > const&) > > ../../gcc/gcc/wide-int.h:2191 > > 0x1049da3 wide_int_storage& > > wide_int_storage::operator=<wi::hwi_with_prec>(wi::hwi_with_prec > > const&) > > ../../gcc/gcc/wide-int.h:1247 > > 0x104929b generic_wide_int<wide_int_storage>& > > generic_wide_int<wide_int_storage>::operator=<wi::hwi_with_prec>(wi::hwi_with_prec > > const&) > > ../../gcc/gcc/wide-int.h:1002 > > 0x104757f irange_bitmask::set_unknown(unsigned int) > > ../../gcc/gcc/value-range.h:163 > > 0x1047b6f irange::set_varying(tree_node*) > > ../../gcc/gcc/value-range.h:1067 > > 0x1774d1b Value_Range::set_varying(tree_node*) > > ../../gcc/gcc/value-range.h:720 > > 0x1aef213 range_cast(vrange&, tree_node*) > > ../../gcc/gcc/range-op.h:248 > > 0x1ada517 operator_lshift::op1_range(irange&, tree_node*, irange > > const&, irange const&, relation_trio) const > > ../../gcc/gcc/range-op.cc:2706 > > 0x1aeaa6b range_op_lshift_tests > > ../../gcc/gcc/range-op.cc:4750 > > 0x1aee20f selftest::range_op_tests() > > ../../gcc/gcc/range-op.cc:4887 > > 0x2dfaa37 test_ranges > > ../../gcc/gcc/function-tests.cc:585 > > 0x2dfb337 selftest::function_tests_cc_tests() > > ../../gcc/gcc/function-tests.cc:681 > > 0x308a027 selftest::run_tests() > > ../../gcc/gcc/selftest-run-tests.cc:108 > > 0x1c833ef toplev::run_self_tests() > > ../../gcc/gcc/toplev.cc:2213 > > Please submit a full bug report, with preprocessed source (by using > > -freport-bug). > > Please include the complete backtrace with any bug report. > > See <https://gcc.gnu.org/bugs/> for instructions. > > make: *** [../../gcc/gcc/c/Make-lang.in:153: s-selftest-c] Error 1 > > This was also reported here: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114912
Thanks. > The same question applies really, what compiler are you using to > compile GCC with? I suspect this is making a difference. It might also > be the sparc compiler that both of you two are using is causing wrong > code with some more complex C++ code even though it is at -O0. > The adding of the deconstructor to Value_Range might be causing the > structure to become a "non-POD" and different argument passing and it > was broken even at -O0 (this is just a guess). I am building stage1 with GCC 9.1.0. Ian