This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
optimization/6864: Optimizer infinite loop/memory runaway (on gdb sources)
- From: donnte at microsoft dot com
- To: gcc-gnats at gcc dot gnu dot org
- Date: 29 May 2002 23:53:39 -0000
- Subject: optimization/6864: Optimizer infinite loop/memory runaway (on gdb sources)
- Reply-to: donnte at microsoft dot com
>Number: 6864
>Category: optimization
>Synopsis: Optimizer infinite loop/memory runaway (on gdb sources)
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed May 29 16:56:02 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: donnte@microsoft.com
>Release: 3.2 20020528 (experimental)
>Organization:
>Environment:
Interix.
>Description:
Goto in switch (presumably) confuses live register calculation.
Attached sample code, with marked goto (the only goto) turned on drives the compiler into an infinite loop (eating memory) at about 1145 in flow.c. (See "while (qhead != qtail)".) Removing the goto causes the compiler to terminate normally (but of course the code is incorrect.) The problem appeared between 5/10 and 5/28.
Sample code is somewhat stripped down from the original gdb source, removing irrelevant functions. Both the code before the switch and (obviously) the switch body are needed to repro. (This is all post-preprocessor, but a .c file for easy use of comments and #if for minimization.)
>How-To-Repeat:
Compile attached file, command line:
/dev/fs/C/home/donn.intel/gnu2.intel/local_bin/gcc -B/dev/fs/C/home/donn.intel/gnu2.intel/local_bin/ -c -g -O2 -D_ALL_SOURCE -implicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses -Wpointer-arith -Wuninitialized test.c -v --save-temps
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: