[Bug c++/97544] -Wtype-limits triggered for comparison to template argument

2020-10-23 Thread erenon2 at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97544

--- Comment #4 from Benedek Thaler  ---
FTR, Using (N != 0 && i < N) does not silence the warning.
https://gcc.godbolt.org/z/WqaT3G

[Bug c++/97544] New: -Wtype-limits triggered for comparison to template argument

2020-10-23 Thread erenon2 at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97544

Bug ID: 97544
   Summary: -Wtype-limits triggered for comparison to template
argument
   Product: gcc
   Version: 10.2.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: erenon2 at gmail dot com
  Target Milestone: ---

The following code triggers -Wtype-limits:

template 
constexpr int f(unsigned i)
{
  return (i < N) ? 0 : 1;
}

int main()
{
  return f<0>(1);
}

On GCC 10.2 and trunk, it produces this warning:

: In instantiation of 'constexpr int f(unsigned int) [with unsigned int
N = 0]':
:4:13: warning: comparison of unsigned expression in '< 0' is always
false [-Wtype-limits]

4 |   return (i < N) ? 0 : 1;

  |  ~~~^~~~

On GCC 10.1, there's no warning.
godbolt: https://gcc.godbolt.org/z/cqzq8P