https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107335
Bug ID: 107335 Summary: call to throw_bad_cast even with -fno-exceptions Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: hiraditya at msn dot com Target Milestone: --- Testcase: #include<iostream> void foo() { std::cout << std::endl; } $ g++ -std=c++17 -O3 -fno-exceptions ```asm foo(): mov rax, QWORD PTR std::cout[rip] push rbx mov rax, QWORD PTR [rax-24] mov rbx, QWORD PTR std::cout[rax+240] test rbx, rbx je .L10 cmp BYTE PTR [rbx+56], 0 je .L5 movsx esi, BYTE PTR [rbx+67] .L6: mov edi, OFFSET FLAT:std::cout call std::basic_ostream<char, std::char_traits<char> >::put(char) pop rbx mov rdi, rax jmp std::basic_ostream<char, std::char_traits<char> >::flush() .L5: mov rdi, rbx call std::ctype<char>::_M_widen_init() const mov rax, QWORD PTR [rbx] mov esi, 10 mov rax, QWORD PTR [rax+48] cmp rax, OFFSET FLAT:_ZNKSt5ctypeIcE8do_widenEc je .L6 mov rdi, rbx call rax movsx esi, al jmp .L6 .L10: call std::__throw_bad_cast() <----------- call to __throw_bad_cast _GLOBAL__sub_I_foo(): sub rsp, 8 mov edi, OFFSET FLAT:_ZStL8__ioinit call std::ios_base::Init::Init() [complete object constructor] mov edx, OFFSET FLAT:__dso_handle mov esi, OFFSET FLAT:_ZStL8__ioinit mov edi, OFFSET FLAT:_ZNSt8ios_base4InitD1Ev add rsp, 8 jmp __cxa_atexit ```