https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84600

            Bug ID: 84600
           Summary: function inlining is confused by char * type cast
           Product: gcc
           Version: 6.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: popinet at basilisk dot fr
  Target Milestone: ---

Created attachment 43521
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43521&action=edit
test.c

The attached code fails when run using:

gcc -Wall -Wextra -O2 test.c -o test && ./test

using -O1 or -fno-strict-aliasing or not using inlining fixes the problem.
Switching to gcc versions < 6 or to clang 3.8.1 also fixes the problem, as do
the various modifications suggested as comments in the code.

The fact that uncommenting the (always true) condition fixes the problem is
particularly curious.

Thank you for your attention.

Reply via email to