Module Name: src
Committed By: rillig
Date: Fri Mar 25 18:35:50 UTC 2022
Modified Files:
src/lib/libc/time: localtime.c
Log Message:
localtime.c: add back storage class 'register'
This reduces the differences to the upstream code.
No binary change.
To generate a diff of this commit:
cvs rdiff -u -r1.129 -r1.130 src/lib/libc/time/localtime.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/time/localtime.c
diff -u src/lib/libc/time/localtime.c:1.129 src/lib/libc/time/localtime.c:1.130
--- src/lib/libc/time/localtime.c:1.129 Thu Mar 24 16:15:05 2022
+++ src/lib/libc/time/localtime.c Fri Mar 25 18:35:50 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: localtime.c,v 1.129 2022/03/24 16:15:05 christos Exp $ */
+/* $NetBSD: localtime.c,v 1.130 2022/03/25 18:35:50 rillig Exp $ */
/* Convert timestamp from time_t to struct tm. */
@@ -12,7 +12,7 @@
#if 0
static char elsieid[] = "@(#)localtime.c 8.17";
#else
-__RCSID("$NetBSD: localtime.c,v 1.129 2022/03/24 16:15:05 christos Exp $");
+__RCSID("$NetBSD: localtime.c,v 1.130 2022/03/25 18:35:50 rillig Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -257,8 +257,8 @@ ttunspecified(struct state const *sp, in
static int_fast32_t
detzcode(const char *const codep)
{
- int_fast32_t result;
- int i;
+ register int_fast32_t result;
+ register int i;
int_fast32_t one = 1;
int_fast32_t halfmaxval = one << (32 - 2);
int_fast32_t maxval = halfmaxval - 1 + halfmaxval;
@@ -280,8 +280,8 @@ detzcode(const char *const codep)
static int_fast64_t
detzcode64(const char *const codep)
{
- int_fast64_t result;
- int i;
+ register int_fast64_t result;
+ register int i;
int_fast64_t one = 1;
int_fast64_t halfmaxval = one << (64 - 2);
int_fast64_t maxval = halfmaxval - 1 + halfmaxval;
@@ -354,8 +354,8 @@ update_tzname_etc(const struct state *sp
static void
settzname(void)
{
- timezone_t const sp = __lclptr;
- int i;
+ register timezone_t const sp = __lclptr;
+ register int i;
#if HAVE_TZNAME
tzname[0] = tzname[1] =
@@ -378,7 +378,9 @@ settzname(void)
update_tzname_etc(sp, &sp->ttis[i]);
for (i = 0; i < sp->timecnt; ++i) {
- const struct ttinfo * const ttisp = &sp->ttis[sp->types[i]];
+ register const struct ttinfo * const ttisp =
+ &sp->ttis[
+ sp->types[i]];
update_tzname_etc(sp, ttisp);
#if USG_COMPAT
if (ttisp->tt_isdst)
@@ -401,7 +403,7 @@ scrub_abbrs(struct state *sp)
** Second, truncate long abbreviations.
*/
for (i = 0; i < sp->typecnt; ++i) {
- const struct ttinfo * const ttisp = &sp->ttis[i];
+ register const struct ttinfo * const ttisp = &sp->ttis[i];
char *cp = &sp->chars[ttisp->tt_desigidx];
if (strlen(cp) > TZ_ABBR_MAX_LEN &&
@@ -446,13 +448,13 @@ static int
tzloadbody(char const *name, struct state *sp, bool doextend,
union local_storage *lsp)
{
- int i;
- int fid;
- int stored;
- ssize_t nread;
- bool doaccess;
- union input_buffer *up = &lsp->u.u;
- size_t tzheadsize = sizeof(struct tzhead);
+ register int i;
+ register int fid;
+ register int stored;
+ register ssize_t nread;
+ register bool doaccess;
+ register union input_buffer *up = &lsp->u.u;
+ register size_t tzheadsize = sizeof(struct tzhead);
sp->goback = sp->goahead = false;
@@ -588,7 +590,7 @@ tzloadbody(char const *name, struct stat
}
sp->timecnt = timecnt;
for (i = 0; i < sp->typecnt; ++i) {
- struct ttinfo * ttisp;
+ register struct ttinfo * ttisp;
unsigned char isdst, desigidx;
ttisp = &sp->ttis[i];
@@ -645,7 +647,7 @@ tzloadbody(char const *name, struct stat
sp->leapcnt = leapcnt;
for (i = 0; i < sp->typecnt; ++i) {
- struct ttinfo * ttisp;
+ register struct ttinfo * ttisp;
ttisp = &sp->ttis[i];
if (ttisstdcnt == 0)
@@ -657,7 +659,7 @@ tzloadbody(char const *name, struct stat
}
}
for (i = 0; i < sp->typecnt; ++i) {
- struct ttinfo * ttisp;
+ register struct ttinfo * ttisp;
ttisp = &sp->ttis[i];
if (ttisutcnt == 0)
@@ -841,15 +843,15 @@ tzload(char const *name, struct state *s
static bool
typesequiv(const struct state *sp, int a, int b)
{
- bool result;
+ register bool result;
if (sp == NULL ||
a < 0 || a >= sp->typecnt ||
b < 0 || b >= sp->typecnt)
result = false;
else {
- const struct ttinfo * ap = &sp->ttis[a];
- const struct ttinfo * bp = &sp->ttis[b];
+ register const struct ttinfo * ap = &sp->ttis[a];
+ register const struct ttinfo * bp = &sp->ttis[b];
result = (ap->tt_utoff == bp->tt_utoff
&& ap->tt_isdst == bp->tt_isdst
&& ap->tt_ttisstd == bp->tt_ttisstd
@@ -884,9 +886,9 @@ is_digit(char c)
*/
static ATTRIBUTE_PURE const char *
-getzname(const char *strp)
+getzname(register const char *strp)
{
- char c;
+ register char c;
while ((c = *strp) != '\0' && !is_digit(c) && c != ',' && c != '-' &&
c != '+')
@@ -905,9 +907,9 @@ getzname(const char *strp)
*/
static ATTRIBUTE_PURE const char *
-getqzname(const char *strp, const int delim)
+getqzname(register const char *strp, const int delim)
{
- int c;
+ register int c;
while ((c = *strp) != '\0' && c != delim)
++strp;
@@ -922,10 +924,10 @@ getqzname(const char *strp, const int de
*/
static const char *
-getnum(const char *strp, int *const nump, const int min, const int max)
+getnum(register const char *strp, int *const nump, const int min, const int max)
{
- char c;
- int num;
+ register char c;
+ register int num;
if (strp == NULL || !is_digit(c = *strp)) {
errno = EINVAL;
@@ -957,7 +959,7 @@ getnum(const char *strp, int *const nump
*/
static const char *
-getsecs(const char *strp, int_fast32_t *const secsp)
+getsecs(register const char *strp, int_fast32_t *const secsp)
{
int num;
int_fast32_t secsperhour = SECSPERHOUR;
@@ -998,9 +1000,9 @@ getsecs(const char *strp, int_fast32_t *
*/
static const char *
-getoffset(const char *strp, int_fast32_t *const offsetp)
+getoffset(register const char *strp, int_fast32_t *const offsetp)
{
- bool neg = false;
+ register bool neg = false;
if (*strp == '-') {
neg = true;
@@ -1023,7 +1025,7 @@ getoffset(const char *strp, int_fast32_t
*/
static const char *
-getrule(const char *strp, struct rule *const rulep)
+getrule(const char *strp, register struct rule *const rulep)
{
if (*strp == 'J') {
/*
@@ -1074,12 +1076,12 @@ getrule(const char *strp, struct rule *c
*/
static int_fast32_t
-transtime(const int year, const struct rule *const rulep,
+transtime(const int year, register const struct rule *const rulep,
const int_fast32_t offset)
{
- bool leapyear;
- int_fast32_t value;
- int i;
+ register bool leapyear;
+ register int_fast32_t value;
+ register int i;
int d, m1, yy0, yy1, yy2, dow;
leapyear = isleap(year);
@@ -1175,8 +1177,8 @@ tzparse(const char *name, struct state *
size_t charcnt;
int_fast32_t stdoffset;
int_fast32_t dstoffset;
- char * cp;
- bool load_ok;
+ register char * cp;
+ register bool load_ok;
time_t atlo = TIME_T_MIN, leaplo = TIME_T_MIN;
dstname = NULL; /* XXX gcc */
@@ -1242,8 +1244,8 @@ tzparse(const char *name, struct state *
if (*name == ',' || *name == ';') {
struct rule start;
struct rule end;
- int year;
- int timecnt;
+ register int year;
+ register int timecnt;
__time_t janfirst;
int_fast32_t janoffset = 0;
int yearbeg, yearlim;
@@ -1262,7 +1264,7 @@ tzparse(const char *name, struct state *
** Two transitions per year, from EPOCH_YEAR forward.
*/
init_ttinfo(&sp->ttis[0], -stdoffset, false, 0);
- init_ttinfo(&sp->ttis[1], -dstoffset, true,
+ init_ttinfo(&sp->ttis[1], -dstoffset, true,
(int)(stdlen + 1));
sp->defaulttype = 0;
timecnt = 0;
@@ -1346,12 +1348,12 @@ tzparse(const char *name, struct state *
} else if (YEARSPERREPEAT < year - yearbeg)
sp->goback = sp->goahead = true;
} else {
- int_fast32_t theirstdoffset;
- int_fast32_t theirdstoffset;
- int_fast32_t theiroffset;
- bool isdst;
- int i;
- int j;
+ register int_fast32_t theirstdoffset;
+ register int_fast32_t theirdstoffset;
+ register int_fast32_t theiroffset;
+ register bool isdst;
+ register int i;
+ register int j;
if (*name != '\0')
return false;
@@ -1482,7 +1484,7 @@ zoneinit(struct state *sp, char const *n
return err;
}
}
-
+
static void
tzsetlcl(char const *name)
{
@@ -1557,7 +1559,7 @@ tzalloc(const char *name)
}
}
#if !HAVE_MALLOC_ERRNO
- } else
+ } else
errno = ENOMEM;
#endif
return sp;
@@ -1600,9 +1602,9 @@ static struct tm *
localsub(struct state const *sp, time_t const *timep, int_fast32_t setname,
struct tm *const tmp)
{
- const struct ttinfo * ttisp;
- int i;
- struct tm * result;
+ register const struct ttinfo * ttisp;
+ register int i;
+ register struct tm * result;
const time_t t = *timep;
if (sp == NULL) {
@@ -1612,8 +1614,8 @@ localsub(struct state const *sp, time_t
if ((sp->goback && t < sp->ats[0]) ||
(sp->goahead && t > sp->ats[sp->timecnt - 1])) {
time_t newt;
- time_t seconds;
- time_t years;
+ register time_t seconds;
+ register time_t years;
if (t < sp->ats[0])
seconds = sp->ats[0] - t;
@@ -1638,7 +1640,7 @@ localsub(struct state const *sp, time_t
}
result = localsub(sp, &newt, setname, tmp);
if (result) {
- int_fast64_t newy;
+ register int_fast64_t newy;
newy = result->tm_year;
if (t < sp->ats[0])
@@ -1655,11 +1657,11 @@ localsub(struct state const *sp, time_t
if (sp->timecnt == 0 || t < sp->ats[0]) {
i = sp->defaulttype;
} else {
- int lo = 1;
- int hi = sp->timecnt;
+ register int lo = 1;
+ register int hi = sp->timecnt;
while (lo < hi) {
- int mid = (lo + hi) / 2;
+ register int mid = (lo + hi) / 2;
if (t < sp->ats[mid])
hi = mid;
@@ -1727,7 +1729,7 @@ static struct tm *
gmtsub(struct state const *sp, const time_t *timep, int_fast32_t offset,
struct tm *tmp)
{
- struct tm * result;
+ register struct tm * result;
result = timesub(timep, offset, gmtptr, tmp);
#ifdef TM_ZONE
@@ -1788,7 +1790,7 @@ offtime_r(const time_t *timep, long offs
# if !ALTZONE
# define altzone 0
# endif
-
+
/* Convert from the underlying system's time_t to the ersatz time_tz,
which is called 'time_t' in this file. Typically, this merely
converts the time's integer width. On some platforms, the system
@@ -1799,7 +1801,7 @@ offtime_r(const time_t *timep, long offs
returns time_t, the macros in private.h cause this code to actually
define a function named 'tz_time' that returns tz_time_t. The call
to sys_time invokes the underlying system's 'time' function. */
-
+
time_t
time(time_t *p)
{
@@ -1840,11 +1842,11 @@ static struct tm *
timesub(const time_t *timep, int_fast32_t offset,
const struct state *sp, struct tm *tmp)
{
- const struct lsinfo * lp;
- time_t tdays;
- const int * ip;
- int_fast32_t corr;
- int i;
+ register const struct lsinfo * lp;
+ register time_t tdays;
+ register const int * ip;
+ register int_fast32_t corr;
+ register int i;
int_fast32_t idays, rem, dayoff, dayrem;
time_t y;
@@ -1893,7 +1895,7 @@ timesub(const time_t *timep, int_fast32_
int tdelta = idays / DAYSPERLYEAR;
int_fast32_t ydelta = tdelta + !tdelta;
time_t newy = y + ydelta;
- int leapdays;
+ register int leapdays;
leapdays = (int)(leaps_thru_end_of(newy - 1) -
leaps_thru_end_of(y - 1));
idays -= ydelta * DAYSPERNYEAR;
@@ -1996,7 +1998,7 @@ ctime_rz(const timezone_t sp, const time
static bool
increment_overflow(int *ip, int j)
{
- int const i = *ip;
+ register int const i = *ip;
/*
** If i >= 0 there can only be overflow if i + j > INT_MAX
@@ -2013,7 +2015,7 @@ increment_overflow(int *ip, int j)
static bool
increment_overflow32(int_fast32_t *const lp, int const m)
{
- int_fast32_t const l = *lp;
+ register int_fast32_t const l = *lp;
if ((l >= 0) ? (m > INT_FAST32_MAX - l) : (m < INT_FAST32_MIN - l))
return true;
@@ -2040,7 +2042,7 @@ increment_overflow_time(__time_t *tp, in
static bool
normalize_overflow(int *const tensptr, int *const unitsptr, const int base)
{
- int tensdelta;
+ register int tensdelta;
tensdelta = (*unitsptr >= 0) ?
(*unitsptr / base) :
@@ -2052,7 +2054,7 @@ normalize_overflow(int *const tensptr, i
static bool
normalize_overflow32(int_fast32_t *tensptr, int *unitsptr, int base)
{
- int tensdelta;
+ register int tensdelta;
tensdelta = (*unitsptr >= 0) ?
(*unitsptr / base) :
@@ -2062,10 +2064,10 @@ normalize_overflow32(int_fast32_t *tensp
}
static int
-tmcomp(const struct tm *const atmp,
- const struct tm *const btmp)
+tmcomp(register const struct tm *const atmp,
+ register const struct tm *const btmp)
{
- int result;
+ register int result;
if (atmp->tm_year != btmp->tm_year)
return atmp->tm_year < btmp->tm_year ? -1 : 1;
@@ -2086,12 +2088,12 @@ time2sub(struct tm *const tmp,
bool *okayp,
bool do_norm_secs)
{
- int dir;
- int i, j;
- int saved_seconds;
- int_fast32_t li;
- time_t lo;
- time_t hi;
+ register int dir;
+ register int i, j;
+ register int saved_seconds;
+ register int_fast32_t li;
+ register time_t lo;
+ register time_t hi;
#ifdef NO_ERROR_IN_DST_GAP
time_t ilo;
#endif
@@ -2338,12 +2340,12 @@ time1(struct tm *const tmp,
struct state const *sp,
const int_fast32_t offset)
{
- time_t t;
- int samei, otheri;
- int sameind, otherind;
- int i;
- int nseen;
- int save_errno;
+ register time_t t;
+ register int samei, otheri;
+ register int sameind, otherind;
+ register int i;
+ register int nseen;
+ int save_errno;
char seen[TZ_MAX_TYPES];
unsigned char types[TZ_MAX_TYPES];
bool okay;
@@ -2484,8 +2486,8 @@ timeoff(struct tm *tmp, long offset)
static int_fast32_t
leapcorr(struct state const *sp, time_t t)
{
- struct lsinfo const * lp;
- int i;
+ register struct lsinfo const * lp;
+ register int i;
i = sp->leapcnt;
while (--i >= 0) {