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

Reply via email to