Repository: google/glog

Issue #14: gcc 4.7.2, 4.8.3, 4.9.2 unit test failures on C++11
Created: 2015-04-08T17:05:53Z
Hi, I've encountered some issues with the demangle unit tests using glog-0.3.4 on the gcc family of compilers. This is being run on fedora 20, with the compilers as seen in the title, and with C++11.
What follows is the last 30ish lines from the make/make check output.
gcc 4.7.2
./src/logging_striplog_test.sh
In DBG mode; not checking strings
PASS
./demangle_unittest  # force to create lt-demangle_unittest
./src/demangle_unittest.sh
Mangled symbols (14 out of 801) found in demangle.dm:
_ZN9__gnu_cxx13new_allocatorIPN6google7LogSinkEE9constructIS3_JRKS3_EEEvPT_DpOT0_
_ZN9__gnu_cxx13new_allocatorISsE9constructISsJRKSsEEEvPT_DpOT0_
_ZN9__gnu_cxx13new_allocatorISsE9constructISsJSsEEEvPT_DpOT0_
_ZNSt16allocator_traitsISaIPN6google7LogSinkEEE12_S_constructIS2_JRKS2_EEENSt9enable_ifIXsrNS4_18__construct_helperIT_JDpT0_EEE5valueEvE4typeERS3_PSA_DpOSB_
_ZNSt16allocator_traitsISaIPN6google7LogSinkEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_
_ZNSt16allocator_traitsISaISsEE12_S_constructISsJRKSsEEENSt9enable_ifIXsrNS1_18__construct_helperIT_JDpT0_EEE5valueEvE4typeERS0_PS7_DpOS8_
_ZNSt16allocator_traitsISaISsEE12_S_constructISsJSsEEENSt9enable_ifIXsrNS1_18__construct_helperIT_JDpT0_EEE5valueEvE4typeERS0_PS5_DpOS6_
_ZNSt16allocator_traitsISaISsEE9constructISsJRKSsEEEvRS0_PT_DpOT0_
_ZNSt16allocator_traitsISaISsEE9constructISsJSsEEEvRS0_PT_DpOT0_
_ZNSt6vectorIPN6google7LogSinkESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_
_ZNSt6vectorISsSaISsEE12emplace_backIJSsEEEvDpOT_
_ZNSt6vectorISsSaISsEE19_M_emplace_back_auxIJRKSsEEEvDpOT_
_ZNSt6vectorISsSaISsEE19_M_emplace_back_auxIJSsEEEvDpOT_
_ZSt10_ConstructISsJSsEEvPT_DpOT0_
Mangled symbols (14 out of 801) found in demangle.dm

gcc 4.8.3
./src/demangle_unittest.sh
Mangled symbols (17 out of 800) found in demangle.dm:
_ZN9__gnu_cxx13new_allocatorIPN6google7LogSinkEE9constructIS3_JRKS3_EEEvPT_DpOT0_
_ZN9__gnu_cxx13new_allocatorISsE9constructISsJRKSsEEEvPT_DpOT0_
_ZN9__gnu_cxx13new_allocatorISsE9constructISsJSsEEEvPT_DpOT0_
_ZNSt16allocator_traitsISaIPN6google7LogSinkEEE12_S_constructIS2_JRKS2_EEENSt9enable_ifIXsrNS4_18__construct_helperIT_JDpT0_EEE5valueEvE4typeERS3_PSA_DpOSB_
_ZNSt16allocator_traitsISaIPN6google7LogSinkEEE9constructIS2_IRKS2_EEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS3_PT_DpOS8_
_ZNSt16allocator_traitsISaIPN6google7LogSinkEEE9constructIS2_JRKS2_EEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS3_PT_DpOS8_
_ZNSt16allocator_traitsISaISsEE12_S_constructISsJRKSsEEENSt9enable_ifIXsrNS1_18__construct_helperIT_JDpT0_EEE5valueEvE4typeERS0_PS7_DpOS8_
_ZNSt16allocator_traitsISaISsEE12_S_constructISsJSsEEENSt9enable_ifIXsrNS1_18__construct_helperIT_JDpT0_EEE5valueEvE4typeERS0_PS5_DpOS6_
_ZNSt16allocator_traitsISaISsEE9constructISsIRKSsEEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS0_PT_DpOS5_
_ZNSt16allocator_traitsISaISsEE9constructISsISsEEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS0_PT_DpOS3_
_ZNSt16allocator_traitsISaISsEE9constructISsJRKSsEEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS0_PT_DpOS5_
_ZNSt16allocator_traitsISaISsEE9constructISsJSsEEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS0_PT_DpOS3_
_ZNSt6vectorIPN6google7LogSinkESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_
_ZNSt6vectorISsSaISsEE12emplace_backIJSsEEEvDpOT_
_ZNSt6vectorISsSaISsEE19_M_emplace_back_auxIJRKSsEEEvDpOT_
_ZNSt6vectorISsSaISsEE19_M_emplace_back_auxIJSsEEEvDpOT_
_ZSt10_ConstructISsJSsEEvPT_DpOT0_
Mangled symbols (17 out of 800) found in demangle.dm

