problems building ecgs-19980803 on i386-nextstep

Tilo Schwarz tilo.schwarz@dbag.ulm.daimlerbenz.com
Wed Aug 12 06:00:00 GMT 1998


Hi Jeff,

> [...]
> Can you dig into this further?  ie, debug it like you would any other
> hunk of code?  There's nothing particularly tricky happening here.  The
> code wants to walk down the array of tree_codes and do something on each
> node.
>
> What is the value of "i"?  What is "tree_nodes[i]"?
>
> jeff

I'll try...

How does gencheck.c look after the preprocessor (without lines  
containing only spaces):

~/Library/nobackup/egcs-19980803/objdir/gcc> stage1/xgcc -Bstage1/ -c   
-DIN_GCC    -O2 -g -O2  -DHAVE_CONFIG_H     -I. -I../../gcc  
-I../../gcc/config ../../gcc/gencheck.c -E | egrep  -v "^ *$"              

# 1 "../../gcc/gencheck.c"
# 1 "hconfig.h" 1
# 1 "auto-host.h" 1
# 1 "hconfig.h" 2
# 1 "../../gcc/config/i386/xm-next.h" 1
# 1 "../../gcc/config/i386/xm-i386.h" 1
# 1 "tm.h" 1
# 1 "../../gcc/config/i386/next.h" 1
# 1 "../../gcc/config/i386/gas.h" 1
# 1 "../../gcc/config/i386/i386.h" 1
struct processor_costs {
  int add;
  int lea;
  int shift_var;
  int shift_const;
  int mult_init;
  int mult_bit;
  int divide;
};
extern struct processor_costs *ix86_cost;
extern int target_flags;

# 214 "../../gcc/config/i386/i386.h"
enum processor_type
 {PROCESSOR_I386,
  PROCESSOR_I486,
  PROCESSOR_PENTIUM,
  PROCESSOR_PENTIUMPRO};
extern enum processor_type ix86_cpu;
extern int ix86_arch;
# 273 "../../gcc/config/i386/i386.h"
# 305 "../../gcc/config/i386/i386.h"




# 456 "../../gcc/config/i386/i386.h"
# 504 "../../gcc/config/i386/i386.h"


# 628 "../../gcc/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
};
# 791 "../../gcc/config/i386/i386.h"
# 807 "../../gcc/config/i386/i386.h"
# 873 "../../gcc/config/i386/i386.h"
# 895 "../../gcc/config/i386/i386.h"


typedef struct i386_args {
  int words;
  int nregs;
  int regno;
} CUMULATIVE_ARGS;
# 1139 "../../gcc/config/i386/i386.h"
# 1298 "../../gcc/config/i386/i386.h"
# 1425 "../../gcc/config/i386/i386.h"
# 1459 "../../gcc/config/i386/i386.h"
# 1527 "../../gcc/config/i386/i386.h"
# 1550 "../../gcc/config/i386/i386.h"


# 1620 "../../gcc/config/i386/i386.h"




# 1811 "../../gcc/config/i386/i386.h"






# 1972 "../../gcc/config/i386/i386.h"
# 2085 "../../gcc/config/i386/i386.h"
# 2309 "../../gcc/config/i386/i386.h"
# 2325 "../../gcc/config/i386/i386.h"


extern struct rtx_def *(*i386_compare_gen)(), *(*i386_compare_gen_eq)();


# 2455 "../../gcc/config/i386/i386.h"


extern char *hi_reg_name[];
extern char *qi_reg_name[];
extern char *qi_high_reg_name[];
# 2654 "../../gcc/config/i386/i386.h"
# 2688 "../../gcc/config/i386/i386.h"




