🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by drk Sat, 08 Aug 1992 11:07
GCC 2.2.2 compiler crashes. Loop unrolling and the -g flag.
#325
Author: drk
Date: Sat, 08 Aug 1992 11:07
83 lines
4125 bytes
The following program causes the 2.2.2 compiler (mips-dec-ultrix) to abort
with a signal 11.  For the compiler to abort both the -g flag and one of
-funroll-loops or -funroll-all-loops must be specified.

In the program the macro FrequencY usually inserts some accounting code
into the my programs.  Here I have removed all of that stuff and just made
it null.  If you were to remove the ";" from "({;})" the compiler would not
abort.

Thanks

	Dan

Here are the full command lines and the gdb traceback:
------------------------------------------------------
Reading specs from /homes/gws/drk/vlsi-mount/gcc-2.2.2/specs
gcc version 2.2.2
 /homes/gws/drk/vlsi-mount/gcc-2.2.2/cpp -lang-c -v -undef -D__GNUC__=2 -D__ANSI_COMPAT -DMIPSEL -DR3000 -DSYSTYPE_BSD -D_SYSTYPE_BSD -Dbsd4_2 -Dhost_mips -Dmips -Dultrix -Dunix -D__ANSI_COMPAT -D__MIPSEL__ -D__R3000__ -D__SYSTYPE_BSD__ -D___SYSTYPE_BSD__ -D__bsd4_2__ -D__host_mips__ -D__mips__ -D__ultrix__ -D__unix__ -D__ANSI_COMPAT -D__MIPSEL -D__R3000 -D__SYSTYPE_BSD -D___SYSTYPE_BSD -D__bsd4_2 -D__host_mips -D__mips -D__ultrix -D__unix -D__OPTIMIZE__ -g -D__LANGUAGE_C__ -D__LANGUAGE_C -DLANGUAGE_C mts.
e.d.c mts.e.d.i
GNU CPP version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix
 /homes/gws/drk/vlsi-mount/gcc-2.2.2/cc1 mts.e.d.i -mgpopt -quiet -dumpbase mts.e.d.c -g -O2 -version -funroll-loops -o mts.e.d.s
GNU C version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix compiled by CC.
/homes/gws/drk/vlsi-mount/gcc-2.2.2/gcc: Internal compiler error: program cc1 got fatal signal 11

% gdb /homes/gws/drk/vlsi-mount/gcc-2.2.2/cc1
GDB 3.5, Copyright (C) 1989 Free Software Foundation, Inc.
There is ABSOLUTELY NO WARRANTY for GDB; type "info warranty" for details.
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "info copying" to see the conditions.
Reading symbol data from /homes/gws/drk/vlsi-mount/gcc-2.2.2/cc1...done.
Type "help" for a list of commands.
(gdb) run mts.e.d.i -mgpopt -quiet -dumpbase mts.e.d.c -g -O2 -version -funroll-loops -o mts.e.d.s
Starting program: /homes/gws/drk/vlsi-mount/gcc-2.2.2/cc1 mts.e.d.i -mgpopt -quiet -dumpbase mts.e.d.c -g -O2 -version -funroll-loops -o mts.e.d.s
GNU C version 2.2.2 [AL 1.1, MM 19] DECstation running ultrix compiled by CC.

Program received signal 11, Segmentation fault
0x453af0 in find_loop_tree_blocks (f=(struct rtx_def *) 0x1003a198) (stmt.c line 4610)
stmt.c: No such file or directory.
(gdb) where
#0  0x453af0 in find_loop_tree_blocks (f=(struct rtx_def *) 0x1003a198) (stmt.c line 4610)
#1  0x4b6120 in loop_optimize (f=(struct rtx_def *) 0x1003a198, dumpfile=(struct _iobuf *) 0x0) (loop.c line 441)
#2  0x4289d4 in rest_of_compilation (decl=(union tree_node *) 0x1004f410) (toplev.c line 2168)
#3  0x41412c in finish_function (nested=0) (c-decl.c line 5684)
#4  0x400a2c in yyparse () (bison.simple line 329)
#5  0x427470 in compile_file (name=(char *) 0x7fffbc18 "mts.e.d.i") (toplev.c line 1638)
#6  0x42ab00 in main (argc=12, argv=(char **) 0x7fffbb64, envp=(char **) 0x7fffbb98) (toplev.c line 3055)
(gdb) 


Program follows:
----------------
#define FrequencY(x) ({;})

typedef long int 	integer;
typedef float 	real;
typedef double 	doublereal;

real  sig0[100];

int finit4_bv(dt,wb,cell,facm,ipfl)
real dt,wb,cell,facm;
integer ipfl;
{
  doublereal phit[16];

  doublereal p0[16];

  integer ks;

  extern int matmlt_bv4x4();

  doublereal tm1[16];

  integer ksm;

  for ((FrequencY(1),(ks = 1));(FrequencY(16),(ks<=15));(FrequencY(15),(++ks)))
    {
      if ((FrequencY(15),(ks==1)))
	{
	  (FrequencY(1),(matmlt_4x4bv(p0,phit,tm1)));
	}
    }
}
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