Hi,

when I build a coverage build of my software I get some undefined symbols
like global constructors keyed to src_utility_Tree.cpp_90B986A5_564B8955

I did some investigation and as you can see in the below test it only occurs
if I specify -Woverloaded-virtual.

What is strange, too is that if I save the preprocessed file (created with
the -E flag) the undefined symbol does NOT show up even if I
use -Woverloaded-virtual 

I think this is a bug in g++


/opt2/linux/ix86/x86_64-pc-linux-gnu/bin/g++ --version
g++ (GCC) 4.1.2
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


for flag in -Wpointer-arith -Woverloaded-virtual -Wcast-align ; do
  /opt2/linux/ix86/x86_64-pc-linux-gnu/bin/g++ -o /tmp/Tree-coverage.o \
 -c -O0 -g -m32 -D_REENTRANT -DACE_HAS_AIO_CALLS -DACE_USE_RCSID=0 \
 -DACE_HAS_EXCEPTIONS -DCOVERAGE -fprofile-arcs -ftest-coverage -fPIC \
 -Isrc -I/home/lothar/workspace/tradescapeAPI \
 -I/opt2/linux/i686/ACE/1.5.8/ACE_wrappers \
 -I/opt2/linux/i686/ACE/1.5.8/ACE_wrappers/TAO \
 -I/opt2/linux/i686/ACE/1.5.8/ACE_wrappers/TAO/orbsvcs \
 -I/opt2/linux/i686/include -I/opt2/linux/i686/include/boost-1_34 \
 -I/opt2/linux/i686/include/python2.5 ${flag} src/utility/Tree.cpp; \
 echo; echo ${flag}; nm -u -C /tmp/Tree-coverage.o;
done

-Wpointer-arith
         U __cxa_atexit
         U __dso_handle
         U __gcov_init
         U __gcov_merge_add
         U _GLOBAL_OFFSET_TABLE_
         U __gxx_personality_v0
         U std::ios_base::Init::Init()
         U std::ios_base::Init::~Init()

-Woverloaded-virtual
         U __cxa_atexit
         U __dso_handle
         U __gcov_init
         U __gcov_merge_add
         U global constructors keyed to
src_utility_Tree.cpp_90B986A5_564B8955
         U _GLOBAL_OFFSET_TABLE_
         U __gxx_personality_v0
         U std::ios_base::Init::Init()
         U std::ios_base::Init::~Init()

-Wcast-align
         U __cxa_atexit
         U __dso_handle
         U __gcov_init
         U __gcov_merge_add
         U _GLOBAL_OFFSET_TABLE_
         U __gxx_personality_v0
         U std::ios_base::Init::Init()
         U std::ios_base::Init::~Init()

Lothar

Reply via email to