extern void override_options ();
extern void order_regs_for_local_alloc ();
extern char *output_strlen_unroll ();
extern struct rtx_def *i386_sext16_if_const ();
extern int i386_aligned_p ();
extern int i386_cc_probably_useless_p ();
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 char *output_strlen_unroll ();
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 int ix86_expand_binary_operator ();
extern int ix86_binary_operator_ok ();
extern int ix86_expand_unary_operator ();
extern int ix86_unary_operator_ok ();
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 int is_mul ();
extern int is_div ();
extern int last_to_set_cc ();
extern int doesnt_set_condition_code ();
extern int sets_condition_code ();
extern int str_immediate_operand ();
extern int is_fp_insn ();
extern int is_fp_dest ();
extern int is_fp_store ();
extern int agi_dependent ();
extern int reg_mentioned_in_mem ();
extern char *output_int_conditional_move ();
extern char *output_fp_conditional_move ();
extern int ix86_can_use_return_insn_p ();
extern char *ix86_cpu_string;
extern char *ix86_arch_string;
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 char *i386_branch_cost_string;
extern int i386_regparm;
extern int i386_align_loops;
extern int i386_align_jumps;
extern int i386_align_funcs;
extern int i386_branch_cost;
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 "../../gcc/config/i386/gas.h" 2
# 1 "../../gcc/config/i386/bsd.h" 1
# 1 "../../gcc/config/i386/unix.h" 1


# 192 "../../gcc/config/i386/unix.h"
# 24 "../../gcc/config/i386/bsd.h" 2






# 47 "../../gcc/config/i386/gas.h" 2


# 128 "../../gcc/config/i386/gas.h"
# 21 "../../gcc/config/i386/next.h" 2
# 1 "../../gcc/config/nextstep.h" 1
# 51 "../../gcc/config/nextstep.h"
# 68 "../../gcc/config/nextstep.h"
# 125 "../../gcc/config/nextstep.h"
# 251 "../../gcc/config/nextstep.h"
# 334 "../../gcc/config/nextstep.h"
# 347 "../../gcc/config/nextstep.h"
# 451 "../../gcc/config/nextstep.h"
# 572 "../../gcc/config/nextstep.h"
# 585 "../../gcc/config/nextstep.h"
# 22 "../../gcc/config/i386/next.h" 2
# 63 "../../gcc/config/i386/next.h"
# 76 "../../gcc/config/i386/next.h"
# 91 "../../gcc/config/i386/next.h"
# 120 "../../gcc/config/i386/next.h"
# 195 "../../gcc/config/i386/next.h"
# 1 "tm.h" 2
# 43 "../../gcc/config/i386/xm-i386.h" 2
# 1 "../../gcc/config/i386/xm-next.h" 2
# 2 "hconfig.h" 2
# 21 "../../gcc/gencheck.c" 2
# 1 "../../gcc/system.h" 1
# 1 "/NextDeveloper/Headers/ansi/stdio.h" 1 3
# 1 "/NextDeveloper/Headers/ansi/standards.h" 1 3
# 12 "/NextDeveloper/Headers/ansi/stdio.h" 2 3


# 1 "include/stddef.h" 1 3
# 61 "include/stddef.h" 3
typedef long int ptrdiff_t;
typedef long unsigned int size_t;
typedef short unsigned int wchar_t;
typedef unsigned int  wint_t;
# 317 "include/stddef.h" 3
# 24 "/NextDeveloper/Headers/ansi/stdio.h" 2 3

# 1 "include/stdarg.h" 1 3
typedef void *__gnuc_va_list;
void va_end (__gnuc_va_list);
# 168 "include/stdarg.h" 3
typedef __gnuc_va_list va_list;
# 25 "/NextDeveloper/Headers/ansi/stdio.h" 2 3


extern struct _iobuf {
        int     _cnt;
        char    *_ptr;
        char    *_base;
        int     _bufsiz;
        short   _flag;
        unsigned char   _file;
        char    _smallbuf;
} _iob[];






