This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/59982] New: Loop optimizer generates an infinite loop
- From: "ian at g0tcd dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 29 Jan 2014 12:22:08 +0000
- Subject: [Bug c/59982] New: Loop optimizer generates an infinite loop
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59982
Bug ID: 59982
Summary: Loop optimizer generates an infinite loop
Product: gcc
Version: 4.8.1
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: ian at g0tcd dot com
Created attachment 31979
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=31979&action=edit
Small source file exhibiting the problem
If a for loop has some sort of error check to break out of the loop, which
includes the loop control variable in the condition (e.g. as an array
subscript), then the proper loop termination condition is not evaluated which
can result in an infinite loop.
Version of gcc is a 4.8.1 cross-compiler targeting the Arm processor, hosted on
x86:
arm-ipa-linux-gnueabi-gcc (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The attached source code generates an infinite loop for the following
invocations:
arm-ipa-linux-gnueabi-gcc forLoop.c -o forLoop -O3
arm-ipa-linux-gnueabi-gcc forLoop.c -o forLoop -O2
These invocations produce correct code:
arm-ipa-linux-gnueabi-gcc forLoop.c -o forLoop
arm-ipa-linux-gnueabi-gcc forLoop.c -o forLoop -O1
arm-ipa-linux-gnueabi-gcc forLoop.c -o forLoop -O3
-fno-aggressive-loop-optimizations