2008/5/28 Andriy Gapon <[EMAIL PROTECTED]>: > on 27/05/2008 22:00 Andrew Pinski said the following: >> >> On Tue, May 27, 2008 at 11:56 AM, Andriy Gapon <[EMAIL PROTECTED]> 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. >
Please open a bug report (http://gcc.gnu.org/bugs.html) with this issue and add [EMAIL PROTECTED] to the CC list. Otherwise this will be forgotten. Cheers, Manuel.