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

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Clang gives (which does not make sense at all):
<source>:12:46: error: declaration of constexpr static data member 'High'
requires an initializer
template<> constexpr Port<7>::Value Port<7>::High;
                                             ^
<source>:13:46: error: declaration of constexpr static data member 'Low'
requires an initializer
template<> constexpr Port<7>::Value Port<7>::Low;
                                             ^
2 errors generated.


Of course with -std=c++20 clang gies a reasonable error message:
source>:12:46: error: inline variable 'Port<7>::High' is not defined
template<> constexpr Port<7>::Value Port<7>::High;
                                             ^
<source>:18:7: note: used here
  if (High == value)
      ^
<source>:13:46: error: inline variable 'Port<7>::Low' is not defined
template<> constexpr Port<7>::Value Port<7>::Low;
                                             ^
<source>:26:26: note: used here
  Port<7>::set (Port<7>::Low);
                         ^

Reply via email to