]> git.ipfire.org Git - thirdparty/gcc.git/commit
analyzer: Bail out on function pointer for -Wanalyzer-allocation-size
authorStefan Schulze Frielinghaus <stefansf@linux.ibm.com>
Fri, 12 Apr 2024 09:06:24 +0000 (11:06 +0200)
committerStefan Schulze Frielinghaus <stefansf@linux.ibm.com>
Fri, 12 Apr 2024 09:06:24 +0000 (11:06 +0200)
commit67e1433a94f8ca82e2c36b79af44256430c73c38
tree7ad4b110ffe53064f1c4f5eeb001cac4c3743ce6
parent8c6f13d2cc1884921e7c532e03786f0344bededd
analyzer: Bail out on function pointer for -Wanalyzer-allocation-size

On s390 pr94688.c is failing due to excess error

pr94688.c:6:5: warning: allocated buffer size is not a multiple of the pointee's size [CWE-131] [-Wanalyzer-allocation-size]

This is because on s390 functions are by default aligned to an 8-byte
boundary and during function type construction size is set to function
boundary.  Thus, for the assignment

a.0_1 = (void (*<T237>) ()) &a;

we have that the right-hand side is pointing to a 4-byte memory region
whereas the size of the function pointer is 8 byte and a warning is
emitted.

Since -Wanalyzer-allocation-size is not about pointers to code, bail out
early.

gcc/analyzer/ChangeLog:

* region-model.cc (region_model::check_region_size): Bail out
early on function pointers.
gcc/analyzer/region-model.cc