This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] libc/time/gmtime_r.c, libc/time/lcltime_r.c,, libc/time/local.h, libc/time/mktm_r.c: move localtime related functionality, from _mktm_r() to new _mklocaltm_r() to break dependency of gmtime() on, timezones


On 10/14/2014 01:16 PM, Corinna Vinschen wrote:
Hi Freddie,
...
With this patch applied, a Coverity scan shows this new problem:

   *** CID 74279:  Logically dead code  (DEADCODE)
   /newlib/libc/time/gmtime_r.c: 52 in gmtime_r()
   46         {
   47           rem += SECSPERDAY;
   48           --days;
   49         }
   50       while (rem >= SECSPERDAY)
   51         {
   >>>     CID 74279:  Logically dead code  (DEADCODE)
   >>>     Execution cannot reach this statement: "rem -= 86400L;".
   52           rem -= SECSPERDAY;
   53           ++days;
   54         }
   55
   56       /* compute hour, min, and sec */
   57       res->tm_hour = (int) (rem / SECSPERHOUR);

AFAICS, Coverity is right.  The code starts with

   rem = ((long)lcltime) % SECSPERDAY;

thus lcltime is always < SECSPERDAY.  Is that just an oversight in
removing some unused code, or does that point to some other problem,
perhaps?

Small oversight only (; I attach a patch with changelog entry.

Regards,
FCh

Attachment: ChangeLog.txt
Description: Text document

diff --git a/newlib/libc/time/gmtime_r.c b/newlib/libc/time/gmtime_r.c
index 1111cbc..8944845 100644
--- a/newlib/libc/time/gmtime_r.c
+++ b/newlib/libc/time/gmtime_r.c
@@ -47,11 +47,6 @@
       rem += SECSPERDAY;
       --days;
     }
-  while (rem >= SECSPERDAY)
-    {
-      rem -= SECSPERDAY;
-      ++days;
-    }
 
   /* compute hour, min, and sec */
   res->tm_hour = (int) (rem / SECSPERHOUR);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]