On 11/27/14 07:41, Chen Gang wrote:
> OK, I shall send related test case within two weeks (2014-12-10).
> 
> Joseph Myers <jos...@codesourcery.com> wrote:
> 
> On Thu, 27 Nov 2014, Chen Gang wrote:
> 
>> The original length 18 is not enough for HOST_WIDE_INT printing, need
>> use 20 instead of.
>>
>> Also need additional bytes for printing related prefix and suffix, and
>> give a related check.
>>
>> It passes testsuite under fedora 20 x86_64-unknown-linux-gnu.
>>
>> 2014-11-27  Chen Gang <gang.chen.5...@gmail.com>
>>
>>         * c-family/c-cppbuiltin.c (builtin_define_with_int_value): Let
>>         buffer enough to print host wide integer value.
> 
> OK.  Properly implementing the (-9223372036854775807LL-1) and similar 
> cases (when the value is the least int, long or long long on the target) 
> can be a followup fix.
> 

Sorry, after check all related callers, at present, it can not cause
real world issue:

 - builtin_define_with_int_value() is static function which is only used
   within 'c-cppbuiltin.c'.

 - except builtin_define_type_sizeof(), all callers wants to use 'int'
   for 'value', and in fact, builtin_define_type_sizeof() uses a small
   integer too (although it use HOST_WIDE_INT).

 - for 'flag_abi_version' (can be customized by '-fabi-version=??'):

   '999999' will over flow 16-bit 'int', but will cast to HOST_WIDE_INT
   automatically, which will not cause real issue.

   '1000 + flag_abi_version' may over flow 32-bit 'int', but still will
   cast to HOST_WIDE_INT automatically, which will not cause real issue.

So for me, at present, current patch is not a current bug fix patch, but
I guess, it is still useful in the future (the related code really need
be improved).


Thanks.
-- 
Chen Gang

Open, share, and attitude like air, water, and life which God blessed

Reply via email to