🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Randy Smith Thu, 12 Dec 1996 00:00
Bug in gcc 2.7.1 cross compiler (alpha-->386)
#6061
Author: Randy Smith
Date: Thu, 12 Dec 1996 00:00
559 lines
20237 bytes

    There is a bug in gcc 2.7.1, found during compilation of gcc
  building on the alpha, hosted on the alpha, targetted at the i386
  (but this may not reproduce the bug; see my analysis below).  It
  occurs during the compilation of libgcc2.a and produces the
  following output:

..  
  ./xgcc -B./ -O2 -I../../dir-include/include -DCROSS_COMPILE -DIN_GCC   -g -I./include -pic-none  -g1 -D__GCC_FLOAT_NOT_NEEDED -I. -I../../../src/gcc_2_7_1 -I../../../src/gcc_2_7_1/config -c -DL${name} \
      ../../../src/gcc_2_7_1/libgcc2.c -o ${name}.o; \
  if [ $? -eq 0 ] ; then true; else exit 1; fi; \
  /afs/ri/project/fsf/install/alpha-i386/elf/i386-osfrose/bin/ar rc tmplibgcc2.a ${name}.o; \
  rm -f ${name}.o; \
done
_muldi3
_divdi3
_moddi3
_udivdi3
_umoddi3
_negdi2
_lshrdi3
_ashldi3
_ashrdi3
_ffsdi2
_udiv_w_sdiv
_udivmoddi4
_cmpdi2
_ucmpdi2
_floatdidf
_floatdisf
_fixunsdfsi
_fixunssfsi
_fixunsdfdi
xgcc: Internal compiler error: program cc1 got fatal signal 11
make: *** [libgcc2.a] Error 1

    The following call to cc1 fails (I'll include the .i file at the
  end of this message, though as I say, it may not reproduce the bug):

 ./cc1 /tmp/ccaamBaa.i -melf -mno-underscores -mmcount-ptr -quiet -dumpbase libgcc2.c -g -g1 -O2 -version -o /tmp/ccaamBaa.s
GNU C version 2.7.1 80386, ELF objects compiled by GNU C version 2.7.1.
xgcc: Internal compiler error: program cc1 got fatal signal 11
make: *** [libgcc2.a] Error 1

  Tracking the problem through cc1, I found that it occured upon the
  return from output_constant_pool; the jumping to the return address
  resulted in a jump to never-never land, and a segmentation fault.
  That was because the return address had been overwritten on the
  stack, which occurred on line 494 of real.c in function "endian"
  with the following backtrace:

#0  endian () at ../../../src/gcc_2_7_1/real.c:493
#1  0x12010ff28 in etartdouble () at ../../../src/gcc_2_7_1/real.c:1019
#2  0x1200f5ae4 in assemble_real () at ../../../src/gcc_2_7_1/varasm.c:1826
#3  0x1200fab2c in output_constant_pool ()
    at ../../../src/gcc_2_7_1/varasm.c:3392
#4  0x1200f20d8 in assemble_start_function ()
    at ../../../src/gcc_2_7_1/varasm.c:770
#5  0x1200675b8 in rest_of_compilation ()
    at ../../../src/gcc_2_7_1/toplev.c:3223
#6  0x120043eb0 in finish_function () at ../../../src/gcc_2_7_1/c-decl.c:6791
#7  0x120026938 in yyparse () at /usr/local/gnu/share/bison.simple:311
#8  0x120063dec in compile_file () at ../../../src/gcc_2_7_1/toplev.c:2227
#9  0x120069524 in main () at ../../../src/gcc_2_7_1/toplev.c:3913

  That line is:

	  x[3] = (long) t;

  "x" is a variable sized long array passed into endian from
  etartdouble, which is called from assemble_real through the
  following set of macros:

ASM_OUTPUT_LONG_DOUBLE			(defined in i386.h:1632)
 REAL_VALUE_TO_TARGET_LONG_DOUBLE	(defined in real.h:193) 

  It is defined in ASM_OUTPUT_LONG_DOUBLE:

