From: jeff@uaboeing.ua.edu (Jeff A. Earickson)
Subject: endless loop in ./genflags
Organization: GNUs Not Usenet
Distribution: gnu
Date: Tue, 29 Dec 1992 03:24:26 GMT

Dear GCC Developers,


    GCC Version: 2.3.3 (Dec 26 copy from prep.ai.mit.edu)
    Platform:  Sun 3/60, running SunOS 4.1.1
    Problem:   ./genflags goes into endless loop and creates
               a huge tmp-flags.h file (mostly blanks)


I did a "configure --target=sun3-sunos4.1" and then a 
"make LANGUAGES=c".  For this example, the makefile is using
Sun's /usr/bin/cc C compiler.  Here is the output from make:


cc  -DIN_GCC   -g     -I. -I. -I./config -DGCC_INCLUDE_DIR=\"/usr/local/lib/gcc-lib/sun3-sunos4.1/`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ./version.c`/include\" -DGPLUSPLUS_INCLUDE_DIR=\"/usr/local/lib/g++-include\" -DLOCAL_INCLUDE_DIR=\"/usr/local/inclu

de\" -DCROSS_INCLUDE_DIR=\"/usr/local/lib/gcc-lib/sun3-sunos4.1/`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < ./version.c`/sys-include\" -DTOOLDIR=\"/usr/local/sun3-sunos4.1/\" -c `echo ./cccp.c | sed 's,^\./,,'`
cc  -DIN_GCC   -g     -I. -I. -I./config -c ./cexp.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config version.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config obstack.c
cc  -DIN_GCC   -g   -o cccp cccp.o cexp.o version.o obstack.o ` case "cc" in "cc") echo  ;; esac `  
rm -f cpp
ln cccp cpp
cc  -DIN_GCC   -g     -I. -I. -I./config -c ./c-parse.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config c-lang.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config c-lex.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config c-decl.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config c-typeck.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config c-convert.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config c-aux-info.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config c-common.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config c-pragma.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config ./genattr.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config rtl.c
cc  -DIN_GCC   -g   -o genattr genattr.o rtl.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case "cc"@"" in "cc"@?*) echo  ;; esac ` ` case "" in ?*) echo  ;; esac ` 
./genattr md > tmp-attr.h
./move-if-change tmp-attr.h insn-attr.h
insn-attr.h is unchanged
touch stamp-attr
cc  -DIN_GCC   -g     -I. -I. -I./config  -DUSE_COLLECT2 -c `echo ./toplev.c | sed 's,^\./,,'`
cc -c  -DIN_GCC   -g     -I. -I. -I./config tree.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config print-tree.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config stor-layout.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config fold-const.c
cc -c  -DIN_GCC   -g     -I. -I. -I./config ./genflags.c
cc  -DIN_GCC   -g   -o genflags genflags.o rtl.o ` case "obstack.o" in ?*) echo obstack.o ;; esac ` ` case "cc"@"" in "cc"@?*) echo  ;; esac ` ` case "" in ?*) echo  ;; esac ` 
./genflags md > tmp-flags.h
/bin/sh: 5392 Killed


After genflags had churned along for a few minutes, I did an "ls -l"
on tmp-flags.h, and here is what I found:

(44)> ls -l tmp-flags.h
-rw-------  1 jeff     staff     1515520 Dec 29 09:14 tmp-flags.h


Doing a "more" on the file shows that it is ok down to:

(more stuff above)
#define HAVE_jump 1
#define HAVE_tablejump 1
#define HAVE_decrement_and_branch_until_zero (find_reg_note (insn, REG_NONNEG,0)) 
#define HAVE_call 1
#define HAVE_call_value 1
#define HAVE_nop 1
#define HAVE_probe (NEED_PROBE)
#define HAVE_return (USE_RETURN_INSN)
#define HAVE_indirect_jump 1

#ifndef NO_MD_PROTOTYPES
extern rtx gen_tstsi                                                            
(mucho blanks beyond here)


Doing an "od -bc" on the file revealed that everything else was blanks.
I did the same thing last night, then went to supper.  When I came back
two hours later, tmp-flags.h was a 179Mb file!


/*------------------------------------------------------------------------*/
/* Jeff A. Earickson                         e-mail: jeff@uaboeing.ua.edu */
/* Cray/nCUBE/Sun Consultant,                  Work Phone: (205) 348-3969 */
/* Alabama Supercomputer Network                 Work Fax: (205) 348-3993 */
/* Boeing Computer Services                                               */
/* Address: PO Box 870346, University of Alabama, Tuscaloosa, AL 35487    */
/* Alabama 12-0-0, AP #2, Sugar Bowl bound, soon to be #1.  Roll Tide!!!  */
/*------------------------------------------------------------------------*/



Newsgroups: gnu.gcc.bug