https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82521
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- IIRC this was done intentionally, to avoid warnings for code like x < 0 where decltype(x) might be unsigned in some specializations of the template. But for that to work we only need to disable the warning for dependent expressions.