#define ASM_OUTPUT_LONG_DOUBLE(FILE,VALUE)  		\
do { long l[3];						\
     REAL_VALUE_TO_TARGET_LONG_DOUBLE (VALUE, l);	\
     if (sizeof (int) == sizeof (long))			\
       fprintf (FILE, "%s 0x%x,0x%x,0x%x\n", ASM_LONG, l[0], l[1], l[2]); \
     else						\
       fprintf (FILE, "%s 0x%lx,0x%lx,0x%lx\n", ASM_LONG, l[0], l[1], l[2]); \
   } while (0)

  Note that the array is only of size 3, so assigning into it at index
  3 is an error.  The definition of REAL_VALUE_TO_TARGET_LONG_DOUBLE
  is:

#if LONG_DOUBLE_TYPE_SIZE == 96
#define REAL_VALUE_TO_TARGET_LONG_DOUBLE(IN, OUT) (etarldouble ((IN), (OUT)))
#else
#define REAL_VALUE_TO_TARGET_LONG_DOUBLE(IN, OUT) (etartdouble ((IN), (OUT)))
#endif

  The definition of LONG_DOUBLE_TYPE_SIZE is 64 (in osfrose.h).  This
  overrides the original definition of 96, in i386.h.  So I conjecture
  that this value was overridden in osfrose.h without awareness that
  that required a modification to the array size in the
  ASM_OUTPUT_LONG_DOUBLE definition in i386.h

    What kind of error this memory overwrite causes is obviously very
  dependent on data layout on the stack, which is very dependent on
  what compiler you use to compile gcc with, the phase of the moon,
  etc.  Hence I do not know if the segmentation fault is
  reproducible.  Nonetheless, the above strikes me as a bug by
  inspection; I suggest (but am not sure, since I don't really
  understand the intricacies of the i386 config) that the solution is
  increasing the size of the array defined in ASM_OUTPUT_LONG_DOUBLE
  to 4.  

						-- Randy

 
    P.S.  Here's the preprocessor output, with blank lines removed:

