changeset 6845:287876ed7ba2

* openat.c (openat): Use ?:, not if, to work around GCC bug 4210 <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4210>. Problem reported by Denis Excoffier in <http://lists.gnu.org/archive/html/bug-tar/2006-06/msg00023.html>.
author Paul Eggert <eggert@cs.ucla.edu>
date Tue, 20 Jun 2006 19:15:50 +0000
parents b46fce4234f5
children ac2eea9612c5
files lib/ChangeLog lib/openat.c
diffstat 2 files changed, 10 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,10 @@
+2006-06-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* openat.c (openat): Use ?:, not if, to work around GCC bug 4210
+	<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4210>.
+	Problem reported by Denis Excoffier in
+	<http://lists.gnu.org/archive/html/bug-tar/2006-06/msg00023.html>.
+
 2006-06-19  Simon Josefsson  <jas@extundo.com>
 
 	* inet_ntop.c: Always build inet_ntop4, since inet_ntop6 calls it.
--- a/lib/openat.c
+++ b/lib/openat.c
@@ -54,10 +54,9 @@
       /* If mode_t is narrower than int, use the promoted type (int),
          not mode_t.  Use sizeof to guess whether mode_t is nerrower;
          we don't know of any practical counterexamples.  */
-      if (sizeof (mode_t) < sizeof (int))
-	mode = va_arg (arg, int);
-      else
-	mode = va_arg (arg, mode_t);
+      mode = (sizeof (mode_t) < sizeof (int)
+	      ? va_arg (arg, int)
+	      : va_arg (arg, mode_t));
 
       va_end (arg);
     }