https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86190
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
Known to work| |5.5.0
Summary|-Wsign-conversion ignores |[6/7/8/9
|explicit conversion in some |Regression]-Wsign-conversio
|cases |n ignores explicit
| |conversion in some cases
Known to fail| |6.4.0, 7.3.0, 8.1.0, 9.0
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The manual does say that an explicit cast should silence the warning. This is a
regression since GCC 5, and only seems to happen when there's an indirection
through a typedef:
using size_t = unsigned long;
template<typename T> struct vector {
using size_type = size_t;
size_type size();
};
struct A
{
int var;
vector<int> vec;
bool func()
{
return vec.size() < static_cast<size_t>(var);
}
};
int main()
{
A a;
a.func();
}