https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90435
Bug ID: 90435
Summary: gcc generate infinite loop code when using -O2 or -O3
Product: gcc
Version: 8.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: pangqingyuan1991 at 163 dot com
Target Milestone: ---
Created attachment 46342
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46342&action=edit
source code
I am writing a simple memory allocator now. When I compile it with -O0 or -O1,
it works as expected. But when I use -O2 or -O3. The example code seems run
into dead loop and never finish.
Also try gcc-6.5.0 gcc-7.4.0 gcc-9.1.0 . Since that all gcc versions have such
problem.
But clang-6 and clang-8 work well as expected.
Compiling: gcc pmalloc.c -O2 -o ppp -ldl
Running: PMALLOC_SIZE=128M ./ppp