[PATCH v2 2/3] gimple-fold: Use ranges to simplify _chk calls
Siddhesh Poyarekar
siddhesh@gotplt.org
Mon Nov 15 22:53:12 GMT 2021
On 11/16/21 01:55, Jeff Law wrote:
>
>
> On 11/15/2021 10:33 AM, Siddhesh Poyarekar wrote:
>> Instead of comparing LEN and SIZE only if they are constants, use their
>> ranges to decide if LEN will always be lower than or same as SIZE.
>>
>> This change ends up putting the stringop-overflow warning line number
>> against the strcpy implementation, so adjust the warning check to be
>> line number agnostic.
>>
>> gcc/ChangeLog:
>>
>> * gimple-fold.c (known_lower): New function.
>> (gimple_fold_builtin_strncat_chk,
>> gimple_fold_builtin_memory_chk, gimple_fold_builtin_stxcpy_chk,
>> gimple_fold_builtin_stxncpy_chk,
>> gimple_fold_builtin_snprintf_chk,
>> gimple_fold_builtin_sprintf_chk): Use it.
>>
>> gcc/testsuite/ChangeLog:
>>
>> * gcc.dg/Wobjsize-1.c: Make warning change line agnostic.
>> * gcc.dg/builtin-chk-fold.c: New test.
>>
>>
>
>> @@ -3024,39 +3040,24 @@ gimple_fold_builtin_memory_chk
>> (gimple_stmt_iterator *gsi,
>> }
>> }
>> - if (! tree_fits_uhwi_p (size))
>> - return false;
>> -
>> tree maxlen = get_maxval_strlen (len, SRK_INT_VALUE);
>> - if (! integer_all_onesp (size))
>> + if (! integer_all_onesp (size)
>> + && !known_lower (stmt, len, size) && !known_lower (stmt,
>> maxlen, size))
> Formatting it. Move the trailing && !known_lower (...) to its own line.
>
> OK with the formatting nit fixed.
Thanks, I fixed the nit and pushed the series.
Siddhesh
More information about the Gcc-patches
mailing list