[PATCH] Fix unsafe function attributes for special functions (PR 71876)

Bernd Schmidt bschmidt@redhat.com
Thu Jul 21 11:25:00 GMT 2016



On 07/21/2016 01:16 PM, Jakub Jelinek wrote:
> On Thu, Jul 21, 2016 at 11:04:48AM +0000, Bernd Edlinger wrote:
>>  bool
>> +gimple_alloca_call_p (const gimple *stmt)
>> +{
>> +  tree fndecl;
>> +
>> +  if (!is_gimple_call (stmt))
>> +    return false;
>> +
>> +  fndecl = gimple_call_fndecl (stmt);
>> +  if (fndecl && DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_NORMAL)
>> +    switch (DECL_FUNCTION_CODE (fndecl))
>> +      {
>> +      case BUILT_IN_ALLOCA:
>> +      case BUILT_IN_ALLOCA_WITH_ALIGN:
>> +        return true;
>> +      }
>
> This should have failed bootstrap because of -Wswitch-enum.
> You need
> 	default:
> 	  break;
> in.
>
>> +    switch (DECL_FUNCTION_CODE (fndecl))
>> +      {
>> +      case BUILT_IN_ALLOCA:
>> +      case BUILT_IN_ALLOCA_WITH_ALIGN:
>> +        return true;
>
> Likewise here.
>
Or write it in the more natural way as an if.


Bernd



More information about the Gcc-patches mailing list