[Bug c/110609] New: Bogus -Wmismatched-dealloc when allocator defined & used in same TU w/ -fPIC -fno-semantic-interposition
andres at anarazel dot de
gcc-bugzilla@gcc.gnu.org
Mon Jul 10 00:11:14 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110609
Bug ID: 110609
Summary: Bogus -Wmismatched-dealloc when allocator defined &
used in same TU w/ -fPIC -fno-semantic-interposition
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: andres at anarazel dot de
Target Milestone: ---
Hi,
Whenever an allocator function annotated with attribute((malloc(freelike)) is
defined and used in the same translation unit and -fno-semantic-interposition
-fPIC are used, bogus mismatched alloc/free warnings ensue.
----
void somefree(int *);
__attribute__((__malloc__(somefree, 1)))
int *somealloc(void) {
return 0;
}
void other(void) {
int *v = somealloc();
somefree(v);
}
---
gcc -Wmismatched-dealloc -fno-semantic-interposition -fPIC -o a.out -c fd.c.i
fd.c.i: In function ‘other’:
fd.c.i:10:3: warning: ‘somefree’ called on pointer returned from a mismatched
allocation function [-Wmismatched-dealloc]
10 | somefree(v);
| ^~~~~~~~~~~
fd.c.i:9:12: note: returned from ‘somealloc.localalias’
9 | int *v = somealloc();
| ^~~~~~~~~~~
This appears to happen with all versions supporting -Wmismatched-dealloc,
including today's git head at 3b007164b3e.
Regards,
Andres
More information about the Gcc-bugs
mailing list