Fix ambiguous 'else' [-Wparentheses]

Message ID CAD57uCea2JRbkzKZOAR5HOE_7yD9GWrSRgW7ugr=rTnZGYqN-Q@mail.gmail.com
State New, archived
Headers

Commit Message

Yvan Roux April 15, 2016, 9:37 a.m. UTC
  Hi,

GCC trubnk fails to build glibc since revision r234949 which enhanced
-Wparentheses (to address
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70436).  This simple
patch fixes the ambiguity.  Tested with an x86_84 build configured
with  --disable-werror and no warning emitted.

Thanks,
Yvan

2016-04-15  Yvan Roux  <yvan.roux@linaro.org>

        * stdlib/setenv.c (unsetenv): Fix ambiguous 'else'.
        * nis/nis_call.c (nis_server_cache_add): Likewise.
  

Comments

Florian Weimer April 15, 2016, 10:15 a.m. UTC | #1
On 04/15/2016 11:37 AM, Yvan Roux wrote:
> 2016-04-15  Yvan Roux<yvan.roux@linaro.org>
>
>          * stdlib/setenv.c (unsetenv): Fix ambiguous 'else'.
>          * nis/nis_call.c (nis_server_cache_add): Likewise.

Looks good to me (apart from the missing two spaces before the email 
address).  Can you commit this yourself?

Thanks,
Florian
  
Yvan Roux April 15, 2016, 10:40 a.m. UTC | #2
Hi Florian

On 15 April 2016 at 12:15, Florian Weimer <fweimer@redhat.com> wrote:
> On 04/15/2016 11:37 AM, Yvan Roux wrote:
>>
>> 2016-04-15  Yvan Roux<yvan.roux@linaro.org>
>>
>>          * stdlib/setenv.c (unsetenv): Fix ambiguous 'else'.
>>          * nis/nis_call.c (nis_server_cache_add): Likewise.
>
>
> Looks good to me (apart from the missing two spaces before the email
> address).  Can you commit this yourself?

Arrgh sorry copy/paste issue !

nope, I don't have the commit bit for glibc.

Cheers,
Yvan
  
Florian Weimer April 15, 2016, 11:51 a.m. UTC | #3
On 04/15/2016 12:40 PM, Yvan Roux wrote:
> Hi Florian
>
> On 15 April 2016 at 12:15, Florian Weimer <fweimer@redhat.com> wrote:
>> On 04/15/2016 11:37 AM, Yvan Roux wrote:
>>>
>>> 2016-04-15  Yvan Roux<yvan.roux@linaro.org>
>>>
>>>           * stdlib/setenv.c (unsetenv): Fix ambiguous 'else'.
>>>           * nis/nis_call.c (nis_server_cache_add): Likewise.
>>
>>
>> Looks good to me (apart from the missing two spaces before the email
>> address).  Can you commit this yourself?
>
> Arrgh sorry copy/paste issue !
>
> nope, I don't have the commit bit for glibc.

Okay, I have pushed this.

Thanks,
Florian
  

Patch

diff --git a/nis/nis_call.c b/nis/nis_call.c
index 3fa37e4..cb7839a 100644
--- a/nis/nis_call.c
+++ b/nis/nis_call.c
@@ -680,16 +680,18 @@  nis_server_cache_add (const_nis_name name, int search_parent,
   /* Choose which entry should be evicted from the cache.  */
   loc = &nis_server_cache[0];
   if (*loc != NULL)
-    for (i = 1; i < 16; ++i)
-      if (nis_server_cache[i] == NULL)
-	{
+    {
+      for (i = 1; i < 16; ++i)
+	if (nis_server_cache[i] == NULL)
+	  {
+	    loc = &nis_server_cache[i];
+	    break;
+	  }
+	else if ((*loc)->uses > nis_server_cache[i]->uses
+		 || ((*loc)->uses == nis_server_cache[i]->uses
+		     && (*loc)->expires > nis_server_cache[i]->expires))
 	  loc = &nis_server_cache[i];
-	  break;
-	}
-      else if ((*loc)->uses > nis_server_cache[i]->uses
-	       || ((*loc)->uses == nis_server_cache[i]->uses
-		   && (*loc)->expires > nis_server_cache[i]->expires))
-	loc = &nis_server_cache[i];
+    }
   old = *loc;
   *loc = new;
 
diff --git a/stdlib/setenv.c b/stdlib/setenv.c
index da61ee0..e66045f 100644
--- a/stdlib/setenv.c
+++ b/stdlib/setenv.c
@@ -278,18 +278,20 @@  unsetenv (const char *name)
   ep = __environ;
   if (ep != NULL)
     while (*ep != NULL)
-      if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
-	{
-	  /* Found it.  Remove this pointer by moving later ones back.  */
-	  char **dp = ep;
-
-	  do
-	    dp[0] = dp[1];
-	  while (*dp++);
-	  /* Continue the loop in case NAME appears again.  */
-	}
-      else
-	++ep;
+      {
+	if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
+	  {
+	    /* Found it.  Remove this pointer by moving later ones back.  */
+	    char **dp = ep;
+
+	    do
+		dp[0] = dp[1];
+	    while (*dp++);
+	    /* Continue the loop in case NAME appears again.  */
+	  }
+	else
+	  ++ep;
+      }
 
   UNLOCK;