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

--- Comment #9 from Rainer Orth <ro at gcc dot gnu.org> ---
I've now managed to test your v2 patch, with mixed results:

* On Solaris 11.4:

  the libstdc++ failures are gone
  the new tests PASS
  however, the old g++.dg/modules tests continue to ICE as before

* On Solaris 11.3:

  the new tests ICE:

FAIL: g++.dg/modules/pr98531_a.H -std=c++17 (internal compiler error)
FAIL: g++.dg/modules/pr98531_a.H -std=c++17 (test for excess errors)
FAIL: g++.dg/modules/pr98531_a.H -std=c++2a (internal compiler error)
FAIL: g++.dg/modules/pr98531_a.H -std=c++2a (test for excess errors)
FAIL: g++.dg/modules/pr98531_a.H module-cmi 
(gcm.cache/\$srcdir/g++.dg/modules/pr98531_a.H.gcm)
FAIL: g++.dg/modules/pr98531_a.H module-cmi 
(gcm.cache/\$srcdir/g++.dg/modules/pr98531_a.H.gcm)
FAIL: g++.dg/modules/pr98531_b.C -std=c++17 (test for excess errors)
FAIL: g++.dg/modules/pr98531_b.C -std=c++2a (test for excess errors)

Excess errors:
/vol/gcc/src/hg/master/local/gcc/testsuite/g++.dg/modules/pr98531_a.H: internal
compiler error: in tree_node, at cp/module.cc:9137
0xa218acd trees_out::tree_node(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:9137
0x8c4314e trees_out::core_vals(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:6013
0x8c465cf trees_out::tree_node_vals(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:7154
0x8c465cf trees_out::tree_value(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:8968
0x8c4259e trees_out::tree_node(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:9166
0x8c4314e trees_out::core_vals(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:6013
0x8c465cf trees_out::tree_node_vals(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:7154
0x8c465cf trees_out::tree_value(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:8968
0x8c4259e trees_out::tree_node(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:9166
0x8c4314e trees_out::core_vals(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:6013
0x8c465cf trees_out::tree_node_vals(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:7154
0x8c465cf trees_out::tree_value(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:8968
0x8c4259e trees_out::tree_node(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:9166
0x8c4314e trees_out::core_vals(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:6013
0x8c465cf trees_out::tree_node_vals(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:7154
0x8c465cf trees_out::tree_value(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:8968
0x8c4259e trees_out::tree_node(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:9166
0x8c4314e trees_out::core_vals(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:6013
0x8c465cf trees_out::tree_node_vals(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:7154
0x8c465cf trees_out::tree_value(tree_node*)
        /vol/gcc/src/hg/master/local/gcc/cp/module.cc:8968

  This seems to be exactly the same stacktrace as the one in the g++.dg/modules
  tests.  I suspected that this is due to the fact that unlike Solaris 11.4,
  11.3 doesn't have __cxa_atexit in libc, and indeed compiling on 11.3 with
  -fuse-cxa-atexit makes the ICE go away, while -fno-use-cxa-atexit on 11.4
  causes it.

Reply via email to