------- Comment #19 from pluto at agmk dot net 2009-02-02 08:55 -------
(In reply to comment #16)
> Subject: Bug 38503
>
> Author: rguenth
> Date: Tue Jan 27 10:42:59 2009
> New Revision: 143700
this patch doesn't fix testcase that i found yesterday.
i found another testcase for gcc-4.4.0-20090130 not covered
by patch commited on january, the 27.
$ cat bug2.cpp
#include <boost/optional.hpp>
#include <string>
struct X
{
std::string s;
bool f;
};
extern boost::optional< X > x;
void foo( std::string const& );
bool bar()
{
if ( !x )
return false;
if ( x->f )
foo( x->s );
return false;
}
$ make
rm -f *.ii *.o *.s
/local/devel/toolchain44/x86_64-gnu-linux/bin/x86_64-gnu-linux-g++ -c -Wall -O2
-g0 -fPIC --save-temps -isystem ./sys-headers bug2.cpp
bug2.cpp: In function 'bool bar()':
bug2.cpp:14: warning: dereferencing pointer '<anonymous>' does break
strict-aliasing rules
bug2.cpp:14: note: initialized from here
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38503