unnecessary 'int' in s_conf.c

Paul-Andrew Joseph Miseiko esoteric at teardrop.ca
Fri Jan 7 21:22:35 EST 2005


This is a very sad thread.

-
A few bricks short of a full load.

On Fri, 7 Jan 2005, Lubomir Radev wrote:

> A smart compiler (which gcc supposedly is) would optimize this code in such
> way that ret will never be allocated and therefore not referenced - even
> with the default -O2 only
>
>
>> -----Original Message-----
>> From: hybrid-bounces at lists.ircd-hybrid.org [mailto:hybrid-
>> bounces at lists.ircd-hybrid.org] On Behalf Of Rachel Llorenna
>> Sent: Friday, January 07, 2005 7:02 PM
>> To: Mailing List: ircd-hybrid
>> Subject: unnecessary 'int' in s_conf.c
>>
>>> From ircd-hybrid-current, serial number 20041220_0. The 'int ret' is
>> unnecessary in s_conf.c:lookup_confhost (lines 2161-2205),
>>
>> static void
>> lookup_confhost(struct ConfItem *conf)
>> {
>>   struct AccessItem *aconf;
>>   struct addrinfo hints, *res;
>>   int ret;
>>
>>   aconf = map_to_conf(conf);
>>
>>   if (EmptyString(aconf->host) ||
>>       EmptyString(aconf->user))
>>   {
>>     ilog(L_ERROR, "Host/server name error: (%s) (%s)",
>>          aconf->host, conf->name);
>>     return;
>>   }
>>
>>   if (strchr(aconf->host, '*') ||
>>       strchr(aconf->host, '?'))
>>     return;
>>
>>   /* Do name lookup now on hostnames given and store the
>>    * ip numbers in conf structure.
>>    */
>>   memset(&hints, 0, sizeof(hints));
>>
>>   hints.ai_family   = AF_UNSPEC;
>>   hints.ai_socktype = SOCK_STREAM;
>>
>>   /* Get us ready for a bind() and don't bother doing dns lookup */
>>   hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
>>
>>   if ((ret = irc_getaddrinfo(aconf->host, NULL, &hints, &res)))
>>   {
>>     conf_dns_lookup(aconf);
>>     return;
>>   }
>>
>>   assert(res != NULL);
>>
>>   memcpy(&aconf->ipnum, res->ai_addr, res->ai_addrlen);
>>   aconf->ipnum.ss_len = res->ai_addrlen;
>>   aconf->ipnum.ss.ss_family = res->ai_family;
>>   irc_freeaddrinfo(res);
>> }
>>
>> Note that 'ret' is not referenced beyond that single if statement.
>> Since the return value of irc_getaddrinfo is only used by that one
>> 'if' statement, why not collapse that line to:
>>   if (irc_getaddrinfo(aconf->host, NULL, &hints, &res)) ...
>>
>> And remove the declaration of ret? This would only save a small and
>> insignificant amount of memory, but at least it doesn't come at the
>> cost of CPU cycles or other limited resources.
>> --
>> Regards,
>>
>> Rachel Llorenna (frequency)
>
>
>



More information about the hybrid mailing list