# 79 "/NextDeveloper/Headers/ansi/stdio.h" 3




                        typedef long fpos_t;

















                        extern int remove(const char *filename);
                        extern int rename(const char *old_name,           
                                       const char *new_name);
                        extern struct _iobuf  *tmpfile(void);
                        extern char *tmpnam(char *s);
                        extern int fclose(struct _iobuf  *stream);
                        extern int fflush(struct _iobuf  *stream);
                        extern void setbuf(struct _iobuf  *stream, char *buf);
                        extern int setvbuf(struct _iobuf  *stream, char  
*buf,                                           int mode, size_t size);
                        extern int fprintf(struct _iobuf  *stream, const  
char                                           *format, ...);
                        extern int fscanf(struct _iobuf  *stream, const  
char                                            *format, ...);
                        extern int printf(const char *format, ...);
                        extern int scanf(const char *format, ...);
                        extern int sprintf(char *s, const char            
                               *format, ...);
                        extern int sscanf(const char *s, const            
                               char *format, ...);

                                extern int vfprintf(struct _iobuf   
*stream,                                       const char *format,  
va_list arg);
                                extern int vprintf(const char *format,    
                                       va_list arg);
                                extern int vsprintf(char *s, const        
                                       char *format, va_list arg);

                        extern int fgetc(struct _iobuf  *stream);
                        extern int fputc(int c, struct _iobuf  *stream);
                        extern int fputs(const char *s, struct _iobuf   
*stream);
                        extern int getc(struct _iobuf  *stream);
                        extern int _flsbuf(unsigned char c, struct  
_iobuf  *iop);
                        extern int _filbuf(struct _iobuf  *iop);
                        extern int getchar(void);
                        extern int putc(int c, struct _iobuf  *stream);
                        extern int putchar(int c);
                        extern int puts(const char *s);
                        extern int ungetc(int c, struct _iobuf  *stream);
                        extern size_t fread(void *ptr, size_t size,       
                                       size_t nmemb, struct _iobuf   
*stream);
                        extern size_t fwrite(const void *ptr, size_t      
                               size, size_t nmemb, struct _iobuf   
*stream);
                        extern int fgetpos(struct _iobuf  *stream,  
fpos_t *pos);
                        extern int fseek(struct _iobuf  *stream, long  
int                                               offset, int whence);
                        extern int fsetpos(struct _iobuf  *stream, const  
                                               fpos_t *pos);
                        extern void rewind(struct _iobuf  *stream);
                        extern void clearerr(struct _iobuf  *stream);
                        extern int feof(struct _iobuf  *stream);
                        extern int ferror(struct _iobuf  *stream);
                        extern void perror(const char *s);
                        extern struct _iobuf  *fopen(const char  
*filename,                                              const char  
*mode);
                        extern struct _iobuf  *freopen(const char  
*filename,                                            const char *mode,  
struct _iobuf  *stream);
                        extern long int ftell(struct _iobuf  *stream);
                        extern char *fgets(char *s, int n, struct _iobuf  
                                               *stream);
                        extern char *gets(char *s);

# 219 "/NextDeveloper/Headers/ansi/stdio.h" 3



                extern int fileno(struct _iobuf  *stream);
















                                extern struct _iobuf  *fdopen(int  
fildes,                                       const char *mode);




                                extern struct _iobuf  *popen(const char  
*command,                                                  const char  
*mode);
                                extern int pclose(struct _iobuf  *stream);


# 10 "../../gcc/system.h" 2
# 1 "/NextDeveloper/Headers/ansi/ctype.h" 1 3
extern int isalnum(int c);
extern int isalpha(int c);
extern int iscntrl(int c);
extern int isdigit(int c);
extern int isgraph(int c);
extern int islower(int c);
extern int isprint(int c);
extern int ispunct(int c);
extern int isspace(int c);
extern int isupper(int c);
extern int isxdigit(int c);
extern int tolower(int c);
extern int toupper(int c);
# 38 "/NextDeveloper/Headers/ansi/ctype.h" 3
extern const char _ctype_[];
# 17 "../../gcc/system.h" 2
# 1 "/NextDeveloper/Headers/bsd/sys/types.h" 1 3







        typedef unsigned char   u_char;
        typedef unsigned short  u_short;
        typedef unsigned int    u_int;
        typedef unsigned long   u_long;
        typedef unsigned short  ushort;

# 1 "/NextDeveloper/Headers/bsd/machine/label_t.h" 1 3
# 1 "include/architecture/ARCH_INCLUDE.h" 1 3
# 9 "/NextDeveloper/Headers/bsd/machine/label_t.h" 2 3
# 1 "include/bsd/i386/label_t.h" 1 3
typedef struct label_t {
        int     val[14];
} label_t;
# 11 "/NextDeveloper/Headers/bsd/machine/label_t.h" 2 3
# 91 "/NextDeveloper/Headers/bsd/sys/types.h" 2 3

                typedef struct  _quad { long val[2]; } quad;

        typedef long    daddr_t;
        typedef char *  caddr_t;


                typedef long    time_t;


        typedef short   dev_t;
        typedef short   gid_t;
        typedef short   uid_t;

                typedef u_long  ino_t;

        typedef long    off_t;





        typedef long    fd_mask;





        typedef struct fd_set {
                fd_mask fds_bits[((( 256  )+((  (sizeof(fd_mask) * 8 )   
)-1))/(  (sizeof(fd_mask) * 8 )  )) ];
        } fd_set;