-----------------  
# 1 "../../../src/gcc_2_7_1/libgcc2.c"
# 1 "tconfig.h" 1
# 1 "../../../src/gcc_2_7_1/config/i386/xm-osf.h" 1
# 1 "../../../src/gcc_2_7_1/config/i386/xm-i386.h" 1
# 1 "tm.h" 1
# 1 "../../../src/gcc_2_7_1/config/i386/osfelf.h" 1
# 1 "../../../src/gcc_2_7_1/config/i386/osfrose.h" 1
# 1 "../../../src/gcc_2_7_1/halfpic.h" 1
# 1 "../../dir-include/include/stdio.h" 1
# 1 "../../dir-include/include/standards.h" 1
# 87 "../../dir-include/include/stdio.h" 2
typedef unsigned long	size_t;
typedef long	fpos_t;
# 1 "../../dir-include/include/sys/seek.h" 1
# 149 "../../dir-include/include/stdio.h" 2
typedef struct {
	int	_cnt;
	unsigned char	*_ptr;
	unsigned char	*_base;
	int	_bufsiz;
	short	_flag;
	short	_file;
	void	*_unused;
	void	*_lock;			 
	char	*__newbase;
	unsigned char	*_bufendp;
} FILE;
extern FILE	__iob[];
extern size_t	fread  (void *, size_t, size_t, FILE *)  ;
extern size_t	fwrite  (const void *, size_t, size_t, FILE *)  ;
extern int	__flsbuf  (int, FILE *)  ;
extern int	__filbuf  (FILE *)  ;
extern int 	ferror  (FILE *)  ;
extern int 	feof  (FILE *)  ;
extern void 	clearerr  (FILE *)  ;
extern int 	putchar  (int)  ;
extern int 	getchar  (void)  ;
extern int 	putc  (int, FILE *)  ;
extern int 	getc  (FILE *)  ;
extern int	remove  (const char *)  ;
extern int	rename  (const char *, const char *)  ;
extern FILE 	*tmpfile  (void)  ;
extern char 	*tmpnam  (char *)  ;
extern int 	fclose  (FILE *)  ;
extern int 	fflush  (FILE *)  ;
extern FILE	*fopen  (const char *, const char *)  ;
extern FILE 	*freopen  (const char *, const char *, FILE *)  ;
extern void 	setbuf  (FILE *, char *)  ;
extern int 	setvbuf  (FILE *, char *, int, size_t)  ;
extern int	fprintf  (FILE *, const char *, ...)  ;
extern int	fscanf  (FILE *, const char *, ...)  ;
extern int	printf  (const char *, ...)  ;
extern int	scanf  (const char *, ...)  ;
extern int	sprintf  (char *, const char *, ...)  ;
extern int	sscanf  (const char *, const char *, ...)  ;
# 1 "../../dir-include/include/va_list.h" 1
typedef	char *va_list;
# 59 "../../dir-include/include/va_list.h"
# 222 "../../dir-include/include/stdio.h" 2
extern int  vfprintf  (FILE *, const char *, va_list)  ;
extern int  vprintf  (const char *, va_list)  ;
extern int  vsprintf  (char *, const char *, va_list)  ;
# 238 "../../dir-include/include/stdio.h"
extern int 	fgetc  (FILE *)  ;
extern char 	*fgets  (char *, int, FILE *)  ;
extern int 	fputc  (int, FILE *)  ;
extern int 	fputs  (const char *, FILE *)  ;
extern char 	*gets  (char *)  ;
extern int 	puts  (const char *)  ;
extern int	ungetc  (int, FILE *)  ;
extern int	fgetpos  (FILE *, fpos_t *)  ;
extern int 	fseek  (FILE *, long, int)  ;
extern int	fsetpos  (FILE *, const fpos_t *)  ;
extern long	ftell  (FILE *)  ;
extern void	rewind  (FILE *)  ;
extern void 	perror  (const char *)  ;
# 265 "../../dir-include/include/stdio.h"
# 325 "../../dir-include/include/stdio.h"
extern int 	fileno  (FILE *)  ;
extern FILE 	*fdopen  (int, const char *)  ;
extern char	*ctermid  (char *)  ;
extern char	*cuserid  (char *)  ;
extern char	*ctermid  (char *)  ;
extern int 	getw  (FILE *)  ;
extern int 	pclose  (FILE *)  ;
extern int 	putw  (int, FILE*)  ;
extern FILE 	*popen  (const char *, const char *)  ;
extern char 	*tempnam  (const char*, const char*)  ;
extern int getopt  (int, char * const [], const char *)  ;
extern char *optarg;
extern int optind;
extern int optopt;
extern int opterr;
extern void 	setbuffer  (FILE *, char*, int)  ;
extern void 	setlinebuf  (FILE *)  ;
# 34 "../../../src/gcc_2_7_1/halfpic.h" 2
union tree_node;		 
struct rtx_def;
int flag_half_pic;			 
int (*ptr_half_pic_address_p) ();	 
extern int  half_pic_number_ptrs;				 
extern int  half_pic_number_refs;				 
extern void half_pic_encode  (union tree_node *)  ;		 
extern void half_pic_declare  (char *)  ;			 
extern void half_pic_external  (char *)  ;			 
extern void half_pic_init  (void)  ;			 
extern int  half_pic_address_p  (struct rtx_def *)  ;	 
extern struct rtx_def *half_pic_ptr  (struct rtx_def *)  ;	 
extern void half_pic_finish   (FILE *)    ;		 
# 22 "../../../src/gcc_2_7_1/config/i386/osfrose.h" 2
# 1 "../../../src/gcc_2_7_1/config/i386/gstabs.h" 1
# 1 "../../../src/gcc_2_7_1/config/i386/gas.h" 1
# 1 "../../../src/gcc_2_7_1/config/i386/i386.h" 1
# 54 "../../../src/gcc_2_7_1/config/i386/i386.h"
extern int target_flags;
# 167 "../../../src/gcc_2_7_1/config/i386/i386.h"


# 388 "../../../src/gcc_2_7_1/config/i386/i386.h"

enum reg_class
{
  NO_REGS,
  AREG, DREG, CREG, BREG,
  AD_REGS,			 
  Q_REGS,			 
  SIREG, DIREG,
  INDEX_REGS,			 
  GENERAL_REGS,			 
  FP_TOP_REG, FP_SECOND_REG,	 
  FLOAT_REGS,
  ALL_REGS, LIM_REG_CLASSES
};
# 559 "../../../src/gcc_2_7_1/config/i386/i386.h"
# 575 "../../../src/gcc_2_7_1/config/i386/i386.h"
# 641 "../../../src/gcc_2_7_1/config/i386/i386.h"

