https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91222
Bug ID: 91222 Summary: [10 Regression] 507.cactuBSSN_r build fails in warn_types_mismatch at ipa-devirt.c:1006 since r273571 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: lto Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: marxin at gcc dot gnu.org Target Milestone: --- Following reduced test-case fails: $ cat 1.ii extern "C" { struct { double AlphaDriver; double BetaDriver; double EpsDiss; double LapseACoeff; double LapseAdvectionCoeff; double MinimumLapse; double ShiftAdvectionCoeff; double ShiftBCoeff; double ShiftGammaCoeff; double SpatialBetaDriverRadius; double SpatialShiftGammaCoeffRadius; double harmonicF; const char *UseSpatialBetaDriver; const char *calculate_ADMBase_variables_at; const char *my_initial_boundary_condition; const char *my_rhs_boundary_condition; int ML_BSSN_Advect_calc_every; int ML_BSSN_Advect_calc_offset; int ML_BSSN_Dissipation_calc_every; int ML_BSSN_Dissipation_calc_offset; int ML_BSSN_InitGamma_calc_every; int ML_BSSN_InitGamma_calc_offset; int ML_BSSN_InitRHS_calc_every; int ML_BSSN_InitRHS_calc_offset; int ML_BSSN_MaxNumArrayEvolvedVars; int ML_BSSN_MaxNumEvolvedVars; int ML_BSSN_Minkowski_calc_every; int ML_BSSN_Minkowski_calc_offset; int ML_BSSN_RHSStaticBoundary_calc_every; int ML_BSSN_RHSStaticBoundary_calc_offset; int ML_BSSN_RHS_calc_every; int ML_BSSN_RHS_calc_offset; int ML_BSSN_boundary_calc_every; int ML_BSSN_boundary_calc_offset; int ML_BSSN_constraints_calc_every; int ML_BSSN_constraints_calc_offset; int ML_BSSN_convertFromADMBaseGamma_calc_every; int ML_BSSN_convertFromADMBaseGamma_calc_offset; int ML_BSSN_convertFromADMBase_calc_every; int ML_BSSN_convertFromADMBase_calc_offset; int ML_BSSN_convertToADMBaseDtLapseShiftBoundary_calc_every; int ML_BSSN_convertToADMBaseDtLapseShiftBoundary_calc_offset; int ML_BSSN_convertToADMBaseDtLapseShift_calc_every; int ML_BSSN_convertToADMBaseDtLapseShift_calc_offset; int ML_BSSN_convertToADMBaseFakeDtLapseShift_calc_every; int ML_BSSN_convertToADMBaseFakeDtLapseShift_calc_offset; int ML_BSSN_convertToADMBase_calc_every; int ML_BSSN_convertToADMBase_calc_offset; int ML_BSSN_enforce_calc_every; int ML_BSSN_enforce_calc_offset; int ShiftAlphaPower; int conformalMethod; int fdOrder; int harmonicN; int harmonicShift; int other_timelevels; int rhs_timelevels; int timelevels; int verbose; } ml_bssnrest_; } $ cat 2.ii extern "C" { extern struct { double AlphaDriver; double BetaDriver; double EpsDiss; double LapseACoeff; double LapseAdvectionCoeff; double MinimumLapse; double ShiftAdvectionCoeff; double ShiftBCoeff; double ShiftGammaCoeff; double SpatialBetaDriverRadius; double SpatialShiftGammaCoeffRadius; double harmonicF; const char *UseSpatialBetaDriver; const char *calculate_ADMBase_variables_at; const char *my_initial_boundary_condition; const char *my_rhs_boundary_condition; int ML_BSSN_Advect_calc_every; int ML_BSSN_Advect_calc_offset; int ML_BSSN_Dissipation_calc_every; int ML_BSSN_Dissipation_calc_offset; int ML_BSSN_InitGamma_calc_every; int ML_BSSN_InitGamma_calc_offset; int ML_BSSN_InitRHS_calc_every; int ML_BSSN_InitRHS_calc_offset; int ML_BSSN_MaxNumArrayEvolvedVars; int ML_BSSN_MaxNumEvolvedVars; int ML_BSSN_Minkowski_calc_every; int ML_BSSN_Minkowski_calc_offset; int ML_BSSN_RHSStaticBoundary_calc_every; int ML_BSSN_RHSStaticBoundary_calc_offset; int ML_BSSN_RHS_calc_every; int ML_BSSN_RHS_calc_offset; int ML_BSSN_boundary_calc_every; int ML_BSSN_boundary_calc_offset; int ML_BSSN_constraints_calc_every; int ML_BSSN_constraints_calc_offset; int ML_BSSN_convertFromADMBaseGamma_calc_every; int ML_BSSN_convertFromADMBaseGamma_calc_offset; int ML_BSSN_convertFromADMBase_calc_every; int ML_BSSN_convertFromADMBase_calc_offset; int ML_BSSN_convertToADMBaseDtLapseShiftBoundary_calc_every; int ML_BSSN_convertToADMBaseDtLapseShiftBoundary_calc_offset; int ML_BSSN_convertToADMBaseDtLapseShift_calc_every; int ML_BSSN_convertToADMBaseDtLapseShift_calc_offset; int ML_BSSN_convertToADMBaseFakeDtLapseShift_calc_every; int ML_BSSN_convertToADMBaseFakeDtLapseShift_calc_offset; int ML_BSSN_convertToADMBase_calc_every; int ML_BSSN_convertToADMBase_calc_offset; int ML_BSSN_enforce_calc_every; int ML_BSSN_enforce_calc_offset; int ShiftAlphaPower; int conformalMethod; int fdOrder; int harmonicN; int harmonicShift; int other_timelevels; int rhs_timelevels; int timelevels; int verbose; } ml_bssnrest_; int fdOrder(ml_bssnrest_.fdOrder); } $ gcc -flto 1.ii 2.ii -shared -fPIC 2.ii:62:3: warning: 'ml_bssnrest_' violates the C++ One Definition Rule [-Wodr] 62 | } ml_bssnrest_; | ^ lto1: internal compiler error: Segmentation fault 0xc7f71f crash_signal /home/marxin/Programming/gcc/gcc/toplev.c:326 0x7f6ba9cc5e4f ??? /usr/src/debug/glibc-2.29-7.3.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0 0xa70bdc tree_check(tree_node*, char const*, int, char const*, tree_code) /home/marxin/Programming/gcc/gcc/tree.h:3219 0xa70bdc warn_types_mismatch(tree_node*, tree_node*, unsigned int, unsigned int) /home/marxin/Programming/gcc/gcc/ipa-devirt.c:1006 0x7e4a9c lto_symtab_merge_decls_2 /home/marxin/Programming/gcc/gcc/lto/lto-symtab.c:722 0x7e4a9c lto_symtab_merge_decls_1 /home/marxin/Programming/gcc/gcc/lto/lto-symtab.c:861 0x7e4a9c lto_symtab_merge_decls() /home/marxin/Programming/gcc/gcc/lto/lto-symtab.c:887 0x7f0628 read_cgraph_and_symbols(unsigned int, char const**) /home/marxin/Programming/gcc/gcc/lto/lto-common.c:2839 0x7d6e32 lto_main() /home/marxin/Programming/gcc/gcc/lto/lto.c:616 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. lto-wrapper: fatal error: gcc returned 1 exit status compilation terminated. /usr/bin/ld: error: lto-wrapper failed collect2: error: ld returned 1 exit status