# 77 "../../gcc/system.h" 2
# 1 "/NextDeveloper/Headers/ansi/errno.h" 1 3
# 1 "/NextDeveloper/Headers/bsd/sys/errno.h" 1 3






















































































































# 1 "include/stddef.h" 1 3
# 342 "include/stddef.h" 3
# 201 "/NextDeveloper/Headers/bsd/sys/errno.h" 2 3

        extern void perror(const char *);
        extern char *sys_errlist[];
        extern int sys_nerr;
# 7 "/NextDeveloper/Headers/ansi/errno.h" 2 3
extern int errno;
# 78 "../../gcc/system.h" 2
extern int errno;
# 1 "/NextDeveloper/Headers/ansi/string.h" 1 3
# 21 "/NextDeveloper/Headers/ansi/string.h" 3
# 33 "/NextDeveloper/Headers/ansi/string.h" 3
extern void *memcpy(void *s1, const void *s2, size_t n);
extern void *memmove(void *s1, const void *s2, size_t n);
extern char *strcpy(char *s1, const char *s2);
extern char *strncpy(char *s1, const char *s2, size_t n);
extern char *strcat(char *s1, const char *s2);
extern char *strncat(char *s1, const char *s2, size_t n);
extern int memcmp(const void *s1, const void *s2, size_t n);
extern int strcmp(const char *s1, const char *s2);
extern size_t strcoll(char *to, size_t maxsize, const char *from);
extern int strncmp(const char *s1, const char *s2, size_t n);
extern void *memchr(const void *s, int c, size_t n);
extern char *strchr(const char *s, int c);
extern size_t strcspn(const char *s1, const char *s2);
extern char *strpbrk(const char *s1, const char *s2);
extern char *strrchr(const char *s, int c);
extern size_t strspn(const char *s1, const char *s2);
extern char *strstr(const char *s1, const char *s2);
extern char *strtok(char *s1, const char *s2);
extern void *memset(void *s, int c, size_t n);
extern char *strerror(int errnum);
extern size_t strlen(const char *s);
# 101 "/NextDeveloper/Headers/ansi/string.h" 3
extern int strncasecmp(const char *s1, const char *s2, size_t n);
extern int strcasecmp(const char *s1, const char *s2);
extern char *index(const char *s, int c);
extern char *rindex(const char *s, int c);
extern char *strcpyn();
extern char *strcatn();
extern int strcmpn();
# 85 "../../gcc/system.h" 2
# 1 "/NextDeveloper/Headers/ansi/stdlib.h" 1 3
# 27 "/NextDeveloper/Headers/ansi/stdlib.h" 3
typedef struct {int quot, rem;} div_t;
typedef struct {long int quot, rem;} ldiv_t;
extern double atof(const char *nptr);
extern int atoi(const char *nptr);
extern long int atol(const char *nptr);
extern double strtod(const char *nptr, char **endptr);
extern long int strtol(const char *nptr, char **endptr, int base);
extern unsigned long int strtoul(const char *nptr, char **endptr, int base);
extern int rand(void);
extern void srand(unsigned int seed);
extern void *calloc(size_t nmemb, size_t size);
extern void free(void *ptr);
extern void *malloc(size_t size);
extern void *realloc(void *ptr, size_t size);
extern volatile void abort(void);
extern char *getenv(const char *name);
extern int system(const char *string);
extern void *bsearch(const void *key, const void *base,
        size_t nmemb, size_t size,
        int (*compar)(const void *, const void *));
extern void *qsort(void *base, size_t nmemb, size_t size,
        int (*compar)(const void *, const void *));
