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

Reply via email to