https://sourceware.org/bugzilla/show_bug.cgi?id=32527

            Bug ID: 32527
           Summary: elfutils build warnings when building GCC -O3
           Product: elfutils
           Version: unspecified
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P2
         Component: general
          Assignee: unassigned at sourceware dot org
          Reporter: phi.debian at gmail dot com
                CC: elfutils-devel at sourceware dot org
  Target Milestone: ---

Hi

I used the component 'General' because the component 'libcpu' don't exist in
the selection list.

When building on ubuntu 24.04 GCC (and g++) 14.2.0 with options -m64 -O3 -g1 on
x86_64 and s390, we got warnings, yet make check show no errors, this is why I
marked this as 'enhancement'

The warnings occurs when building libcpu/i386_lex.o from i386_lex.l.
-------------------------
In function ‘i386__init_buffer’,
    inlined from ‘i386_restart’ at i386_lex.c:1699:2:
i386_lex.c:1815:25: warning: potential null pointer dereference
[-Wnull-dereference]
 1815 |         b->yy_bs_column = 0;
      |         ~~~~~~~~~~~~~~~~^~~
i386_lex.c:1814:25: warning: potential null pointer dereference
[-Wnull-dereference]
...
-------------------------

Indeed this is not critical at all, but I try to build with no warnings.

The warning is due to the flex skeleton for lexer that use a pointer from
malloc() that could be NULL, even though this never happen except may be on
stressed systems, it is still possible, the punishment would be a core dump
though. This occurs only with gcc -O3, -O2 don't show this, clang never show
it.

I think gcc -O3 is right though, it do more inlining and discover the
potentially faulty unchecked malloc (we use the std def yymalloc == malloc)

Since we have little chance to get the lexer skeleton fixed from flex team, a
possible workaround is to add the option  -Wno-null-dereference in the file
elfutils/libcpu/Makefile.am like this

i386_lex_CFLAGS = -Wno-unused-label -Wno-unused-function -Wno-sign-compare \
                  -Wno-implicit-fallthrough -Wno-null-dereference

By doing so, the warning disapear, we don't jeopardise anything, and it is
cleaner for the one who wants to build the perf path with no warnings.

Cheers,
Phi

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to