extern int abs(int j);
extern div_t div(int numer, int denom);
extern long int labs(long int j);
extern ldiv_t ldiv(long int numer, long int denom);
extern int mblen(const char *s, size_t n);
extern int mbtowc(wchar_t *pwc, const char *s, size_t n);
extern int wctomb(char *s, wchar_t wchar);
extern size_t mbstowcs(wchar_t *pwcs, const char *s, size_t n);
extern size_t wcstombs(char *s, const wchar_t *pwcs, size_t n);
# 126 "/NextDeveloper/Headers/ansi/stdlib.h" 3
extern int atexit(void (*fcn)(void));
extern volatile void exit(int status);
extern void *valloc(size_t size);
extern void *alloca(size_t size);
extern void cfree(void *ptr);
extern void vfree(void *ptr);
extern size_t malloc_size(void *ptr);
extern size_t malloc_good_size(size_t byteSize);
extern int malloc_debug(int level);
extern void (*malloc_error(void (*fcn)(int)))(int);
extern size_t mstats(void);
# 93 "../../gcc/system.h" 2
# 1 "/NextDeveloper/Headers/bsd/unistd.h" 1 3
# 170 "/NextDeveloper/Headers/bsd/unistd.h" 3
# 97 "../../gcc/system.h" 2
# 1 "/NextDeveloper/Headers/bsd/sys/param.h" 1 3
# 1 "/NextDeveloper/Headers/bsd/machine/machparam.h" 1 3
# 1 "include/bsd/i386/machparam.h" 1 3
# 1 "include/mach/vm_param.h" 1 3
# 1 "/NextDeveloper/Headers/mach/machine/vm_param.h" 1 3
# 1 "include/mach/i386/vm_param.h" 1 3
# 11 "/NextDeveloper/Headers/mach/machine/vm_param.h" 2 3
# 42 "include/mach/vm_param.h" 2 3
# 1 "/NextDeveloper/Headers/mach/machine/vm_types.h" 1 3
# 1 "include/mach/i386/vm_types.h" 1 3
typedef unsigned int    natural_t;
typedef int             integer_t;
typedef natural_t       vm_offset_t;
typedef natural_t       vm_size_t;
# 11 "/NextDeveloper/Headers/mach/machine/vm_types.h" 2 3
# 43 "include/mach/vm_param.h" 2 3
# 94 "include/mach/vm_param.h" 3
# 18 "include/bsd/i386/machparam.h" 2 3
# 11 "/NextDeveloper/Headers/bsd/machine/machparam.h" 2 3
# 45 "/NextDeveloper/Headers/bsd/sys/param.h" 2 3
# 1 "/NextDeveloper/Headers/bsd/sys/signal.h" 1 3

# 1 "/NextDeveloper/Headers/bsd/machine/signal.h" 1 3
# 1 "include/bsd/i386/signal.h" 1 3
struct  sigcontext {
    int                 sc_onstack;
    int                 sc_mask;
    unsigned int        sc_eax;
    unsigned int        sc_ebx;
    unsigned int        sc_ecx;
    unsigned int        sc_edx;
    unsigned int        sc_edi;
    unsigned int        sc_esi;
    unsigned int        sc_ebp;
    unsigned int        sc_esp;
    unsigned int        sc_ss;
    unsigned int        sc_eflags;
    unsigned int        sc_eip;
    unsigned int        sc_cs;
    unsigned int        sc_ds;
    unsigned int        sc_es;
    unsigned int        sc_fs;
    unsigned int        sc_gs;
};
# 11 "/NextDeveloper/Headers/bsd/machine/signal.h" 2 3
# 33 "/NextDeveloper/Headers/bsd/sys/signal.h" 2 3
















































                struct  sigvec {
                        void    (*sv_handler)();
                        int     sv_mask;
                        int     sv_flags;
                        };









                struct  sigstack {
                        char    *ss_sp;
                        int     ss_onstack;
                };

# 176 "/NextDeveloper/Headers/bsd/sys/signal.h" 3










                extern int sigblock(int);
                extern int sigpause(int);
                extern int sigreturn(struct sigcontext *);
                extern int sigsetmask(int);
                extern int sigstack(struct sigstack *,                    
               struct sigstack *);
                extern int sigvec(int, struct sigvec *,                   
                       struct sigvec *);

                extern int siginterrupt(int, int);

                        extern void (*signal(int,                         
       void (*)(int)))(int);





