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

Reply via email to