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

--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
Created attachment 44334
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44334&action=edit
almost reduced test-case

$ g++ segfault.ii -pthread -lboost_log -O3 -g -fprintf-return-value && valgrind
./a.out

==29544== Invalid write of size 8
==29544==    at 0x400FC7: std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >
af::__to_xstring<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >, char>(int (*)(char*, unsigned long, char const*,
__va_list_tag*), long, char const*, ...) [clone .constprop.9] (in /tmp/a.out)
==29544==    by 0x400D78: to_string (<stdin>:100)
==29544==    by 0x400D78: main (<stdin>:345)
==29544==  Address 0x1fff001000 is not stack'd, malloc'd or (recently) free'd
==29544== 
==29544== 
==29544== Process terminating with default action of signal 11 (SIGSEGV):
dumping core
==29544==  Access not within mapped region at address 0x1FFF001000
==29544==    at 0x400FC7: std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >
af::__to_xstring<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >, char>(int (*)(char*, unsigned long, char const*,
__va_list_tag*), long, char const*, ...) [clone .constprop.9] (in /tmp/a.out)
==29544==    by 0x400D78: to_string (<stdin>:100)
==29544==    by 0x400D78: main (<stdin>:345)

I'm suspecting IPA CP clone somehow smashing varargs?

Reply via email to