# 231 "/NextDeveloper/Headers/bsd/sys/signal.h" 3
# 280 "/NextDeveloper/Headers/bsd/sys/signal.h" 3
# 103 "/NextDeveloper/Headers/bsd/sys/param.h" 2 3

# 235 "/NextDeveloper/Headers/bsd/sys/param.h" 3
# 101 "../../gcc/system.h" 2
# 1 "include/limits.h" 1 3
# 1 "include/syslimits.h" 1 3
# 1 "include/limits.h" 1 3
# 114 "include/limits.h" 3
# 1 "/NextDeveloper/Headers/ansi/limits.h" 1 3
# 1 "/NextDeveloper/Headers/ansi/machine/limits.h" 1 3
# 1 "/NextDeveloper/Headers/ansi/i386/limits.h" 1 3
# 11 "/NextDeveloper/Headers/ansi/machine/limits.h" 2 3
# 8 "/NextDeveloper/Headers/ansi/limits.h" 2 3
# 47 "/NextDeveloper/Headers/ansi/limits.h" 3
# 117 "include/limits.h" 2 3
# 7 "include/syslimits.h" 2 3
# 11 "include/limits.h" 2 3
# 105 "../../gcc/system.h" 2
# 1 "/NextDeveloper/Headers/bsd/sys/time.h" 1 3
struct timeval {
        long    tv_sec;
        long    tv_usec;
};
struct timezone {
        int     tz_minuteswest;
        int     tz_dsttime;
};
struct  itimerval {
        struct  timeval it_interval;
        struct  timeval it_value;
};
# 105 "/NextDeveloper/Headers/bsd/sys/time.h" 3
# 1 "/NextDeveloper/Headers/ansi/time.h" 1 3
typedef unsigned long int clock_t;
struct tm {
    int tm_sec;
    int tm_min;
    int tm_hour;
    int tm_mday;
    int tm_mon;
    int tm_year;
    int tm_wday;
    int tm_yday;
    int tm_isdst;
    long tm_gmtoff;
    char *tm_zone;
};
clock_t clock(void);
double difftime(time_t time1, time_t time0);
time_t mktime(struct tm *timeptr);
size_t strftime(char *s, size_t maxsize,
const char *format, const struct tm *timeptr);
time_t time(time_t *timer);
char *asctime(const struct tm *timeptr);
char *ctime(const time_t *timer);
struct tm *gmtime(const time_t *timer);
struct tm *localtime(const time_t *timer);
# 109 "/NextDeveloper/Headers/ansi/time.h" 3
# 121 "/NextDeveloper/Headers/ansi/time.h" 3
# 106 "/NextDeveloper/Headers/bsd/sys/time.h" 2 3
extern int adjtime(struct timeval *, struct timeval *);
extern int getitimer(int, struct itimerval *);
extern int setitimer(int, struct itimerval *, struct itimerval *);
extern int gettimeofday(struct timeval *, struct timezone *);
extern int settimeofday(struct timeval *, struct timezone *);
extern int utimes(const char *, struct timeval *);
# 109 "../../gcc/system.h" 2
# 119 "../../gcc/system.h"
# 1 "/NextDeveloper/Headers/bsd/fcntl.h" 1 3
# 1 "include/bsd/sys/fcntl.h" 1 3































































struct flock {
        short   l_type;
        short   l_whence;
        long    l_start;
        long    l_len;

