[Bug tree-optimization/98512] New: “#pragma GCC diagnostic ignored” ineffective in conjunction with alias attribute

fw at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Jan 4 13:47:54 GMT 2021


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

            Bug ID: 98512
           Summary: “#pragma GCC diagnostic ignored” ineffective in
                    conjunction with alias attribute
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: fw at gcc dot gnu.org
                CC: msebor at gcc dot gnu.org
  Target Milestone: ---

The following test case has been extracted from a glibc build failure on
powerpc64le, but it appears to be target-independent.

This produces a -WWstringop-overread warning at -O2, even though the warning
has been suppressed.

void *
__rawmemchr_ppc (const void *s, int c)
{
#pragma GCC diagnostics push
#pragma GCC diagnostic ignored "-Wstringop-overflow="
#pragma GCC diagnostic ignored "-Wstringop-overread"
  if (c != 0)
    return __builtin_memchr (s, c, (unsigned long)-1);
#pragma GCC diagnostics pop
  return (char *)s + __builtin_strlen (s);
}
extern __typeof (__rawmemchr_ppc) __EI___rawmemchr_ppc
  __attribute__((alias ("__rawmemchr_ppc")));

t.c:8:12: warning: ‘__builtin_memchr’ specified bound 18446744073709551615
exceeds maximum object size 9223372036854775807 [-Wstringop-overread]           
    8 |     return __builtin_memchr (s, c, (unsigned long)-1);                 
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Seen with: 11.0.0 20210104 (experimental)


More information about the Gcc-bugs mailing list