From: Richard Guenther Date: Mon, 2 Feb 2009 10:39:12 +0000 (+0000) Subject: re PR tree-optimization/38937 (dereferencing pointer '' does break strict... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ab05897240fb27993741138f137dd096d003058e;p=gcc.git re PR tree-optimization/38937 (dereferencing pointer '' does break strict-aliasing) 2009-02-02 Richard Guenther PR tree-optimization/38937 * g++.dg/warn/Wstrict-aliasing-bogus-escape.C: New testcase. From-SVN: r143864 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d5040061715..249f717fd4d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-02-02 Richard Guenther + + PR tree-optimization/38937 + * g++.dg/warn/Wstrict-aliasing-bogus-escape.C: New testcase. + 2009-02-01 Paolo Carlini PR c++/39053 diff --git a/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-escape.C b/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-escape.C new file mode 100644 index 00000000000..9ea61987705 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-bogus-escape.C @@ -0,0 +1,30 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -Wstrict-aliasing" } */ + +#include +#include + +class A; + +class B { +public: + void foo(A&); + std::string s; +}; + +class A { +public: + A& qaz() { + l.push_back( new A() ); + return *l.back(); + } + std::list l; +}; + +void bar() +{ + A a; + B b; + b.foo(a.qaz()); +} +