typedef struct i386_args {
  int words;			 
  int nregs;			 
  int regno;			 
} CUMULATIVE_ARGS;
# 889 "../../../src/gcc_2_7_1/config/i386/i386.h"
# 949 "../../../src/gcc_2_7_1/config/i386/i386.h"
# 985 "../../../src/gcc_2_7_1/config/i386/i386.h"
# 1038 "../../../src/gcc_2_7_1/config/i386/i386.h"

# 1107 "../../../src/gcc_2_7_1/config/i386/i386.h"


# 1288 "../../../src/gcc_2_7_1/config/i386/i386.h"


# 1447 "../../../src/gcc_2_7_1/config/i386/i386.h"
# 1470 "../../../src/gcc_2_7_1/config/i386/i386.h"

extern struct rtx_def *(*i386_compare_gen)(), *(*i386_compare_gen_eq)();

# 1611 "../../../src/gcc_2_7_1/config/i386/i386.h"

extern char *hi_reg_name[];
extern char *qi_reg_name[];
extern char *qi_high_reg_name[];
# 1799 "../../../src/gcc_2_7_1/config/i386/i386.h"
# 1833 "../../../src/gcc_2_7_1/config/i386/i386.h"


extern void override_options ();
extern void order_regs_for_local_alloc ();
extern int i386_valid_decl_attribute_p ();
extern int i386_valid_type_attribute_p ();
extern int i386_return_pops_args ();
extern int i386_comp_type_attributes ();
extern void init_cumulative_args ();
extern void function_arg_advance ();
extern struct rtx_def *function_arg ();
extern int function_arg_partial_nregs ();
extern void output_op_from_reg ();
extern void output_to_reg ();
extern char *singlemove_string ();
extern char *output_move_double ();
extern char *output_move_memory ();
extern char *output_move_pushmem ();
extern int standard_80387_constant_p ();
extern char *output_move_const_single ();
extern int symbolic_operand ();
extern int call_insn_operand ();
extern int expander_call_insn_operand ();
extern int symbolic_reference_mentioned_p ();
extern void emit_pic_move ();
extern void function_prologue ();
extern int simple_386_epilogue ();
extern void function_epilogue ();
extern int legitimate_address_p ();
extern struct rtx_def *legitimize_pic_address ();
extern struct rtx_def *legitimize_address ();
extern void print_operand ();
extern void print_operand_address ();
extern void notice_update_cc ();
extern void split_di ();
extern int binary_387_op ();
extern int shift_op ();
extern int VOIDmode_compare_op ();
extern char *output_387_binary_op ();
extern char *output_fix_trunc ();
extern char *output_float_compare ();
extern char *output_fp_cc0_set ();
extern void save_386_machine_status ();
extern void restore_386_machine_status ();
extern void clear_386_stack_locals ();
extern struct rtx_def *assign_386_stack_local ();
extern char *i386_reg_alloc_order;		 
extern char *i386_regparm_string;		 
extern char *i386_align_loops_string;		 
extern char *i386_align_jumps_string;		 
extern char *i386_align_funcs_string;		 
extern int i386_regparm;			 
extern int i386_align_loops;			 
extern int i386_align_jumps;			 
extern int i386_align_funcs;			 
extern char *hi_reg_name[];			 
extern char *qi_reg_name[];			 
extern char *qi_high_reg_name[];		 
extern enum reg_class regclass_map[];		 
extern struct rtx_def *i386_compare_op0;	 
extern struct rtx_def *i386_compare_op1;	 
extern int optimize;			 
extern int obey_regdecls;		 
extern struct rtx_def *force_operand ();

# 24 "../../../src/gcc_2_7_1/config/i386/gas.h" 2
# 1 "../../../src/gcc_2_7_1/config/i386/bsd.h" 1
# 1 "../../../src/gcc_2_7_1/config/i386/unix.h" 1

# 24 "../../../src/gcc_2_7_1/config/i386/bsd.h" 2



# 47 "../../../src/gcc_2_7_1/config/i386/gas.h" 2

