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

            Bug ID: 106738
           Summary: -Wlarger-than triggering for *.LASAN0 section
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: frolov.da at phystech dot edu
  Target Milestone: ---

The behaviour of the warning flag -Wlarger-than is described in documentationL

> warn whenever an object is defined whose size exceeds byte-size. 
> -Wlarger-than=‘PTRDIFF_MAX’ is enabled by default. Warnings controlled by the
> option can be disabled either by specifying byte-size of ‘SIZE_MAX’ or more 
> or 
> by -Wno-larger-than.
> Also warn for calls to bounded functions such as memchr or strnlen that
> specify a bound greater than the largest possible object, which is
> ‘PTRDIFF_MAX’ bytes by default.

I've tried to build the next example:

#include <assert.h>
void foo () {
    assert (false);
}

$ g++ -O2 -c -Wlarger-than=16 -fsanitize=address minimal.cpp

And got a warning:
cc1plus: warning: size of ‘*.LASAN0’ 192 bytes exceeds maximum object size 16
[-Wlarger-than=]

It looks like a false triggering. From my point of view the user should not
monitor the size of the analyzer section.

Moreover, if we would try to add another assert:

#include <assert.h>
void foo () {
    assert (false);
}
void goo () {
    assert (false);
}

Then we'll get:
cc1plus: warning: size of ‘*.LASAN0’ 256 bytes exceeds maximum object size 16
[-Wlarger-than=]

Reply via email to