gcc 4.9.2
./src/demangle_unittest.sh
Mangled symbols (20 out of 799) found in demangle.dm:
_ZN9__gnu_cxx13new_allocatorIPN6google7LogSinkEE9constructIS3_JRKS3_EEEvPT_DpOT0_
_ZN9__gnu_cxx13new_allocatorISsE9constructISsJRKSsEEEvPT_DpOT0_
_ZN9__gnu_cxx13new_allocatorISsE9constructISsJSsEEEvPT_DpOT0_
_ZNSt16allocator_traitsISaIPN6google7LogSinkEEE10_S_destroyIS2_EENSt9enable_ifIXsrSt6__and_IJNS4_16__destroy_helperIT_E4typeEEE5valueEvE4typeERS3_PS9_
_ZNSt16allocator_traitsISaIPN6google7LogSinkEEE12_S_constructIS2_JRKS2_EEENSt9enable_ifIXsrSt6__and_IJNS4_18__construct_helperIT_JDpT0_EE4typeEEE5valueEvE4typeERS3_PSB_DpOSC_
_ZNSt16allocator_traitsISaIPN6google7LogSinkEEE9constructIS2_IRKS2_EEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS3_PT_DpOS8_
_ZNSt16allocator_traitsISaIPN6google7LogSinkEEE9constructIS2_JRKS2_EEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS3_PT_DpOS8_
_ZNSt16allocator_traitsISaISsEE10_S_destroyISsEENSt9enable_ifIXsrSt6__and_IJNS1_16__destroy_helperIT_E4typeEEE5valueEvE4typeERS0_PS6_
_ZNSt16allocator_traitsISaISsEE12_S_constructISsJRKSsEEENSt9enable_ifIXsrSt6__and_IJNS1_18__construct_helperIT_JDpT0_EE4typeEEE5valueEvE4typeERS0_PS8_DpOS9_
_ZNSt16allocator_traitsISaISsEE12_S_constructISsJSsEEENSt9enable_ifIXsrSt6__and_IJNS1_18__construct_helperIT_JDpT0_EE4typeEEE5valueEvE4typeERS0_PS6_DpOS7_
_ZNSt16allocator_traitsISaISsEE9constructISsIRKSsEEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS0_PT_DpOS5_
_ZNSt16allocator_traitsISaISsEE9constructISsISsEEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS0_PT_DpOS3_
_ZNSt16allocator_traitsISaISsEE9constructISsJRKSsEEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS0_PT_DpOS5_
_ZNSt16allocator_traitsISaISsEE9constructISsJSsEEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS0_PT_DpOS3_
_ZNSt6vectorIPN6google7LogSinkESaIS2_EE19_M_emplace_back_auxIJRKS2_EEEvDpOT_
_ZNSt6vectorISsSaISsEE12emplace_backIJSsEEEvDpOT_
_ZNSt6vectorISsSaISsEE19_M_emplace_back_auxIJRKSsEEEvDpOT_
_ZNSt6vectorISsSaISsEE19_M_emplace_back_auxIJSsEEEvDpOT_
_ZSt10_ConstructIPN6google7LogSinkEJS2_EEvPT_DpOT0_
_ZSt10_ConstructISsJSsEEvPT_DpOT0_
Mangled symbols (20 out of 799) found in demangle.dm

Duplicate issue #40: demangle_unittest.sh fails with GCC 5 (configured --with-default-libstdcxx-abi=new, which is the default)
Created: 2015-07-15T17:58:46Z
./src/demangle_unittest.sh
Mangled symbols (21 out of 796) found in demangle.dm:
_ZN3fLS13FLAGS_log_dirB5cxx11E
_ZN3fLS13FLAGS_vmoduleB5cxx11E
_ZN3fLS14FLAGS_log_linkB5cxx11E
_ZN3fLS15FLAGS_logmailerB5cxx11E
_ZN3fLS20FLAGS_alsologtoemailB5cxx11E
_ZN3fLS22FLAGS_log_backtrace_atB5cxx11E
_ZN3fLS25dont_pass0toDEFINE_stringB5cxx11EPcPKc
_ZN6google12Check_GEImplB5cxx11EiiPKc
_ZN6google12Check_LTImplB5cxx11EiiPKc
_ZN6google14LogDestination10addresses_B5cxx11E
_ZN6google14LogDestination8hostnameB5cxx11Ev
_ZN6google14LogDestination9hostname_B5cxx11E
ZN6google19CheckstrcmptrueImplB5cxx11EPKcS1_S1
ZN6google20CheckstrcmpfalseImplB5cxx11EPKcS1_S1
_ZN6google21GetLoggingDirectoriesB5cxx11Ev
ZN6google23CheckstrcasecmptrueImplB5cxx11EPKcS1_S1
ZN6google24CheckstrcasecmpfalseImplB5cxx11EPKcS1_S1
_ZN6google24glog_internal_namespace_10MyUserNameB5cxx11Ev
_ZN6google4base21CheckOpMessageBuilder9NewStringB5cxx11Ev
_ZN6google7LogSink8ToStringB5cxx11EiPKciPK2tmS2_m
_ZN6google8StrErrorB5cxx11Ei
Mangled symbols (21 out of 796) found in demangle.dm
Makefile:2060: recipe for target 'demangle_unittest_sh' failed
make[3]: *** [demangle_unittest_sh] Error 1
make[3]: Leaving directory '/scratch/packages/tmp/google-glog-0.3.4'
Makefile:1906: recipe for target 'check-am' failed
make[2]: *** [check-am] Error 2

Closing comment (2015-08-12T09:09:12Z): Seems related to #14, and like the set of GCC versions there 5.0 has a different set of C++ symbols that fail the unmangling.