https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85861
Bug ID: 85861 Summary: g++ -Wconversion misses int to size_t Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jg at jguk dot org Target Milestone: --- Created attachment 44158 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44158&action=edit C code example g++ has a missing warning that gcc does display. please see below Sorry I do not have a newer version of GCC myself. Although I did test online with G++ 8.1 here: https://godbolt.org/ and same issue jonny@asus:~$ gcc --version gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 jonny@asus:~$ g++ -o main main.c -Wall -Werror -Wconversion main.c: In function ‘int main()’: main.c:11:12: error: conversion to ‘int’ from ‘size_t {aka long unsigned int}’ may alter its value [-Werror=conversion] return converted; ^ cc1plus: all warnings being treated as errors jonny@asus:~$ jonny@asus:~$ jonny@asus:~$ jonny@asus:~$ gcc -o main main.c -Wall -Werror -Wconversion main.c: In function ‘main’: main.c:9:24: error: conversion to ‘size_t {aka long unsigned int}’ from ‘int’ may change the sign of the result [-Werror=sign-conversion] size_t converted = value; ^ main.c:11:12: error: conversion to ‘int’ from ‘size_t {aka long unsigned int}’ may alter its value [-Werror=conversion] return converted; ^ cc1: all warnings being treated as errors