grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] net: Don't use nested functions to allow building with clang


From: Daniel Axtens
Subject: Re: [PATCH] net: Don't use nested functions to allow building with clang
Date: Wed, 20 May 2020 18:04:15 +1000

> clang still doesn't like 'make check', but that looks like a different
> issue around relocations. clang isn't a huge priority for me, so it
> might take a while. But this patch is good to go in regardless.

Turns out I needed to specify CXX=clang++ as well.

Daniel

>
> Thanks again,
> Daniel
>
>> ---
>>
>>  grub-core/net/net.c | 65 +++++++++++++++++++++++----------------------
>>  1 file changed, 33 insertions(+), 32 deletions(-)
>>
>> diff --git a/grub-core/net/net.c b/grub-core/net/net.c
>> index c42f0f4f71d..ec7e2899ed5 100644
>> --- a/grub-core/net/net.c
>> +++ b/grub-core/net/net.c
>> @@ -1735,42 +1735,43 @@ grub_net_restore_hw (void)
>>    return GRUB_ERR_NONE;
>>  }
>>  
>> -grub_err_t
>> -grub_net_search_config_file (char *config)
>> +static int grub_config_search_through (char *config, char *suffix,
>> +                                       grub_size_t num_tries,
>> +                                       grub_size_t slice_size)
>>  {
>> -  grub_size_t config_len;
>> -  char *suffix;
>> +  while (num_tries-- > 0)
>> +    {
>> +      grub_file_t file;
>>  
>> -  auto int search_through (grub_size_t num_tries, grub_size_t slice_size);
>> -  int search_through (grub_size_t num_tries, grub_size_t slice_size)
>> -  {
>> -    while (num_tries-- > 0)
>> -      {
>> -        grub_file_t file;
>> +      grub_dprintf ("net", "attempt to fetch config %s\n", config);
>>  
>> -        grub_dprintf ("net", "attempt to fetch config %s\n", config);
>> +      file = grub_file_open (config, GRUB_FILE_TYPE_CONFIG);
>>  
>> -        file = grub_file_open (config, GRUB_FILE_TYPE_CONFIG);
>> +      if (file)
>> +        {
>> +          grub_file_close (file);
>> +          return 0;
>> +        }
>> +      else
>> +        {
>> +          if (grub_errno == GRUB_ERR_IO)
>> +            grub_errno = GRUB_ERR_NONE;
>> +        }
>>  
>> -        if (file)
>> -          {
>> -            grub_file_close (file);
>> -            return 0;
>> -          }
>> -        else
>> -          {
>> -            if (grub_errno == GRUB_ERR_IO)
>> -              grub_errno = GRUB_ERR_NONE;
>> -          }
>> +      if (grub_strlen (suffix) < slice_size)
>> +        break;
>>  
>> -        if (grub_strlen (suffix) < slice_size)
>> -          break;
>> +      config[grub_strlen (config) - slice_size] = '\0';
>> +    }
>>  
>> -        config[grub_strlen (config) - slice_size] = '\0';
>> -      }
>> +  return 1;
>> +}
>>  
>> -    return 1;
>> -  }
>> +grub_err_t
>> +grub_net_search_config_file (char *config)
>> +{
>> +  grub_size_t config_len;
>> +  char *suffix;
>>  
>>    config_len = grub_strlen (config);
>>    config[config_len] = '-';
>> @@ -1801,7 +1802,7 @@ grub_net_search_config_file (char *config)
>>        if (client_uuid)
>>          {
>>            grub_strcpy (suffix, client_uuid);
>> -          if (search_through (1, 0) == 0)
>> +          if (grub_config_search_through (config, suffix, 1, 0) == 0)
>>              return GRUB_ERR_NONE;
>>          }
>>  
>> @@ -1816,7 +1817,7 @@ grub_net_search_config_file (char *config)
>>          if (*ptr == ':')
>>            *ptr = '-';
>>  
>> -      if (search_through (1, 0) == 0)
>> +      if (grub_config_search_through (config, suffix, 1, 0) == 0)
>>          return GRUB_ERR_NONE;
>>  
>>        /* By IP address */
>> @@ -1831,7 +1832,7 @@ grub_net_search_config_file (char *config)
>>                             ((n >> 24) & 0xff), ((n >> 16) & 0xff),      \
>>                             ((n >> 8) & 0xff), ((n >> 0) & 0xff));
>>  
>> -            if (search_through (8, 1) == 0)
>> +            if (grub_config_search_through (config, suffix, 8, 1) == 0)
>>                return GRUB_ERR_NONE;
>>              break;
>>            }
>> @@ -1848,7 +1849,7 @@ grub_net_search_config_file (char *config)
>>                  *ptr = '-';
>>  
>>              grub_snprintf (suffix, GRUB_NET_MAX_STR_ADDR_LEN, "%s", buf);
>> -            if (search_through (1, 0) == 0)
>> +            if (grub_config_search_through (config, suffix, 1, 0) == 0)
>>                return GRUB_ERR_NONE;
>>              break;
>>            }
>> -- 
>> 2.26.2



reply via email to

[Prev in Thread] Current Thread [Next in Thread]