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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2023-03-27
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
           Keywords|ice-on-valid-code           |ice-on-invalid-code,
                   |                            |needs-bisection

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note I think this is invalid code.

With an instantation, GCC 12 (and before) does reject it:
```
template<typename T>
auto x = [](){ x<int>(); };
auto y = x<int>;
```
```
<source>: In instantiation of 'auto x<int>':
<source>:3:10:   required from here
<source>:2:16: error: use of 'x<int>' before deduction of 'auto'
    2 | auto x = [](){ x<int>(); };
      |                ^~~~~~
<source>:2:6: error: 'x<int>' has incomplete type
    2 | auto x = [](){ x<int>(); };
      |      ^
<source>:2:22: error: invalid use of 'auto'
    2 | auto x = [](){ x<int>(); };
      |                ~~~~~~^~
```
Note clang rejects it even without an instantation.

Reply via email to