https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103563
Bug ID: 103563 Summary: ostream operator<< resolved to variant containing type resulting in stack overflow Product: gcc Version: 11.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: samuel.hangouet at gmail dot com Target Milestone: --- Created attachment 51928 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51928&action=edit Minimal test case. $ g++-11 --version g++-11 (Ubuntu 11.1.0-1ubuntu1~20.04) 11.1.0 (...) $ g++-11 -std=c++2a test.cpp -o test $ ./test Segmentation fault (core dumped) In my opinion, this file should not compile as no operator<< is provided for custom type V. Instead, the operator<< taking the variant which contains V is called, resulting in stack overflow at runtime.