        short   l_pid;
        short   l_xxx;
};
# 176 "include/bsd/sys/fcntl.h" 3
# 1 "/NextDeveloper/Headers/bsd/fcntl.h" 2 3
# 122 "../../gcc/system.h" 2
# 157 "../../gcc/system.h"
# 167 "../../gcc/system.h"
# 177 "../../gcc/system.h"
# 187 "../../gcc/system.h"
# 197 "../../gcc/system.h"
extern char *getcwd ();
extern char *getwd ();
extern char *sbrk ();
# 22 "../../gcc/gencheck.c" 2
char *tree_codes[] = {
# 1 "../../gcc/tree.def" 1
"ERROR_MARK" ,
"IDENTIFIER_NODE" ,
"OP_IDENTIFIER" ,
"TREE_LIST" ,
"TREE_VEC" ,
"BLOCK" ,


"VOID_TYPE" ,
"INTEGER_TYPE" ,
"REAL_TYPE" ,
"COMPLEX_TYPE" ,
"ENUMERAL_TYPE" ,
"BOOLEAN_TYPE" ,
"CHAR_TYPE" ,
"POINTER_TYPE" ,
"OFFSET_TYPE" ,
"REFERENCE_TYPE" ,
"METHOD_TYPE" ,
"FILE_TYPE" ,
"ARRAY_TYPE" ,
"SET_TYPE" ,
"RECORD_TYPE" ,
"UNION_TYPE" ,
"QUAL_UNION_TYPE" ,
"FUNCTION_TYPE" ,
"LANG_TYPE" ,


"INTEGER_CST" ,
"REAL_CST" ,
"COMPLEX_CST" ,
"STRING_CST" ,
"FUNCTION_DECL" ,
"LABEL_DECL" ,
"CONST_DECL" ,
"TYPE_DECL" ,
"VAR_DECL" ,
"PARM_DECL" ,
"RESULT_DECL" ,
"FIELD_DECL" ,
"NAMESPACE_DECL" ,


"COMPONENT_REF" ,
"BIT_FIELD_REF" ,
"INDIRECT_REF" ,
"BUFFER_REF" ,
"ARRAY_REF" ,
"CONSTRUCTOR" ,
"COMPOUND_EXPR" ,
"MODIFY_EXPR" ,
"INIT_EXPR" ,
"TARGET_EXPR" ,
"COND_EXPR" ,
"BIND_EXPR" ,
"CALL_EXPR" ,
"METHOD_CALL_EXPR" ,
"WITH_CLEANUP_EXPR" ,
"CLEANUP_POINT_EXPR" ,
"PLACEHOLDER_EXPR" ,
"WITH_RECORD_EXPR" ,
"PLUS_EXPR" ,
"MINUS_EXPR" ,
"MULT_EXPR" ,
"TRUNC_DIV_EXPR" ,
"CEIL_DIV_EXPR" ,
"FLOOR_DIV_EXPR" ,
"ROUND_DIV_EXPR" ,
"TRUNC_MOD_EXPR" ,
"CEIL_MOD_EXPR" ,
"FLOOR_MOD_EXPR" ,
"ROUND_MOD_EXPR" ,
"RDIV_EXPR" ,
"EXACT_DIV_EXPR" ,
"FIX_TRUNC_EXPR" ,
"FIX_CEIL_EXPR" ,
"FIX_FLOOR_EXPR" ,
"FIX_ROUND_EXPR" ,
"FLOAT_EXPR" ,
"EXPON_EXPR" ,
"NEGATE_EXPR" ,
"MIN_EXPR" ,
"MAX_EXPR" ,
"ABS_EXPR" ,
"FFS_EXPR" ,
"LSHIFT_EXPR" ,
"RSHIFT_EXPR" ,
"LROTATE_EXPR" ,
"RROTATE_EXPR" ,
"BIT_IOR_EXPR" ,
"BIT_XOR_EXPR" ,
"BIT_AND_EXPR" ,
"BIT_ANDTC_EXPR" ,
"BIT_NOT_EXPR" ,
"TRUTH_ANDIF_EXPR" ,
"TRUTH_ORIF_EXPR" ,
"TRUTH_AND_EXPR" ,
"TRUTH_OR_EXPR" ,
"TRUTH_XOR_EXPR" ,
"TRUTH_NOT_EXPR" ,
"LT_EXPR" ,
"LE_EXPR" ,
"GT_EXPR" ,
"GE_EXPR" ,
"EQ_EXPR" ,
"NE_EXPR" ,
"IN_EXPR" ,
"SET_LE_EXPR" ,
"CARD_EXPR" ,
"RANGE_EXPR" ,
"CONVERT_EXPR" ,
"NOP_EXPR" ,
"NON_LVALUE_EXPR" ,
"SAVE_EXPR" ,
"UNSAVE_EXPR" ,
"RTL_EXPR" ,
"ADDR_EXPR" ,
"REFERENCE_EXPR" ,
"ENTRY_VALUE_EXPR" ,
"COMPLEX_EXPR" ,
"CONJ_EXPR" ,
"REALPART_EXPR" ,
"IMAGPART_EXPR" ,
"PREDECREMENT_EXPR" ,
"PREINCREMENT_EXPR" ,
"POSTDECREMENT_EXPR" ,
"POSTINCREMENT_EXPR" ,
"TRY_CATCH_EXPR" ,
"POPDHC_EXPR" ,
"POPDCC_EXPR" ,


"LABEL_EXPR" ,
"GOTO_EXPR" ,
"RETURN_EXPR" ,
"EXIT_EXPR" ,
"LOOP_EXPR" ,
"EXPR_WITH_FILE_LOCATION" ,
# 27 "../../gcc/gencheck.c" 2
(char*)0
};
void usage ()
{
  fprintf ((&_iob[2]) ,"Usage: gencheck\n");
}
int main (argc, argv)
     int argc;
     char *argv[];
{
  int i;
  switch (argc)
    {
    case 1:
      break;
    default:
      usage ();
      exit (1);
    }
  printf ("/* This file is generated using gencheck. Do not edit. */\n");
  for (i = 0; tree_codes[i]; i++)
    {
      printf ("#define %s_CHECK(t)\tTREE_CHECK (t, %s)\n",
              tree_codes[i], tree_codes[i]);
      printf ("#define %s_CHECK1(t)\tTREE_CHECK1 (t, %s)\n",
              tree_codes[i], tree_codes[i]);
    }
  return 0;
}
# 82 "../../gcc/gencheck.c"
-----------------------------------------------------------