# 122 "../../../src/gcc_2_7_1/config/i386/gas.h"
# 1 "../../../src/gcc_2_7_1/config/i386/gstabs.h" 2
# 23 "../../../src/gcc_2_7_1/config/i386/osfrose.h" 2
# 1 "../../../src/gcc_2_7_1/config/i386/perform.h" 1
# 40 "../../../src/gcc_2_7_1/config/i386/perform.h"
# 52 "../../../src/gcc_2_7_1/config/i386/perform.h"
# 63 "../../../src/gcc_2_7_1/config/i386/perform.h"
# 75 "../../../src/gcc_2_7_1/config/i386/perform.h"
# 98 "../../../src/gcc_2_7_1/config/i386/perform.h"
# 26 "../../../src/gcc_2_7_1/config/i386/osfrose.h" 2
# 51 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 87 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 117 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 130 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 147 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 265 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 346 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 405 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 494 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 536 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 564 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 586 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 613 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 673 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 694 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 714 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 745 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 858 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 911 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 923 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 941 "../../../src/gcc_2_7_1/config/i386/osfrose.h"
# 22 "../../../src/gcc_2_7_1/config/i386/osfelf.h" 2
# 40 "../../../src/gcc_2_7_1/config/i386/osfelf.h"
# 52 "../../../src/gcc_2_7_1/config/i386/osfelf.h"
# 69 "../../../src/gcc_2_7_1/config/i386/osfelf.h"
# 1 "tm.h" 2
# 43 "../../../src/gcc_2_7_1/config/i386/xm-i386.h" 2
# 24 "../../../src/gcc_2_7_1/config/i386/xm-osf.h" 2
# 1 "tconfig.h" 2
# 33 "../../../src/gcc_2_7_1/libgcc2.c" 2
# 1 "../../../src/gcc_2_7_1/machmode.h" 1
enum machine_mode {
# 1 "../../../src/gcc_2_7_1/machmode.def" 1
 VOIDmode , 
 QImode , 		 
 HImode , 
 PSImode , 
 SImode , 
 PDImode , 
 DImode , 
 TImode , 
 OImode , 
 QFmode , 
 HFmode , 
 TQFmode ,    
 SFmode , 
 DFmode , 
 XFmode ,     
 TFmode , 
 SCmode , 
 DCmode , 
 XCmode , 
 TCmode , 
 CQImode , 
 CHImode , 
 CSImode , 
 CDImode , 
 CTImode , 
 COImode , 
 BLKmode , 
 CCmode , 
# 71 "../../../src/gcc_2_7_1/machmode.h" 2
  CCFPEQmode ,
MAX_MACHINE_MODE };
extern char *mode_name[];
enum mode_class { MODE_RANDOM, MODE_INT, MODE_FLOAT, MODE_PARTIAL_INT, MODE_CC,
		  MODE_COMPLEX_INT, MODE_COMPLEX_FLOAT, MAX_MODE_CLASS};
extern enum mode_class mode_class[];
extern int mode_size[];
extern int mode_unit_size[];
extern enum machine_mode mode_wider_mode[];
extern enum machine_mode mode_for_size  (unsigned int, enum mode_class, int)  ;
extern enum machine_mode get_best_mode  (int, int, int, enum machine_mode, int)  ;
extern enum machine_mode class_narrowest_mode[];
extern enum machine_mode byte_mode;
extern enum machine_mode word_mode;
extern enum machine_mode ptr_mode;
# 34 "../../../src/gcc_2_7_1/libgcc2.c" 2
# 1 "../../../src/gcc_2_7_1/defaults.h" 1
# 42 "../../../src/gcc_2_7_1/defaults.h"
# 70 "../../../src/gcc_2_7_1/defaults.h"
# 111 "../../../src/gcc_2_7_1/defaults.h"
# 121 "../../../src/gcc_2_7_1/defaults.h"
# 133 "../../../src/gcc_2_7_1/defaults.h"
# 35 "../../../src/gcc_2_7_1/libgcc2.c" 2
# 1 "../../dir-include/include/stddef.h" 1
typedef int             ptrdiff_t;
    typedef unsigned int  wchar_t;
