From: Jeffrey A Law Date: Thu, 4 Jun 1998 00:40:23 +0000 (+0000) Subject: * gcc.c-torture/execute/980604-1.c: New test. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f1bfebe57f18c85a9150ee984d2f0062b6b7bf29;p=gcc.git * gcc.c-torture/execute/980604-1.c: New test. From-SVN: r20216 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f656016940e..3d43e5b56a1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +Thu Jun 4 01:39:24 1998 Jeffrey A Law (law@cygnus.com) + + * gcc.c-torture/execute/980604-1.c: New test. + Tue Jun 2 20:51:43 1998 Jeffrey A Law (law@cygnus.com) * gcc.c-torture/execute/980602-1.c: New test. diff --git a/gcc/testsuite/gcc.c-torture/execute/980604-1.c b/gcc/testsuite/gcc.c-torture/execute/980604-1.c new file mode 100644 index 00000000000..959e4cf1390 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/980604-1.c @@ -0,0 +1,1633 @@ +# 1 "dhry_1.c" + + + + + + + + + + + + + + + + + +# 1 "dhry.h" 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + typedef enum {Ident_1, Ident_2, Ident_3, Ident_4, Ident_5} + Enumeration; + + + + + +# 1 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/stdio.h" 1 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# 1 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/_ansi.h" 1 3 + + + + + + + + + + + + + + +# 1 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/sys/config.h" 1 3 + + + + + +# 14 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/sys/config.h" 3 + + +# 25 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/sys/config.h" 3 + + + + + + + + + + + +# 44 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/sys/config.h" 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +typedef int __int32_t; +typedef unsigned int __uint32_t; + + + + + + + +# 15 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/_ansi.h" 2 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# 61 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/_ansi.h" 3 + + + + + + + + + + + +# 32 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/stdio.h" 2 3 + + + + + +# 1 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/stddef.h" 1 3 + + + + + + + + + +# 19 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/stddef.h" 3 + + + + + + + + + + + + + + + +# 61 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/stddef.h" 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# 131 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/stddef.h" 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +typedef long unsigned int size_t; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# 271 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/stddef.h" 3 + + +# 283 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/stddef.h" 3 + + + + +# 315 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/stddef.h" 3 + + + + + + + + + + + + + + + + + + + + + + + + + + +# 37 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/stdio.h" 2 3 + + + +# 1 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/stdarg.h" 1 3 + + + + + + + + + + + + + + + + + + + + + + + + + + +# 1 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/va-mips.h" 1 3 + + + + + + + + + + + + + + + +# 27 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/va-mips.h" 3 + + +typedef char * __gnuc_va_list; + + + + + + +# 277 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/va-mips.h" 3 + +# 27 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/stdarg.h" 2 3 + +# 165 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/stdarg.h" 3 + + + + + + +# 238 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/include/stdarg.h" 3 + + + + +# 40 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/stdio.h" 2 3 + + + + + + + + +# 1 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/sys/reent.h" 1 3 + + + + + + + + + + + + + + +struct _glue +{ + struct _glue *_next; + int _niobs; + struct __sFILE *_iobs; +}; + +struct _Bigint +{ + struct _Bigint *_next; + int _k, _maxwds, _sign, _wds; + unsigned long _x[1]; +}; + + + + + + + +struct _atexit { + struct _atexit *_next; + int _ind; + void (*_fns[32 ])(); +}; + + + + + + + + +struct __sbuf { + unsigned char *_base; + int _size; +}; + + + + + + +typedef long _fpos_t; + + + + + + + + + + + + + + + + + + + + + + + + + + + +struct __sFILE { + unsigned char *_p; + int _r; + int _w; + short _flags; + short _file; + struct __sbuf _bf; + int _lbfsize; + + + void * _cookie; + + int (*_read) (void * _cookie, char *_buf, int _n) ; + int (*_write) (void * _cookie, const char *_buf, int _n) ; + _fpos_t (*_seek) (void * _cookie, _fpos_t _offset, int _whence) ; + int (*_close) (void * _cookie) ; + + + struct __sbuf _ub; + unsigned char *_up; + int _ur; + + + unsigned char _ubuf[3]; + unsigned char _nbuf[1]; + + + struct __sbuf _lb; + + + int _blksize; + int _offset; + + struct _reent *_data; +}; + + + + + + + + + +struct _reent +{ + + int _errno; + + + + + struct __sFILE *_stdin, *_stdout, *_stderr; + + int _inc; + char _emergency[25]; + + int _current_category; + const char *_current_locale; + + int __sdidinit; + + void (*__cleanup) (struct _reent *) ; + + + struct _Bigint *_result; + int _result_k; + struct _Bigint *_p5s; + struct _Bigint **_freelist; + + + int _cvtlen; + char *_cvtbuf; + + + + + + unsigned char * _nextf[30 ]; + unsigned int _nmalloc[30 ]; + + + struct _atexit *_atexit; + struct _atexit _atexit0; + + + void (**(_sig_func))(); + + + + + struct _glue __sglue; + struct __sFILE __sf[3]; +}; + + + + + + + + + + + + + +extern struct _reent *_impure_ptr ; + +void _reclaim_reent (struct _reent *) ; + + + + + + + + + + + +# 48 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/stdio.h" 2 3 + + +typedef _fpos_t fpos_t; + +typedef struct __sFILE FILE; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +int remove (const char *) ; +int rename (const char *, const char *) ; + +FILE * tmpfile (void) ; +char * tmpnam (char *) ; +int fclose (FILE *) ; +int fflush (FILE *) ; +FILE * freopen (const char *, const char *, FILE *) ; +void setbuf (FILE *, char *) ; +int setvbuf (FILE *, char *, int, size_t) ; +int fprintf (FILE *, const char *, ...) ; +int fscanf (FILE *, const char *, ...) ; +int printf (const char *, ...) ; +int scanf (const char *, ...) ; +int sscanf (const char *, const char *, ...) ; +int vfprintf (FILE *, const char *, __gnuc_va_list ) ; +int vprintf (const char *, __gnuc_va_list ) ; +int vsprintf (char *, const char *, __gnuc_va_list ) ; +int fgetc (FILE *) ; +char * fgets (char *, int, FILE *) ; +int fputc (int, FILE *) ; +int fputs (const char *, FILE *) ; +int getc (FILE *) ; +int getchar (void) ; +char * gets (char *) ; +int putc (int, FILE *) ; +int putchar (int) ; +int puts (const char *) ; +int ungetc (int, FILE *) ; +size_t fread (void * , size_t _size, size_t _n, FILE *) ; +size_t fwrite (const void * , size_t _size, size_t _n, FILE *) ; +int fgetpos (FILE *, fpos_t *) ; +int fseek (FILE *, long, int) ; +int fsetpos (FILE *, const fpos_t *) ; +long ftell ( FILE *) ; +void rewind (FILE *) ; +void clearerr (FILE *) ; +int feof (FILE *) ; +int ferror (FILE *) ; +void perror (const char *) ; + +FILE * fopen (const char *_name, const char *_type) ; +int sprintf (char *, const char *, ...) ; + + +int vfiprintf (FILE *, const char *, __gnuc_va_list ) ; +int iprintf (const char *, ...) ; +int fiprintf (FILE *, const char *, ...) ; +int siprintf (char *, const char *, ...) ; + + + + + + + + +FILE * fdopen (int, const char *) ; + +int fileno (FILE *) ; +int getw (FILE *) ; +int pclose (FILE *) ; +FILE * popen (const char *, const char *) ; +int putw (int, FILE *) ; +void setbuffer (FILE *, char *, int) ; +int setlinebuf (FILE *) ; + + + + + + +FILE * _fdopen_r (struct _reent *, int, const char *) ; +FILE * _fopen_r (struct _reent *, const char *, const char *) ; +int _getchar_r (struct _reent *) ; +char * _gets_r (struct _reent *, char *) ; +int _iprintf_r (struct _reent *, const char *, ...) ; +int _mkstemp_r (struct _reent *, char *) ; +char * _mktemp_r (struct _reent *, char *) ; +void _perror_r (struct _reent *, const char *) ; +int _printf_r (struct _reent *, const char *, ...) ; +int _putchar_r (struct _reent *, int) ; +int _puts_r (struct _reent *, const char *) ; +int _remove_r (struct _reent *, const char *) ; +int _rename_r (struct _reent *, + const char *_old, const char *_new) ; +int _scanf_r (struct _reent *, const char *, ...) ; +int _sprintf_r (struct _reent *, char *, const char *, ...) ; +char * _tempnam_r (struct _reent *, char *, char *) ; +FILE * _tmpfile_r (struct _reent *) ; +char * _tmpnam_r (struct _reent *, char *) ; +int _vfprintf_r (struct _reent *, FILE *, const char *, __gnuc_va_list ) ; +int _vprintf_r (struct _reent *, const char *, __gnuc_va_list ) ; +int _vsprintf_r (struct _reent *, char *, const char *, __gnuc_va_list ) ; + + + + + +int __srget (FILE *) ; +int __swbuf (int, FILE *) ; + + + + + + +FILE * funopen (const void * _cookie, + int (*readfn)(void * _cookie, char *_buf, int _n), + int (*writefn)(void * _cookie, const char *_buf, int _n), + fpos_t (*seekfn)(void * _cookie, fpos_t _off, int _whence), + int (*closefn)(void * _cookie)) ; + + + + + + + + + + +# 259 "/usr/cygnus/latest-940103/H-hppa1.1-hp-hpux10/lib/gcc-lib/mips64r5900-elf/cygnus-2.91.22/../../../../mips64r5900-elf/include/stdio.h" 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# 361 "dhry.h" 2 + + + + + + + + +typedef int One_Thirty; +typedef int One_Fifty; +typedef char Capital_Letter; +typedef int Boolean; +typedef char Str_30 [31]; +typedef int Arr_1_Dim [50]; +typedef int Arr_2_Dim [50] [50]; + +typedef struct record + { + struct record *Ptr_Comp; + Enumeration Discr; + union { + struct { + Enumeration Enum_Comp; + int Int_Comp; + char Str_Comp [31]; + } var_1; + struct { + Enumeration E_Comp_2; + char Str_2_Comp [31]; + } var_2; + struct { + char Ch_1_Comp; + char Ch_2_Comp; + } var_3; + } variant; + } Rec_Type, *Rec_Pointer; +# 18 "dhry_1.c" 2 + + + + + + + + + + + +Rec_Pointer Ptr_Glob, + Next_Ptr_Glob; +int Int_Glob; +Boolean Bool_Glob; +char Ch_1_Glob, + Ch_2_Glob; +int Arr_1_Glob [50]; +int Arr_2_Glob [50] [50]; + + +int malc1[100], malc2[100]; + +Enumeration Func_1 (); + + + + Boolean Reg = 0 ; + + + + + + + + + +# 65 "dhry_1.c" + +# 75 "dhry_1.c" + + + + + + +long Begin_Time, + End_Time, + User_Time; +float Microseconds, + Dhrystones_Per_Second; + + + + + +ENTRY () + + + + +{ + + + One_Fifty Int_1_Loc; + One_Fifty Int_2_Loc; + One_Fifty Int_3_Loc; + char Ch_Index; + Enumeration Enum_Loc; + Str_30 Str_1_Loc; + Str_30 Str_2_Loc; + int Run_Index; + int Number_Of_Runs; + + + + + + + Next_Ptr_Glob = (Rec_Pointer) malc1; + Ptr_Glob = (Rec_Pointer) malc2; + + Ptr_Glob->Ptr_Comp = Next_Ptr_Glob; + Ptr_Glob->Discr = Ident_1; + Ptr_Glob->variant.var_1.Enum_Comp = Ident_3; + Ptr_Glob->variant.var_1.Int_Comp = 40; + strcpy (Ptr_Glob->variant.var_1.Str_Comp, + "DHRYSTONE PROGRAM, SOME STRING"); + strcpy (Str_1_Loc, "DHRYSTONE PROGRAM, 1'ST STRING"); + + Arr_2_Glob [8][7] = 10; + + + + + +# 160 "dhry_1.c" + + + + + + + + + + + + + + + + + + + + + for (Run_Index = 1; Run_Index <= Number_Of_Runs; ++Run_Index) + { + + + Proc_5(); + Proc_4(); + + Int_1_Loc = 2; + Int_2_Loc = 3; + strcpy (Str_2_Loc, "DHRYSTONE PROGRAM, 2'ND STRING"); + Enum_Loc = Ident_2; + Bool_Glob = ! Func_2 (Str_1_Loc, Str_2_Loc); + + while (Int_1_Loc < Int_2_Loc) + { + Int_3_Loc = 5 * Int_1_Loc - Int_2_Loc; + + Proc_7 (Int_1_Loc, Int_2_Loc, &Int_3_Loc); + + Int_1_Loc += 1; + } + + Proc_8 (Arr_1_Glob, Arr_2_Glob, Int_1_Loc, Int_3_Loc); + + Proc_1 (Ptr_Glob); + for (Ch_Index = 'A'; Ch_Index <= Ch_2_Glob; ++Ch_Index) + + { + if (Enum_Loc == Func_1 (Ch_Index, 'C')) + + { + Proc_6 (Ident_1, &Enum_Loc); + strcpy (Str_2_Loc, "DHRYSTONE PROGRAM, 3'RD STRING"); + Int_2_Loc = Run_Index; + Int_Glob = Run_Index; + } + } + + Int_2_Loc = Int_2_Loc * Int_1_Loc; + Int_1_Loc = Int_2_Loc / Int_3_Loc; + Int_2_Loc = 7 * (Int_2_Loc - Int_3_Loc) - Int_1_Loc; + + Proc_2 (&Int_1_Loc); + + + + + + } + + + + + + + + + + + + + + + + + +# 299 "dhry_1.c" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +pass(); + +} + + +Proc_1 (Ptr_Val_Par) + + + Rec_Pointer Ptr_Val_Par; + +{ + Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp; + + + + + *Ptr_Val_Par->Ptr_Comp = *Ptr_Glob ; + Ptr_Val_Par->variant.var_1.Int_Comp = 5; + Next_Record->variant.var_1.Int_Comp + = Ptr_Val_Par->variant.var_1.Int_Comp; + Next_Record->Ptr_Comp = Ptr_Val_Par->Ptr_Comp; + Proc_3 (&Next_Record->Ptr_Comp); + + + if (Next_Record->Discr == Ident_1) + + { + Next_Record->variant.var_1.Int_Comp = 6; + Proc_6 (Ptr_Val_Par->variant.var_1.Enum_Comp, + &Next_Record->variant.var_1.Enum_Comp); + Next_Record->Ptr_Comp = Ptr_Glob->Ptr_Comp; + Proc_7 (Next_Record->variant.var_1.Int_Comp, 10, + &Next_Record->variant.var_1.Int_Comp); + } + else + *Ptr_Val_Par = *Ptr_Val_Par->Ptr_Comp ; +} + + +Proc_2 (Int_Par_Ref) + + + + +One_Fifty *Int_Par_Ref; +{ + One_Fifty Int_Loc; + Enumeration Enum_Loc; + + Int_Loc = *Int_Par_Ref + 10; + do + if (Ch_1_Glob == 'A') + + { + Int_Loc -= 1; + *Int_Par_Ref = Int_Loc - Int_Glob; + Enum_Loc = Ident_1; + } + while (Enum_Loc != Ident_1); +} + + +Proc_3 (Ptr_Ref_Par) + + + + +Rec_Pointer *Ptr_Ref_Par; + +{ + if (Ptr_Glob != 0 ) + + *Ptr_Ref_Par = Ptr_Glob->Ptr_Comp; + Proc_7 (10, Int_Glob, &Ptr_Glob->variant.var_1.Int_Comp); +} + + +Proc_4 () + + +{ + Boolean Bool_Loc; + Bool_Loc = Ch_1_Glob == 'A'; + Bool_Glob = Bool_Loc | Bool_Glob; + Ch_2_Glob = 'B'; +} + + +Proc_5 () + + +{ + Ch_1_Glob = 'A'; + Bool_Glob = 0 ; +} + + + + +# 441 "dhry_1.c" +