Now, let's debug:

~/Library/nobackup/egcs-19980803/objdir/gcc> gdb ./gencheck
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.7 (NeXT 3.1), Copyright 1992 Free Software Foundation, Inc...
Reading symbols from  
/Users/tschwarz/Library/nobackup/egcs-19980803/objdir/gcc/gencheck...done.
Reading symbols from /usr/shlib/libsys_s.B.shlib...done.

Breakpoint 1 at 0x505a693
Breakpoint 2 at 0x505a344
Function "fancy_abort" not defined.
(gdb) l 53
Reading in symbols for ../../gcc/gencheck.c...done.
48            usage ();
49            exit (1);
50          }
51
52        printf ("/* This file is generated using gencheck. Do not  
edit. */\n");
53        for (i = 0; tree_codes[i]; i++)
54          {
55            printf ("#define %s_CHECK(t)\tTREE_CHECK (t, %s)\n",
56                    tree_codes[i], tree_codes[i]);
57            printf ("#define %s_CHECK1(t)\tTREE_CHECK1 (t, %s)\n",
(gdb) br 53
Breakpoint 3 at 0x2972: ../../gcc/gencheck.c:53.
(gdb) run
Starting program:  
/Users/tschwarz/Library/nobackup/egcs-19980803/objdir/gcc/gencheck
/* This file is generated using gencheck. Do not edit. */

Breakpoint 3, main (argc=?, argv=0xbffffc1c) at ../../gcc/gencheck.c:53
53        for (i = 0; tree_codes[i]; i++)
(gdb) print i
No symbol "i" in current context.
(gdb) print tree_codes
$1 = Value not integer or pointer.
(gdb) print tree_codes[0]
$2 = 0x3ec0 "ERROR_MARK"
(gdb) print tree_codes[130]
$5 = 0x2e80 "EXPR_WITH_FILE_LOCATION"
(gdb) print tree_codes[131]
$6 = 0x0
(gdb) step
Program generated(1): Memory access exception on address 0x6850900f  
(invalid address).
0x2983 in main (argc=?, argv=0xbffffc1c) at ../../gcc/gencheck.c:53
53        for (i = 0; tree_codes[i]; i++)
(gdb)

I must admit, I have no clue what's going on here. 'No Symbol 'i'',  
'Value not integer or pointer', but print tree_codes[0] gives the correct  
string?
If you have further 'debugging hints', I'll try them...

Bye
	Tilo

--------------------
Tilo Schwarz, Daimler-Benz AG, Research Center Ulm, FT3/AB
Address:      Wilhelm-Runge-Str.11,  P.O. Box 23 60,  89013 Ulm,  Germany
Phone:        +49 731 505 2376
Email:        tilo.schwarz@dbag.ulm.daimlerbenz.com
              (NeXT- and MIME-Mail welcome)



More information about the Gcc-bugs mailing list