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

            Bug ID: 101840
           Summary: Friendship must be extended on default argument
                    initializer
           Product: gcc
           Version: 11.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: fchelnokov at gmail dot com
  Target Milestone: ---

The following program is correct:
```
class U{ ~U(); friend void foo(U); };
void foo(U = {});
```

But GCC rejects it with the error:
```
error: 'U::~U()' is private within this context
    2 | void foo(U = {});
      |                ^
```
Clang and MSVC accept it:
https://gcc.godbolt.org/z/eGxYGdzj3

Reply via email to