c/904: sparc64-elf compiler has internal error while building.

matthew green mrg@everglades.eterna.com.au
Mon Nov 27 05:16:00 GMT 2000


>Number:         904
>Category:       c
>Synopsis:       sparc64-elf compiler has internal error while building.
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Mon Nov 27 05:16:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     matthew green
>Release:        2.97 20001126 (experimental)
>Organization:
people's front against (bozotic) www (softwar foundation)
>Environment:
System: NetBSD everglades.eterna.com.au 1.5K NetBSD 1.5K (EVERGLADES) #49: Sun Nov 19 10:35:27 EST 2000 mrg@everglades.eterna.com.au:/orb/j/src/sys/arch/sparc64/compile/EVERGLADES sparc64


	
host: sparc64-unknown-netbsdelf1.5K
build: sparc64-unknown-netbsdelf1.5K
target: sparc64-unknown-elf
configured with: /croc/mrg/gcc/egcs/configure --prefix=/usr/toolchain --target=sparc64-elf

>Description:

	while attempting to build a sparc64-elf compiler i get the following ICE:

/orb/j/mrg/build/sparc64-elf/gcc/xgcc -B/orb/j/mrg/build/sparc64-elf/gcc/ -B/usr/toolchain/sparc64-elf/bin/ -B/usr/toolchain/sparc64-elf/lib/ -isystem /usr/toolchain/sparc64-elf/include -O2  -DCROSS_COMPILE -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include   -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I/croc/mrg/gcc/egcs/gcc -I/croc/mrg/gcc/egcs/gcc/.  -I/croc/mrg/gcc/egcs/gcc/config -I/croc/mrg/gcc/egcs/gcc/../include  -DL_fixunsdfdi -c /croc/mrg/gcc/egcs/gcc/libgcc2.c -o libgcc/./_fixunsdfdi.o
/croc/mrg/gcc/egcs/gcc/libgcc2.c: In function `__fixunsdfti':
/croc/mrg/gcc/egcs/gcc/libgcc2.c:949: Unrecognizable insn:
(insn 51 272 52 (set (reg:DI 116)
        (fix:SI (fix:TF (reg:TF 117)))) -1 (nil)
    (expr_list:REG_DEAD (reg:TF 117)
        (nil)))
/croc/mrg/gcc/egcs/gcc/libgcc2.c:949: Internal compiler error in extract_insn, at recog.c:2178
confused by earlier errors, bailing out
*** Error code 1

>How-To-Repeat:


	build a `sparc64-elf' toolchain.  i can repeat this failure on both
	NetBSD/sparc64 (where the not-yet contributed `sparc64-netbsd' target
	exhibits the same problem with a native build) and NetBSD/alpha, both
	64-bit hosts.  on an i386 host, i get a different failure mode i will
	be reporting separately.  i have not tried any other 32 bit platforms.

	this is the preprocessed output that causes this problem:

# 1 "/croc/mrg/gcc/egcs/gcc/libgcc2.c"
# 36 "/croc/mrg/gcc/egcs/gcc/libgcc2.c"
# 1 "tconfig.h" 1


# 1 "/croc/mrg/gcc/egcs/gcc/gansidecl.h" 1
# 28 "/croc/mrg/gcc/egcs/gcc/gansidecl.h"
# 1 "/croc/mrg/gcc/egcs/include/ansidecl.h" 1
# 29 "/croc/mrg/gcc/egcs/gcc/gansidecl.h" 2
# 4 "tconfig.h" 2


# 1 "/croc/mrg/gcc/egcs/gcc/config/sparc/xm-sparc.h" 1
# 40 "/croc/mrg/gcc/egcs/gcc/config/sparc/xm-sparc.h"
# 1 "tm.h" 1



# 1 "insn-codes.h" 1





enum insn_code {
  CODE_FOR_get_pc = 45,
  CODE_FOR_movsi_lo_sum_pic = 54,
  CODE_FOR_movsi_high_pic = 55,
  CODE_FOR_movdi_lo_sum_pic = 65,
  CODE_FOR_movdi_high_pic = 66,
  CODE_FOR_seth44 = 70,
  CODE_FOR_setm44 = 71,
  CODE_FOR_setl44 = 72,
  CODE_FOR_sethh = 73,
  CODE_FOR_setlm = 74,
  CODE_FOR_sethm = 75,
  CODE_FOR_setlo = 76,
  CODE_FOR_embmedany_sethi = 77,
  CODE_FOR_embmedany_losum = 78,
  CODE_FOR_embmedany_brsum = 79,
  CODE_FOR_embmedany_textuhi = 80,
  CODE_FOR_embmedany_texthi = 81,
  CODE_FOR_embmedany_textulo = 82,
  CODE_FOR_embmedany_textlo = 83,
  CODE_FOR_movdf_cc_sp64 = 111,
  CODE_FOR_movdf_cc_reg_sp64 = 120,
  CODE_FOR_extendsfdf2 = 150,
  CODE_FOR_truncdfsf2 = 153,
  CODE_FOR_floatsisf2 = 156,
  CODE_FOR_floatsidf2 = 157,
  CODE_FOR_floatdisf2 = 159,
  CODE_FOR_floatdidf2 = 160,
  CODE_FOR_fix_truncsfsi2 = 162,
  CODE_FOR_fix_truncdfsi2 = 163,
  CODE_FOR_fix_truncsfdi2 = 165,
  CODE_FOR_fix_truncdfdi2 = 166,
  CODE_FOR_adddi3_insn_sp32 = 168,
  CODE_FOR_addx = 169,
  CODE_FOR_subx = 172,
  CODE_FOR_cmp_minus_cc_set = 188,
  CODE_FOR_mulsi3 = 190,
  CODE_FOR_muldi3_v8plus = 192,
  CODE_FOR_mulsidi3_v8plus = 194,
  CODE_FOR_const_mulsidi3_v8plus = 195,
  CODE_FOR_const_mulsidi3_sp32 = 198,
  CODE_FOR_const_mulsidi3_sp64 = 199,
  CODE_FOR_smulsi3_highpart_v8plus = 200,
  CODE_FOR_const_smulsi3_highpart_v8plus = 202,
  CODE_FOR_const_smulsi3_highpart = 204,
  CODE_FOR_umulsidi3_v8plus = 205,
  CODE_FOR_const_umulsidi3_sp32 = 208,
  CODE_FOR_const_umulsidi3_sp64 = 209,
  CODE_FOR_const_umulsidi3_v8plus = 210,
  CODE_FOR_umulsi3_highpart_v8plus = 211,
  CODE_FOR_const_umulsi3_highpart_v8plus = 212,
  CODE_FOR_const_umulsi3_highpart = 214,
  CODE_FOR_divsi3_sp32 = 215,
  CODE_FOR_divsi3_sp64 = 216,
  CODE_FOR_divdi3 = 217,
  CODE_FOR_udivsi3_sp32 = 219,
  CODE_FOR_udivsi3_sp64 = 220,
  CODE_FOR_udivdi3 = 221,
  CODE_FOR_andsi3 = 228,
  CODE_FOR_iorsi3 = 234,
  CODE_FOR_xorsi3 = 241,
  CODE_FOR_negsi2 = 259,
  CODE_FOR_one_cmplsi2 = 266,
  CODE_FOR_adddf3 = 272,
  CODE_FOR_addsf3 = 273,
  CODE_FOR_subdf3 = 275,
  CODE_FOR_subsf3 = 276,
  CODE_FOR_muldf3 = 278,
  CODE_FOR_mulsf3 = 279,
  CODE_FOR_divdf3 = 283,
  CODE_FOR_divsf3 = 284,
  CODE_FOR_negsf2 = 289,
  CODE_FOR_abssf2 = 295,
  CODE_FOR_sqrtdf2 = 297,
  CODE_FOR_sqrtsf2 = 298,
  CODE_FOR_ashlsi3 = 299,
  CODE_FOR_ashldi3_v8plus = 303,
  CODE_FOR_ashrsi3 = 307,
  CODE_FOR_ashrdi3_v8plus = 311,
  CODE_FOR_lshrsi3 = 312,
  CODE_FOR_lshrdi3_v8plus = 316,
  CODE_FOR_jump = 321,
  CODE_FOR_blockage = 340,
  CODE_FOR_update_return = 341,
  CODE_FOR_return = 342,
  CODE_FOR_nop = 343,
  CODE_FOR_flush_register_windows = 346,
  CODE_FOR_goto_handler_and_restore = 347,
  CODE_FOR_do_builtin_setjmp_setup = 348,
  CODE_FOR_flush = 349,
  CODE_FOR_flushdi = 350,
  CODE_FOR_ffssi2 = 351,
  CODE_FOR_trap = 363,
  CODE_FOR_cmpsi = 366,
  CODE_FOR_cmpdi = 367,
  CODE_FOR_cmpsf = 368,
  CODE_FOR_cmpdf = 369,
  CODE_FOR_cmptf = 370,
  CODE_FOR_seqsi_special = 371,
  CODE_FOR_seqdi_special = 372,
  CODE_FOR_snesi_special = 373,
  CODE_FOR_snedi_special = 374,
  CODE_FOR_seqdi_special_trunc = 375,
  CODE_FOR_snedi_special_trunc = 376,
  CODE_FOR_seqsi_special_extend = 377,
  CODE_FOR_snesi_special_extend = 378,
  CODE_FOR_seq = 379,
  CODE_FOR_sne = 380,
  CODE_FOR_sgt = 381,
  CODE_FOR_slt = 382,
  CODE_FOR_sge = 383,
  CODE_FOR_sle = 384,
  CODE_FOR_sgtu = 385,
  CODE_FOR_sltu = 386,
  CODE_FOR_sgeu = 387,
  CODE_FOR_sleu = 388,
  CODE_FOR_beq = 406,
  CODE_FOR_bne = 407,
  CODE_FOR_bgt = 408,
  CODE_FOR_bgtu = 409,
  CODE_FOR_blt = 410,
  CODE_FOR_bltu = 411,
  CODE_FOR_bge = 412,
  CODE_FOR_bgeu = 413,
  CODE_FOR_ble = 414,
  CODE_FOR_bleu = 415,
  CODE_FOR_bunordered = 416,
  CODE_FOR_bordered = 417,
  CODE_FOR_bungt = 418,
  CODE_FOR_bunlt = 419,
  CODE_FOR_buneq = 420,
  CODE_FOR_bunge = 421,
  CODE_FOR_bunle = 422,
  CODE_FOR_bltgt = 423,
  CODE_FOR_movqi = 424,
  CODE_FOR_movhi = 425,
  CODE_FOR_movsi = 426,
  CODE_FOR_movsi_pic_label_ref = 427,
  CODE_FOR_movdi = 428,
  CODE_FOR_movdi_pic_label_ref = 429,
  CODE_FOR_reload_indi = 430,
  CODE_FOR_reload_outdi = 431,
  CODE_FOR_movsf = 438,
  CODE_FOR_movdf = 439,
  CODE_FOR_movtf = 446,
  CODE_FOR_movqicc = 451,
  CODE_FOR_movhicc = 452,
  CODE_FOR_movsicc = 453,
  CODE_FOR_movdicc = 454,
  CODE_FOR_movsfcc = 455,
  CODE_FOR_movdfcc = 456,
  CODE_FOR_movtfcc = 457,
  CODE_FOR_zero_extendhisi2 = 460,
  CODE_FOR_zero_extendqihi2 = 461,
  CODE_FOR_zero_extendqisi2 = 462,
  CODE_FOR_zero_extendqidi2 = 463,
  CODE_FOR_zero_extendhidi2 = 464,
  CODE_FOR_zero_extendsidi2 = 465,
  CODE_FOR_extendhisi2 = 467,
  CODE_FOR_extendqihi2 = 468,
  CODE_FOR_extendqisi2 = 469,
  CODE_FOR_extendqidi2 = 470,
  CODE_FOR_extendhidi2 = 471,
  CODE_FOR_extendsidi2 = 472,
  CODE_FOR_extendsftf2 = 473,
  CODE_FOR_extenddftf2 = 474,
  CODE_FOR_trunctfsf2 = 475,
  CODE_FOR_trunctfdf2 = 476,
  CODE_FOR_floatsitf2 = 477,
  CODE_FOR_floatunssitf2 = 478,
  CODE_FOR_floatditf2 = 479,
  CODE_FOR_floatunsditf2 = 480,
  CODE_FOR_fix_trunctfsi2 = 481,
  CODE_FOR_fixuns_trunctfsi2 = 482,
  CODE_FOR_fix_trunctfdi2 = 483,
  CODE_FOR_fixuns_trunctfdi2 = 484,
  CODE_FOR_adddi3 = 485,
  CODE_FOR_addsi3 = 491,
  CODE_FOR_subdi3 = 492,
  CODE_FOR_subsi3 = 496,
  CODE_FOR_muldi3 = 497,
  CODE_FOR_mulsidi3 = 498,
  CODE_FOR_smulsi3_highpart = 499,
  CODE_FOR_umulsidi3 = 500,
  CODE_FOR_umulsi3_highpart = 501,
  CODE_FOR_divsi3 = 502,
  CODE_FOR_udivsi3 = 503,
  CODE_FOR_anddi3 = 504,
  CODE_FOR_iordi3 = 508,
  CODE_FOR_xordi3 = 511,
  CODE_FOR_negdi2 = 515,
  CODE_FOR_one_cmpldi2 = 517,
  CODE_FOR_addtf3 = 519,
  CODE_FOR_subtf3 = 520,
  CODE_FOR_multf3 = 521,
  CODE_FOR_divtf3 = 522,
  CODE_FOR_negtf2 = 523,
  CODE_FOR_negdf2 = 526,
  CODE_FOR_abstf2 = 528,
  CODE_FOR_absdf2 = 531,
  CODE_FOR_sqrttf2 = 533,
  CODE_FOR_ashldi3 = 534,
  CODE_FOR_ashrdi3 = 535,
  CODE_FOR_lshrdi3 = 536,
  CODE_FOR_tablejump = 537,
  CODE_FOR_call = 538,
  CODE_FOR_call_value = 539,
  CODE_FOR_untyped_call = 540,
  CODE_FOR_sibcall = 541,
  CODE_FOR_sibcall_value = 542,
  CODE_FOR_sibcall_epilogue = 543,
  CODE_FOR_untyped_return = 544,
  CODE_FOR_indirect_jump = 546,
  CODE_FOR_nonlocal_goto = 547,
  CODE_FOR_builtin_setjmp_setup = 548,
  CODE_FOR_setjmp = 549,
  CODE_FOR_setjmp_32 = 550,
  CODE_FOR_setjmp_64 = 551,
  CODE_FOR_prologue = 568,
  CODE_FOR_exception_receiver = 569,
  CODE_FOR_builtin_setjmp_receiver = 570,
  CODE_FOR_conditional_trap = 571,
  CODE_FOR_nothing = 572 };
# 5 "tm.h" 2





# 1 "/croc/mrg/gcc/egcs/gcc/config/sparc/sp64-elf.h" 1
# 28 "/croc/mrg/gcc/egcs/gcc/config/sparc/sp64-elf.h"
# 1 "/croc/mrg/gcc/egcs/gcc/config/sparc/sol2.h" 1
# 24 "/croc/mrg/gcc/egcs/gcc/config/sparc/sol2.h"
# 1 "/croc/mrg/gcc/egcs/gcc/config/sparc/sysv4.h" 1
# 22 "/croc/mrg/gcc/egcs/gcc/config/sparc/sysv4.h"
# 1 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h" 1
# 82 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h"
enum cmodel {
  CM_32,
  CM_MEDLOW,
  CM_MEDMID,
  CM_MEDANY,
  CM_EMBMEDANY
};


extern const char *sparc_cmodel_string;

extern enum cmodel sparc_cmodel;
# 432 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h"
extern int target_flags;
# 666 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h"
enum processor_type {
  PROCESSOR_V7,
  PROCESSOR_CYPRESS,
  PROCESSOR_V8,
  PROCESSOR_SUPERSPARC,
  PROCESSOR_SPARCLITE,
  PROCESSOR_F930,
  PROCESSOR_F934,
  PROCESSOR_HYPERSPARC,
  PROCESSOR_SPARCLITE86X,
  PROCESSOR_SPARCLET,
  PROCESSOR_TSC701,
  PROCESSOR_V9,
  PROCESSOR_ULTRASPARC
};


extern enum processor_type sparc_cpu;
# 721 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h"
struct sparc_cpu_select
{
  const char *string;
  const char *name;
  int set_tune_p;
  int set_arch_p;
};

extern struct sparc_cpu_select sparc_select[];
# 1168 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h"
extern int *hard_regno_mode_classes;
extern int sparc_mode_class[];
# 1348 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h"
enum reg_class { NO_REGS, FPCC_REGS, I64_REGS, GENERAL_REGS, FP_REGS,
                 EXTRA_FP_REGS, GENERAL_OR_FP_REGS, GENERAL_OR_EXTRA_FP_REGS,
                 ALL_REGS, LIM_REG_CLASSES };
# 1375 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h"
extern enum reg_class sparc_regno_reg_class[];
# 1425 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h"
extern char sparc_leaf_regs[];


extern char leaf_reg_remap[];
# 1777 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h"
struct sparc_args {
  int words;
  int prototype_p;
  int libcall_p;
};
# 1866 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h"
extern struct rtx_def *sparc_compare_op0, *sparc_compare_op1;
# 1902 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h"
extern char sparc_hard_reg_printed[8];
# 3409 "/croc/mrg/gcc/egcs/gcc/config/sparc/sparc.h"
extern int flag_pic;
# 23 "/croc/mrg/gcc/egcs/gcc/config/sparc/sysv4.h" 2
# 34 "/croc/mrg/gcc/egcs/gcc/config/sparc/sysv4.h"
# 1 "/croc/mrg/gcc/egcs/gcc/config/svr4.h" 1
# 46 "/croc/mrg/gcc/egcs/gcc/config/svr4.h"
# 1 "/croc/mrg/gcc/egcs/gcc/config/elfos.h" 1
# 78 "/croc/mrg/gcc/egcs/gcc/config/elfos.h"
# 1 "/croc/mrg/gcc/egcs/gcc/config/dbxelf.h" 1
# 79 "/croc/mrg/gcc/egcs/gcc/config/elfos.h" 2
# 47 "/croc/mrg/gcc/egcs/gcc/config/svr4.h" 2
# 35 "/croc/mrg/gcc/egcs/gcc/config/sparc/sysv4.h" 2
# 25 "/croc/mrg/gcc/egcs/gcc/config/sparc/sol2.h" 2
# 29 "/croc/mrg/gcc/egcs/gcc/config/sparc/sp64-elf.h" 2
# 11 "tm.h" 2
# 41 "/croc/mrg/gcc/egcs/gcc/config/sparc/xm-sparc.h" 2
# 7 "tconfig.h" 2
# 37 "/croc/mrg/gcc/egcs/gcc/libgcc2.c" 2
# 1 "/croc/mrg/gcc/egcs/gcc/tsystem.h" 1
# 26 "/croc/mrg/gcc/egcs/gcc/tsystem.h"
# 1 "/orb/j/mrg/build/sparc64-elf/gcc/include/stddef.h" 1 3
# 147 "/orb/j/mrg/build/sparc64-elf/gcc/include/stddef.h" 3
typedef long int ptrdiff_t;
# 199 "/orb/j/mrg/build/sparc64-elf/gcc/include/stddef.h" 3
typedef long unsigned int size_t;
# 287 "/orb/j/mrg/build/sparc64-elf/gcc/include/stddef.h" 3
typedef short unsigned int wchar_t;
# 27 "/croc/mrg/gcc/egcs/gcc/tsystem.h" 2




extern void *malloc (size_t);



extern void free (void *);



extern int atexit (void (*)(void));
# 38 "/croc/mrg/gcc/egcs/gcc/libgcc2.c" 2

# 1 "/croc/mrg/gcc/egcs/gcc/machmode.h" 1
# 29 "/croc/mrg/gcc/egcs/gcc/machmode.h"
enum machine_mode {
# 1 "/croc/mrg/gcc/egcs/gcc/machmode.def" 1
# 67 "/croc/mrg/gcc/egcs/gcc/machmode.def"
VOIDmode,

BImode,
QImode,
HImode,
SImode,
DImode,
TImode,
OImode,




PQImode,
PHImode,
PSImode,
PDImode,

QFmode,
HFmode,
TQFmode,
SFmode,
DFmode,
XFmode,
TFmode,


QCmode,
HCmode,
SCmode,
DCmode,
XCmode,
TCmode,

CQImode,
CHImode,
CSImode,
CDImode,
CTImode,
COImode,




V2QImode,
V2HImode,
V2SImode,
V2DImode,

V4QImode,
V4HImode,
V4SImode,
V4DImode,

V8QImode,
V8HImode,
V8SImode,
V8DImode,

V16QImode,

V2SFmode,
V2DFmode,

V4SFmode,
V4DFmode,

V8SFmode,
V8DFmode,



BLKmode,
# 148 "/croc/mrg/gcc/egcs/gcc/machmode.def"
CCmode,


CCXmode, CC_NOOVmode, CCX_NOOVmode, CCFPmode, CCFPEmode,
# 31 "/croc/mrg/gcc/egcs/gcc/machmode.h" 2
MAX_MACHINE_MODE };
# 41 "/croc/mrg/gcc/egcs/gcc/machmode.h"
extern const char * const mode_name[];


enum mode_class { MODE_RANDOM, MODE_INT, MODE_FLOAT, MODE_PARTIAL_INT, MODE_CC,
                  MODE_COMPLEX_INT, MODE_COMPLEX_FLOAT,
                  MODE_VECTOR_INT, MODE_VECTOR_FLOAT,
                  MAX_MODE_CLASS};




extern const enum mode_class mode_class[];
# 80 "/croc/mrg/gcc/egcs/gcc/machmode.h"
extern const unsigned int mode_size[];




extern const unsigned int mode_unit_size[];
# 96 "/croc/mrg/gcc/egcs/gcc/machmode.h"
extern const unsigned int mode_bitsize[];
# 112 "/croc/mrg/gcc/egcs/gcc/machmode.h"
extern const unsigned char mode_wider_mode[];






extern enum machine_mode mode_for_size (unsigned int, enum mode_class, int)
                                                                      ;



extern enum machine_mode smallest_mode_for_size
                                (unsigned int, enum mode_class);





extern enum machine_mode int_mode_for_mode (enum machine_mode);



extern enum machine_mode get_best_mode (int, int, unsigned int, enum machine_mode, int)
                                                                        ;



extern unsigned get_mode_alignment (enum machine_mode);





extern const enum machine_mode class_narrowest_mode[];





extern enum machine_mode byte_mode;
extern enum machine_mode word_mode;
extern enum machine_mode ptr_mode;
# 40 "/croc/mrg/gcc/egcs/gcc/libgcc2.c" 2
# 1 "/croc/mrg/gcc/egcs/gcc/defaults.h" 1
# 41 "/croc/mrg/gcc/egcs/gcc/libgcc2.c" 2






# 1 "/croc/mrg/gcc/egcs/gcc/libgcc2.h" 1
# 25 "/croc/mrg/gcc/egcs/gcc/libgcc2.h"
extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
extern void *__builtin_saveregs (void);
extern void __dummy (void);
extern void __clear_cache (char *, char *);
extern void __pure_virtual (void) __attribute__ ((__noreturn__));
extern void __terminate (void) __attribute__ ((__noreturn__));
extern void __default_terminate (void) __attribute__ ((__noreturn__));
extern void *__throw_type_match (void *, void *, void *);
extern void __empty (void);
extern void *__get_eh_context (void);
extern void **__get_eh_info (void);
extern void ***__get_dynamic_handler_chain (void);
extern int __eh_rtime_match (void *);
extern void __unwinding_cleanup (void);
extern void __rethrow (void *);
extern void __throw (void);
extern void __sjthrow (void) __attribute__ ((__noreturn__));
extern void __sjpopnthrow (void) __attribute__ ((__noreturn__));
extern void __eprintf (const char *, const char *, unsigned int, const char *)
  __attribute__ ((__noreturn__));
extern void *__eh_alloc (size_t);
extern void __eh_free (void *);

struct bb;
extern void __bb_exit_func (void);
extern void __bb_init_func (struct bb *);
extern void __bb_fork_func (void);
extern void __bb_trace_func (void);
extern void __bb_trace_ret (void);
extern void __bb_init_trace_func (struct bb *, unsigned long);

struct exception_descriptor;
extern short int __get_eh_table_language (struct exception_descriptor *);
extern short int __get_eh_table_version (struct exception_descriptor *);
# 85 "/croc/mrg/gcc/egcs/gcc/libgcc2.h"
typedef int QItype __attribute__ ((mode (QI)));
typedef unsigned int UQItype __attribute__ ((mode (QI)));
typedef int HItype __attribute__ ((mode (HI)));
typedef unsigned int UHItype __attribute__ ((mode (HI)));


typedef int SItype __attribute__ ((mode (SI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));


typedef int DItype __attribute__ ((mode (DI)));
typedef unsigned int UDItype __attribute__ ((mode (DI)));


typedef int TItype __attribute__ ((mode (TI)));
typedef unsigned int UTItype __attribute__ ((mode (TI)));






typedef float SFtype __attribute__ ((mode (SF)));
typedef float DFtype __attribute__ ((mode (DF)));





typedef float TFtype __attribute__ ((mode (TF)));
# 140 "/croc/mrg/gcc/egcs/gcc/libgcc2.h"
typedef int word_type __attribute__ ((mode (__word__)));
# 228 "/croc/mrg/gcc/egcs/gcc/libgcc2.h"
extern TItype __multi3 (TItype, TItype);
extern TItype __divti3 (TItype, TItype);
extern UTItype __udivti3 (UTItype, UTItype);
extern UTItype __umodti3 (UTItype, UTItype);
extern TItype __modti3 (TItype, TItype);




extern UTItype __udivmodti4 (UTItype, UTItype, UTItype *);




extern TItype __negti2 (TItype);


extern TItype __lshrti3 (TItype, word_type);
extern TItype __ashlti3 (TItype, word_type);
extern TItype __ashrti3 (TItype, word_type);
extern TItype __ffsti2 (TItype);




extern UDItype __udiv_w_sdiv (UDItype *, UDItype, UDItype, UDItype);


extern word_type __cmpti2 (TItype, TItype);
extern word_type __ucmpti2 (TItype, TItype);

extern SItype __absvsi2 (SItype);
extern DItype __absvdi2 (DItype);
extern SItype __addvsi3 (SItype, SItype);
extern DItype __addvdi3 (DItype, DItype);
extern SItype __subvsi3 (SItype, SItype);
extern DItype __subvdi3 (DItype, DItype);
extern SItype __mulvsi3 (SItype, SItype);
extern DItype __mulvdi3 (DItype, DItype);
extern SItype __negvsi2 (SItype);
extern DItype __negvdi2 (DItype);


extern TItype __fixdfti (DFtype);
extern TItype __fixsfti (SFtype);
extern DFtype __floattidf (TItype);
extern SFtype __floattisf (TItype);
extern UDItype __fixunsdfdi (DFtype);
extern UDItype __fixunssfdi (SFtype);
extern TItype __fixunsdfti (DFtype);
extern TItype __fixunssfti (SFtype);
# 288 "/croc/mrg/gcc/egcs/gcc/libgcc2.h"
extern TItype __fixunstfti (TFtype);
extern TItype __fixtfti (TFtype);
extern TFtype __floattitf (TItype);







  struct DWstruct {DItype high, low;};
# 307 "/croc/mrg/gcc/egcs/gcc/libgcc2.h"
typedef union
{
  struct DWstruct s;
  TItype ll;
} DWunion;

# 1 "/croc/mrg/gcc/egcs/gcc/longlong.h" 1
# 1450 "/croc/mrg/gcc/egcs/gcc/longlong.h"
extern const UQItype __clz_tab[];
# 314 "/croc/mrg/gcc/egcs/gcc/libgcc2.h" 2
# 48 "/croc/mrg/gcc/egcs/gcc/libgcc2.c" 2
# 924 "/croc/mrg/gcc/egcs/gcc/libgcc2.c"
TItype
__fixunsdfti (DFtype a)
{
  DFtype b;
  UTItype v;

  if (a < 0)
    return 0;


  b = (a / (((UTItype) 1) << (sizeof (DItype) * 8)));


  v = (UDItype) b;
  v <<= (sizeof (DItype) * 8);

  a -= (DFtype)v;



  if (a < 0)
    v -= (UDItype) (- a);
  else
    v += (UDItype) a;
  return v;
}

>Fix:

	a quick workaround for this issue:
		LIBGCC2_DEBUG_CFLAGS='-g1 -msoft-quad-float' avoids the ICE.
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the Gcc-bugs mailing list