optimization/6864: Optimizer infinite loop/memory runaway (on gdb sources)
donnte@microsoft.com
donnte@microsoft.com
Wed May 29 16:56:00 GMT 2002
>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:
More information about the Gcc-bugs
mailing list