https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120156

            Bug ID: 120156
           Summary: [14 Regression] Segfault while compiling eigen test
                    bdcsvd.cpp
           Product: gcc
           Version: 14.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: stefansf at gcc dot gnu.org
  Target Milestone: ---

While running the eigen testsuite
(https://gitlab.com/libeigen/eigen/-/commit/729443409942a1816ddf74b95224003b83f4925c
plus an internal patch) results in a segfault while using gcc 14 (commit
r14-11745-g93b85bdf830477):

c++ -DEIGEN_TEST_MAX_SIZE=320 -DEIGEN_TEST_PART_16=1 -I/devel/eigen -pedantic
-Wall -Wextra -Wundef -Wcast-align -Wchar-subscripts -Wnon-virtual-dtor
-Wunused-local-typedefs -Wpointer-arith -Wwrite-strings -Wformat-security
-Wlogical-op -Wenum-conversion -Wc++11-extensions -Wdouble-promotion -Wshadow
-Wno-psabi -Wno-variadic-macros -Wno-long-long -fno-common -fstrict-aliasing
-fno-check-new -march=z13 -mzvector -march=z14 -mzvector -O3 -DNDEBUG
-std=c++14 -MD -MT test/CMakeFiles/bdcsvd_16.dir/bdcsvd.cpp.o -MF
CMakeFiles/bdcsvd_16.dir/bdcsvd.cpp.o.d -o
CMakeFiles/bdcsvd_16.dir/bdcsvd.cpp.o -c /devel/eigen/test/bdcsvd.cpp
...
/devel/eigen/Eigen/src/SVD/SVDBase.h:372:6: internal compiler error:
Segmentation fault
  372 | void SVDBase<Derived>::_solve_impl(const RhsType& rhs, DstType& dst)
const {
      |      ^~~~~~~~~~~~~~~~
0x1abbc09 crash_signal
        /devel/gcc-2-eigen/src/gcc/toplev.cc:319
0x1537dc2 bitmap_list_find_element
        /devel/gcc-2-eigen/src/gcc/bitmap.cc:397
0x1537dc2 bitmap_bit_p(bitmap_head const*, int)
        /devel/gcc-2-eigen/src/gcc/bitmap.cc:995
0x1cf0deb pt_solution_includes_1
        /devel/gcc-2-eigen/src/gcc/tree-ssa-structalias.cc:7050
0x1cf8d81 pt_solution_includes(pt_solution*, tree_node const*)
        /devel/gcc-2-eigen/src/gcc/tree-ssa-structalias.cc:7069
0x25ad6a5 initialize_data_dependence_relation(data_reference*, data_reference*,
vec<loop*, va_heap, vl_ptr>)
        /devel/gcc-2-eigen/src/gcc/tree-data-ref.cc:3498
0x25ad7ad compute_all_dependences(vec<data_reference*, va_heap, vl_ptr> const&,
vec<data_dependence_relation*, va_heap, vl_ptr>*, vec<loop*, va_heap, vl_ptr>
const&, bool)
        /devel/gcc-2-eigen/src/gcc/tree-data-ref.cc:5771
0x25ad7ad compute_all_dependences(vec<data_reference*, va_heap, vl_ptr> const&,
vec<data_dependence_relation*, va_heap, vl_ptr>*, vec<loop*, va_heap, vl_ptr>
const&, bool)
        /devel/gcc-2-eigen/src/gcc/tree-data-ref.cc:5746
0x1c5bb6b determine_loop_nest_reuse
        /devel/gcc-2-eigen/src/gcc/tree-ssa-loop-prefetch.cc:1689
0x1c5bb6b loop_prefetch_arrays
        /devel/gcc-2-eigen/src/gcc/tree-ssa-loop-prefetch.cc:1935
0x1c5bb6b tree_ssa_prefetch_arrays()
        /devel/gcc-2-eigen/src/gcc/tree-ssa-loop-prefetch.cc:2037

Oddly preprocessing the file and then compiling the preprocessed file succeeds.
Compilation also succeeds with gcc 15.  Bisect stops at
r15-491-gc290e6a0b7a9de.  Backporting this commit fixes the segfault for me.

Reply via email to