g++-current generates messages which 1) contains compiler generated symbols 2) refers to gcc internal header (stl_tree.h)
[EMAIL PROTECTED] gcc_err]# g++ -Wall -c -O3 test.cpp test.cpp: In member function 'void test::bar(std::_List_iterator<KeyPairPtr<int, int> >&)': test.cpp:14: warning: dereferencing pointer '__x.13' does break strict-aliasing rules /usr/local/gcc_current/lib/gcc/i686-pc-linux-gnu/4.4.0/include/c++/bits/stl_tree.h:530: note: initialized from here test.cpp:14: warning: dereferencing pointer '__x.13' does break strict-aliasing rules /usr/local/gcc_current/lib/gcc/i686-pc-linux-gnu/4.4.0/include/c++/bits/stl_tree.h:530: note: initialized from here [EMAIL PROTECTED] gcc_err]# g++ -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../gcc_current/configure --prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-version-specific-runtime-libs --enable-languages=c,c++ : (reconfigured) ../gcc_current/configure --prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-version-specific-runtime-libs --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc_current/configure --prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-version-specific-runtime-libs --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc_current/configure --prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-version-specific-runtime-libs --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc_current/configure --prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-version-specific-runtime-libs --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc_current/configure --prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-version-specific-runtime-libs --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc_current/configure --prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-version-specific-runtime-libs --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc_current/configure --prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-version-specific-runtime-libs --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc_current/configure --prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-version-specific-runtime-libs --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc_current/configure --prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-version-specific-runtime-libs --enable-languages=c,c++ --no-create --no-recursion : (reconfigured) ../gcc_current/configure --prefix=/usr/local/gcc_current --enable-shared --enable-threads=posix --enable-checking=release --enable-__cxa_atexit --enable-version-specific-runtime-libs --enable-languages=c,c++ --no-create --no-recursion Thread model: posix gcc version 4.4.0 20081210 (experimental) [trunk revision 142645] (GCC) [EMAIL PROTECTED] gcc_err]# uname -a Linux localhost.localdomain 2.6.26.6-49.fc8 #1 SMP Fri Oct 17 15:59:36 EDT 2008 i686 i686 i386 GNU/Linux [EMAIL PROTECTED] gcc_err]# cat test.cpp #include <set> #include <list> template<class Key, class Info> class KeyPairPtr { public: typedef typename std::pair< const Key, Info > Pair; Pair *pair_ptr; }; template<class Key, class Info> bool operator <( const KeyPairPtr<Key, Info> &left, const KeyPairPtr<Key, Info> &right ) { return left.pair_ptr < right.pair_ptr; } typedef KeyPairPtr<int,int> key_val; class test { test(); void bar( std::list<key_val>::iterator &ci ); std::set<key_val> foo; }; void test::bar( std::list<key_val>::iterator &ci ) { test ctx; ctx.foo.insert( *ci ); }