Help the compiler recognize unreachable code on 32-bit machines.
authorUlrich Drepper <drepper@redhat.com>
Tue, 16 Oct 2007 23:25:46 +0000 (23:25 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 16 Oct 2007 23:25:46 +0000 (23:25 +0000)
2007-10-16  Ulrich Drepper  <drepper@redhat.com>

* time/tzfile.c (__tzfile_read): Help the compiler recognize
unreachable code on 32-bit machines.

ChangeLog
sysdeps/i386/elf/configure
time/tzfile.c

index 86eb56b..b7096e2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-16  Ulrich Drepper  <drepper@redhat.com>
+
+       * time/tzfile.c (__tzfile_read): Help the compiler recognize
+       unreachable code on 32-bit machines.
+
 2007-10-16  Jakub Jelinek  <jakub@redhat.com>
 
        [BZ #5184]
index 1182d97..12e92cd 100755 (executable)
@@ -4,8 +4,8 @@
 if test "$usetls" != no; then
 # Check for support of thread-local storage handling in assembler and
 # linker.
-echo "$as_me:$LINENO: checking for i386 TLS support" >&5
-echo $ECHO_N "checking for i386 TLS support... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for i386 TLS support" >&5
+echo $ECHO_N "checking for i386 TLS support... $ECHO_C" >&6; }
 if test "${libc_cv_386_tls+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -37,8 +37,8 @@ else
 fi
 rm -f conftest*
 fi
-echo "$as_me:$LINENO: result: $libc_cv_386_tls" >&5
-echo "${ECHO_T}$libc_cv_386_tls" >&6
+echo "$as_me:$LINENO: result: $libc_cv_386_tls" >&5
+echo "${ECHO_T}$libc_cv_386_tls" >&6; }
 if test $libc_cv_386_tls = yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_TLS_SUPPORT 1
index 925f95f..6a8bf89 100644 (file)
@@ -243,7 +243,7 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
                & ~(__alignof__ (struct leap) - 1));
   leaps_idx = total_size;
   total_size += num_leaps * sizeof (struct leap);
-  tzspec_len = (trans_width == 8
+  tzspec_len = (sizeof (time_t) == 8 && trans_width == 8
                ? st.st_size - (ftello (f)
                                + num_transitions * (8 + 1)
                                + num_types * 6
@@ -263,14 +263,14 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
   types = (struct ttinfo *) ((char *) transitions + types_idx);
   zone_names = (char *) types + num_types * sizeof (struct ttinfo);
   leaps = (struct leap *) ((char *) transitions + leaps_idx);
-  if (trans_width == 8)
+  if (sizeof (time_t) == 8 && trans_width == 8)
     tzspec = (char *) leaps + num_leaps * sizeof (struct leap) + extra;
   else
     tzspec = NULL;
   if (extra > 0)
     *extrap = (char *) &leaps[num_leaps];
 
-  if (sizeof (time_t) == 4 || trans_width == 8)
+  if (sizeof (time_t) == 4 || __builtin_expect (trans_width == 8, 1))
     {
       if (__builtin_expect (fread_unlocked (transitions, trans_width + 1,
                                            num_transitions, f)