[Bug c/80922] New: #pragma diagnostic ignored not honoured with -flto
thiago at kde dot org
gcc-bugzilla@gcc.gnu.org
Tue May 30 23:42:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80922
Bug ID: 80922
Summary: #pragma diagnostic ignored not honoured with -flto
Product: gcc
Version: 7.0.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: thiago at kde dot org
Target Milestone: ---
$ cat f1.cpp
#pragma GCC diagnostic ignored "-Wfree-nonheap-object"
void myfree(void *ptr)
{
__builtin_free(ptr);
}
$ cat f2.cpp
void myfree(void *);
static char c;
int main()
{
myfree(&c);
}
This code is intentionally bogus just to trigger the warning. The situation
that caused this was correct code, with a false positive warning I was trying
to suppress.
$ gcc -O2 -include f1.cpp f2.cpp
[no warning, as expected]
$ gcc -O2 -flto f1.cpp f2.cpp
In function ‘myfree.constprop’,
inlined from ‘main’ at f2.cpp:6:11:
f1.cpp:4:19: warning: attempt to free a non-heap object ‘c’
[-Wfree-nonheap-object]
__builtin_free(ptr);
^
More information about the Gcc-bugs
mailing list