Ticket #40563

Segmentation fault during GIMPLE pass: *rebuild_cgraph_edges

Open Date: 2020-07-15 19:41 Last Update: 2020-07-15 22:40

Reporter:
Owner:
(None)
Type:
Status:
Open
Component:
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None
File:
1
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

Example Code: https://godbolt.org/z/e31raW

The code compiles fine in godbolt with gcc 9.2, but if compiled with mingw there is the following error:

MinGW\bin\g++.exe -g -o output.s -masm=intel -S -fdiagnostics-color=always example.cpp
during GIMPLE pass: *rebuild_cgraph_edges
example.cpp: In member function 'void test3<T>::depart() [with T = const test1<long unsigned int (__attribute__((stdcall)) *)(void*)>]':
example.cpp:55:1: internal compiler error: Segmentation fault
   55 | }
      | ^

example.cpp:55:1: internal compiler error: Aborted
g++.exe: internal compiler error: Aborted signal terminated program cc1plus

Im using:

Windows 10, 64 bit

GCC Version

Using built-in specs.
COLLECT_GCC=c:\toolchain\tools\MinGW\bin\g++.exe
COLLECT_LTO_WRAPPER=c:/toolchain/tools/mingw/bin/../libexec/gcc/mingw32/9.2.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-9.2.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --disable-win32-registry --with-arch=i586 --with-tune=generic --enable-static --enable-shared --enable-threads --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --enable-libgomp --disable-libvtv --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --disable-build-format-warnings --prefix=/mingw --with-gmp=/mingw --with-mpfr=/mingw --with-mpc=/mingw --with-isl=/mingw --enable-nls --with-pkgversion='MinGW.org GCC Build-2'
Thread model: win32
gcc version 9.2.0 (MinGW.org GCC Build-2)
Binutils Version
GNU ld (GNU Binutils) 2.32
MinGW Version
5.4.0
Build Environment
powershell/batch

I hope the Test Case is described good enough.

Ticket History (3/5 Histories)

2020-07-15 19:41 Updated by: thekbro
  • New Ticket "Segmentation fault during GIMPLE pass: *rebuild_cgraph_edges" created
2020-07-15 21:11 Updated by: keith
Comment

Please, do not refer to off-site test cases; your example code needs to be attached directly to the ticket.

2020-07-15 21:40 Updated by: thekbro
Comment

Reply To keith

Please, do not refer to off-site test cases; your example code needs to be attached directly to the ticket.

Sry about that, I added the test case example code.

2020-07-15 22:40 Updated by: keith
Comment

I added the test case example code.

Thanks. FWIW, my mingw32-g++ (MinGW.org Cross-GCC Build-20200531-1) 9.2.0 cross compiler reports the same ICE, when compiling your example:

$ mingw32-g++ -S -masm=intel foo.cpp
during GIMPLE pass: *rebuild_cgraph_edges
foo.cpp: In member function 'void test3<T>::depart() [with T = const test1<long unsigned int (__attribute__((stdcall)) *)(void*)>]':
foo.cpp:55:1: internal compiler error: Segmentation fault
   55 | }
      | ^
0xbc5ecf crash_signal
	../../src/gcc-9.2.0/gcc/toplev.c:326
0x9f077b obj_type_ref_class(tree_node const*)
	../../src/gcc-9.2.0/gcc/ipa-devirt.c:2026
0xe10556 virtual_method_call_p(tree_node const*)
	../../src/gcc-9.2.0/gcc/tree.c:13009
0x8489d1 cgraph_node::create_indirect_edge(gcall*, int, profile_count, bool)
	../../src/gcc-9.2.0/gcc/cgraph.c:968
0x84dd1a cgraph_edge::rebuild_edges()
	../../src/gcc-9.2.0/gcc/cgraphbuild.c:421
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
whereas, with mingw32-g++ (MinGW.org cross-GCC-8.2.0-4) 8.2.0, it seems to compile cleanly.

Unfortunately, I am not a C++ expert, and don't consider myself qualified to pursue this further; your best course of action may be to file a GCC bug, on https://gcc.gnu.org/bugzilla/

Attachment File List

Edit

Please login to add comment to this ticket » Login