This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gcc 4.3.0, -Wconversion: assignment-by operators for shorter types


on 27/05/2008 22:00 Andrew Pinski said the following:
On Tue, May 27, 2008 at 11:56 AM, Andriy Gapon <avg@icyb.net.ua> wrote:
Thank you for the explanation! I didn't realize the difference.

OTOH, do you think that those arithmetic warnings are practical (as opposed
to being correct)?

I think so as the short int case has a defined overflow of the signed short type that is SHRT_MAX + 1 is defined while INT_MAX + 1 is not.

I still feel like disagreeing. Consider this: ************* int main() { short short_x;

        short_x = short_x + 1;
        short_x += 1;
        short_x++;
        ++short_x;

        return 0;
}
*************

$ gcc43 -Wconversion test-conv2.c -o test-conv
test-conv2.cc: In function 'int main()':
test-conv2.cc:5: warning: conversion to 'short int' from 'int' may alter its value
test-conv2.cc:6: warning: conversion to 'short int' from 'int' may alter its value


I thought that in C all 4 forms were equivalent and this was purely a style choice. Now they are different.

--
Andriy Gapon


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]