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

            Bug ID: 106668
           Summary: ICE: friend function in struct declaration in generic
                    lambda
           Product: gcc
           Version: 12.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jeanmichael.celerier at gmail dot com
  Target Milestone: ---

Repro: foo.cpp

    void foo();
    bool ok = [] (auto x) {
      struct y {
          friend void foo();
      };
      return 0;
    }(0);


build:

    $ g++ foo.cpp

    <source>: In instantiation of '<lambda(auto:1)> [with auto:1 = int]':
    <source>:7:6:   required from here
    <source>:3:14: internal compiler error: Segmentation fault
        3 |       struct y {
          |              ^
    0x1ba65f9 internal_error(char const*, ...)
        ???:0
    0x878158 instantiate_decl(tree_node*, bool, bool)
        ???:0
    0x8936ab instantiate_pending_templates(int)
        ???:0
    0x79c46d c_parse_final_cleanups()
        ???:0
    Please submit a full bug report, with preprocessed source (by using
-freport-bug).
    Please include the complete backtrace with any bug report.
    See <https://gcc.gnu.org/bugs/> for instructions.
    ASM generation compiler returned: 1
    <source>: In instantiation of '<lambda(auto:1)> [with auto:1 = int]':
    <source>:7:6:   required from here
    <source>:3:14: internal compiler error: Segmentation fault
        3 |       struct y {
          |              ^
    0x1ba65f9 internal_error(char const*, ...)
        ???:0
    0x878158 instantiate_decl(tree_node*, bool, bool)
        ???:0
    0x8936ab instantiate_pending_templates(int)
        ???:0
    0x79c46d c_parse_final_cleanups()
        ???:0


It fails in c++14, 17 and 20 modes

Reply via email to