https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98800
Patrick Palka <ppalka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|ICE on invalid use of |[8/9/10/11 Regression] ICE
|non-static member function |on invalid use of
|in trailing return type |non-static member function
|since r251438 |in trailing return type
| |since r8-2724
Keywords| |ice-on-invalid-code
CC| |jason at gcc dot gnu.org
Known to fail| |10.2.0, 11.0, 8.4.0, 9.3.0
Known to work| |7.5.0
--- Comment #1 from Patrick Palka <ppalka at gcc dot gnu.org> ---
GCC 7.5 rejects with:
<source>: In function 'int main()':
<source>:7:29: error: no matching function for call to 'tmp::func<int>()'
int main() { tmp::func<int>(); }
^
<source>:4:34: note: candidate: template<class E> static
enable_if_t<is_integral<E>()> tmp::func()
template <class E> static auto func() -> enable_if_t<is_integral<E>()>;
^~~~
<source>:4:34: note: template argument deduction/substitution failed:
<source>: In substitution of 'template<class E> static
enable_if_t<is_integral<E>()> tmp::func() [with E = int]':
<source>:7:29: required from here
<source>:4:70: error: cannot call member function 'constexpr bool
tmp::is_integral() [with <template-parameter-1-1> = int]' without object
template <class E> static auto func() -> enable_if_t<is_integral<E>()>;
~~~~~~~~~~~~~~^~