# 37 "../../../src/gcc_2_7_1/libgcc2.c" 2
typedef unsigned int UQItype	__attribute__ ((mode (QI)));
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 	float SFtype	__attribute__ ((mode (SF)));
typedef		float DFtype	__attribute__ ((mode (DF)));
typedef int word_type __attribute__ ((mode (__word__)));
  struct DIstruct {SItype low, high;};
typedef union
{
  struct DIstruct s;
  DItype ll;
} DIunion;
extern DItype __fixunssfdi (SFtype a);
extern DItype __fixunsdfdi (DFtype a);

# 154 "../../../src/gcc_2_7_1/libgcc2.c"

# 186 "../../../src/gcc_2_7_1/libgcc2.c"
# 218 "../../../src/gcc_2_7_1/libgcc2.c"
# 251 "../../../src/gcc_2_7_1/libgcc2.c"

# 272 "../../../src/gcc_2_7_1/libgcc2.c"

# 291 "../../../src/gcc_2_7_1/libgcc2.c"

# 399 "../../../src/gcc_2_7_1/libgcc2.c"

# 641 "../../../src/gcc_2_7_1/libgcc2.c"
# 670 "../../../src/gcc_2_7_1/libgcc2.c"
# 697 "../../../src/gcc_2_7_1/libgcc2.c"
# 711 "../../../src/gcc_2_7_1/libgcc2.c"
# 721 "../../../src/gcc_2_7_1/libgcc2.c"

# 742 "../../../src/gcc_2_7_1/libgcc2.c"
# 763 "../../../src/gcc_2_7_1/libgcc2.c"

# 796 "../../../src/gcc_2_7_1/libgcc2.c"
# 807 "../../../src/gcc_2_7_1/libgcc2.c"
# 840 "../../../src/gcc_2_7_1/libgcc2.c"
# 851 "../../../src/gcc_2_7_1/libgcc2.c"
DItype
__fixunsdfdi (a)
     DFtype a;
{
  DFtype b;
  UDItype v;
  if (a < 0)
    return 0;
  b = (a / (((UDItype) 1) << (sizeof (SItype) * 8 ) ) );
  v = (USItype) b;
  v <<= (sizeof (SItype) * 8 ) ;
  a -= (DFtype)v;
  if (a < 0)
    v -= (USItype) (- a);
  else
    v += (USItype) a;
  return v;
}
# 895 "../../../src/gcc_2_7_1/libgcc2.c"
# 931 "../../../src/gcc_2_7_1/libgcc2.c"
# 941 "../../../src/gcc_2_7_1/libgcc2.c"
# 965 "../../../src/gcc_2_7_1/libgcc2.c"
# 989 "../../../src/gcc_2_7_1/libgcc2.c"
# 1013 "../../../src/gcc_2_7_1/libgcc2.c"
# 1085 "../../../src/gcc_2_7_1/libgcc2.c"
# 1108 "../../../src/gcc_2_7_1/libgcc2.c"
# 1131 "../../../src/gcc_2_7_1/libgcc2.c"
# 1153 "../../../src/gcc_2_7_1/libgcc2.c"


# 1193 "../../../src/gcc_2_7_1/libgcc2.c"

# 1413 "../../../src/gcc_2_7_1/libgcc2.c"

# 1434 "../../../src/gcc_2_7_1/libgcc2.c"
# 1637 "../../../src/gcc_2_7_1/libgcc2.c"

# 1675 "../../../src/gcc_2_7_1/libgcc2.c"
# 1695 "../../../src/gcc_2_7_1/libgcc2.c"
# 1745 "../../../src/gcc_2_7_1/libgcc2.c"
# 1765 "../../../src/gcc_2_7_1/libgcc2.c"
# 1786 "../../../src/gcc_2_7_1/libgcc2.c"

# 1801 "../../../src/gcc_2_7_1/libgcc2.c"

# 1916 "../../../src/gcc_2_7_1/libgcc2.c"

# 2048 "../../../src/gcc_2_7_1/libgcc2.c"

# 2122 "../../../src/gcc_2_7_1/libgcc2.c"

# 2145 "../../../src/gcc_2_7_1/libgcc2.c"

# 2180 "../../../src/gcc_2_7_1/libgcc2.c"

# 2415 "../../../src/gcc_2_7_1/libgcc2.c"

# 2440 "../../../src/gcc_2_7_1/libgcc2.c"
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads