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