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

Reply via email to