https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111300

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Possibly relevant, compiling anything including <stacktrace> with
-Wsystem-headers -Wabi gives these warnings:

/home/jwakely/gcc/13/include/c++/13.2.1/stacktrace: At global scope:
/home/jwakely/gcc/13/include/c++/13.2.1/stacktrace:201:24: warning: the mangled
name of 'constexpr std::stacktrace_entry::_M_get_info(std::string*,
std::string*, int*) const::<lambda(void*, std::stacktrace_entry::uintptr_t,
const char*, std::stacktrace_entry::uintptr_t,
std::stacktrace_entry::uintptr_t)>::operator void (*)(void*,
std::stacktrace_entry::uintptr_t, const char*,
std::stacktrace_entry::uintptr_t, std::stacktrace_entry::uintptr_t)() const'
changed between '-fabi-version=10'
('_ZZNKSt16stacktrace_entry11_M_get_infoEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_PiENKUlPvmPKcmmE0_cvPFvS8_mSA_mmEEv')
and '-fabi-version=18'
('_ZZNKSt16stacktrace_entry11_M_get_infoEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_PiENKUlPvmPKcmmE_cvPFvS8_mSA_mmEEv')
[-Wabi]
  201 |           auto __cb2 = [](void* __data, uintptr_t, const char*
__symname,
      |                        ^
/home/jwakely/gcc/13/include/c++/13.2.1/stacktrace:201:24: warning: the mangled
name of 'static constexpr void std::stacktrace_entry::_M_get_info(std::string*,
std::string*, int*) const::<lambda(void*, std::stacktrace_entry::uintptr_t,
const char*, std::stacktrace_entry::uintptr_t,
std::stacktrace_entry::uintptr_t)>::_FUN(void*,
std::stacktrace_entry::uintptr_t, const char*,
std::stacktrace_entry::uintptr_t, std::stacktrace_entry::uintptr_t)' changed
between '-fabi-version=10'
('_ZZNKSt16stacktrace_entry11_M_get_infoEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_PiENUlPvmPKcmmE0_4_FUNES8_mSA_mm')
and '-fabi-version=18'
('_ZZNKSt16stacktrace_entry11_M_get_infoEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_PiENUlPvmPKcmmE_4_FUNES8_mSA_mm')
[-Wabi]
/home/jwakely/gcc/13/include/c++/13.2.1/stacktrace:201:24: warning: the mangled
name of 'std::stacktrace_entry::_M_get_info(std::string*, std::string*, int*)
const::<lambda(void*, std::stacktrace_entry::uintptr_t, const char*,
std::stacktrace_entry::uintptr_t, std::stacktrace_entry::uintptr_t)>' changed
between '-fabi-version=10'
('_ZZNKSt16stacktrace_entry11_M_get_infoEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_PiENKUlPvmPKcmmE0_clES8_mSA_mm')
and '-fabi-version=18'
('_ZZNKSt16stacktrace_entry11_M_get_infoEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_PiENKUlPvmPKcmmE_clES8_mSA_mm')
[-Wabi]

e.g. g++ -x c++ /dev/null -include stacktrace -Wsystem-headers -std=c++23
-Wabi=10
(either using GCC 13 built with --enable-libstdcxx-backtrace or using GCC trunk
before r14-3812-gb96b554592c5cb which moved the lambda out of the header into
libstdc++exp.a)

Those -Wabi warnings might be related to the "previous mangle" errors in the
modules test.

Reply via email to