[Bug c++/78044] New: -Wmaybe-uninitialized and -O2: false positive with boost::optional
romain.geissler at amadeus dot com
gcc-bugzilla@gcc.gnu.org
Wed Oct 19 19:26:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78044
Bug ID: 78044
Summary: -Wmaybe-uninitialized and -O2: false positive with
boost::optional
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: romain.geissler at amadeus dot com
Target Milestone: ---
Created attachment 39843
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39843&action=edit
test.cpp
Hi,
I am having a false positive when using -O2 and -Wmaybe-uninitialized with the
latest gcc 6 (g++ (GCC) 6.2.1 20160916 (Red Hat 6.2.1-2) from Fedora 24) with
boost::optional. Unfortunately my attempt to reduce the test case by trying to
extract the relevant boost parts failed.
Please find attached the reproducer test.cpp, that includes boost/optional.hpp
(tested with boost 1.60 and 1.61, I have a warning in both cases).
g++ -std=gnu++14 -O2 -Wall -c -o test.o test.cpp
test.cpp: In function 'void someFunction(const void*)':
test.cpp:22:16: warning: '*((void*)& aOptional +4)' may be used uninitialized
in this function [-Wmaybe-uninitialized]
Optional_t aOptional;
^~~~~~~~~
In "someFunction()" the boost::optional value that is being passed and copied
is definitely not uninitialized.
You can also find attached the preprocessor output in test.i
Cheers,
Romain
More information about the Gcc-bugs
mailing list