http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58369

            Bug ID: 58369
           Summary: [4.8/4.9 regression] ICE in subreg_get_info when
                    compiling boost for m68k-linux
           Product: gcc
           Version: 4.8.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mikpe at it dot uu.se

Created attachment 30773
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30773&action=edit
Pre-processed non-reduced test case

Attempting to compile boost-1.54 with g++ 4.8 or 4.9 for m68k-linux (after
fixing a known boost alignment error that breaks jam) causes an ICE:

> g++ -O2 -fPIC -S ellint_3f.ii 
In file included from ./boost/math/special_functions/ellint_3.hpp:22:0,
                 from ./boost/math/special_functions.hpp:27,
                 from libs/math/src/tr1/pch.hpp:9,
                 from libs/math/build/../src/tr1/ellint_3f.cpp:6:
./boost/math/special_functions/ellint_rj.hpp: In function 'T
boost::math::detail::ellint_rj_imp(T, T, T, T, const Policy&) [with T = double;
Policy =
boost::math::policies::policy<boost::math::policies::domain_error<(boost::math::policies::error_policy_type)1u>,
boost::math::policies::pole_error<(boost::math::policies::error_policy_type)1u>,
boost::math::policies::overflow_error<(boost::math::policies::error_policy_type)1u>,
boost::math::policies::evaluation_error<(boost::math::policies::error_policy_type)1u>,
boost::math::policies::rounding_error<(boost::math::policies::error_policy_type)1u>,
boost::math::policies::default_policy, boost::math::policies::default_policy,
boost::math::policies::default_policy, boost::math::policies::default_policy,
boost::math::policies::default_policy,
boost::math::policies::default_policy>]':
./boost/math/special_functions/ellint_rj.hpp:151:1: internal compiler error: in
subreg_get_info, at rtlanal.c:3394
0x76ca1c subreg_get_info(unsigned int, machine_mode, unsigned int,
machine_mode, subreg_info*)
        /tmp/gcc-4.8-r193425/gcc/rtlanal.c:3394
0x76ca2b subreg_regno_offset(unsigned int, machine_mode, unsigned int,
machine_mode)
        /tmp/gcc-4.8-r193425/gcc/rtlanal.c:3446
0x75d1f0 choose_reload_regs
        /tmp/gcc-4.8-r193425/gcc/reload1.c:6564
0x761227 reload_as_needed
        /tmp/gcc-4.8-r193425/gcc/reload1.c:4648
0x766f5e reload(rtx_def*, int)
        /tmp/gcc-4.8-r193425/gcc/reload1.c:1055
0x6ab68b do_reload
        /tmp/gcc-4.8-r193425/gcc/ira.c:4636
0x6ab68b rest_of_handle_reload
        /tmp/gcc-4.8-r193425/gcc/ira.c:4737
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

4.7 is Ok.  Started with Bin Cheng's r193425.  Reproducible with a cross.

Originally from <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=719484>.

Currently attempting to auto-reduce the test case, but it's a painfully slow
process.

Reply via email to