STL warnings/errors in gcc was always a mess but with gcc4 I see they are now really impossible to understand. Here is an excerpt : 90% compiling /opt/development/kde/KDE/kdepim/certmanager/lib/kleo/multideletejob.cpp /usr/lib/gcc/x86_64-linux/4.0.1/../../../../include/c++/4.0.1/bits/vector.tcc: In member function ‘std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = GpgME::Key, _Alloc = std::allocator<GpgME::Key>]’: /usr/lib/gcc/x86_64-linux/4.0.1/../../../../include/c++/4.0.1/bits/vector.tcc:141: warning: control may reach end of non-void function ‘typename _Alloc::pointer std::vector<_Tp, _Alloc>::_M_allocate_and_copy(size_t, _ForwardIterator, _ForwardIterator) [with _ForwardIterator = __gnu_cxx::__normal_iterator<const GpgME::Key*, std::vector<GpgME::Key, std::allocator<GpgME::Key> > >, _Tp = GpgME::Key, _Alloc = std::allocator<GpgME::Key>]’ being inlined /usr/lib/gcc/x86_64-linux/4.0.1/../../../../include/c++/4.0.1/bits/stl_uninitialized.h:113: warning: control may reach end of non-void function ‘_ForwardIterator std::__uninitialized_copy_aux(_InputIterator, _InputIterator, _ForwardIterator, __false_type) [with _InputIterator = __gnu_cxx::__normal_iterator<const GpgME::Key*, std::vector<GpgME::Key, std::allocator<GpgME::Key> > >, _ForwardIterator = GpgME::Key*]’ being inlined As you can see in the warning I can't see which function is problematic. I only see references to STL headers installed by gcc which is useless.
This is a warning about dead code really, the problem comes from -fno-exceptions and try/catch being defined as "if (true)" and "else if (false)". *** This bug has been marked as a duplicate of 19699 ***