| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/coreutils/src/lib/mktime.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||
| 2 | - | |||||||||||||||||||
| 3 | - | |||||||||||||||||||
| 4 | typedef long int long_int; | - | ||||||||||||||||||
| 5 | - | |||||||||||||||||||
| 6 | - | |||||||||||||||||||
| 7 | - | |||||||||||||||||||
| 8 | _Static_assert (0x7fffffff <= ((long_int) (! (! ((long_int) 0 < (long_int) -1)) ? (long_int) -1 : ((((long_int) 1 << ((sizeof (long_int) * 8) - 2)) - 1) * 2 + 1))) / 3 / 366 / 24 / 60 / 60, "verify (" "INT_MAX <= TYPE_MAXIMUM (long_int) / 3 / 366 / 24 / 60 / 60" ")"); | - | ||||||||||||||||||
| 9 | static long_int | - | ||||||||||||||||||
| 10 | shr (long_int a, int b) | - | ||||||||||||||||||
| 11 | { | - | ||||||||||||||||||
| 12 | long_int one = 1; | - | ||||||||||||||||||
| 13 | return never executed: (-one >> 1 == -1return (-one >> 1 == -1 ? a >> b : a / (one << b) - (a % (one << b) < 0));never executed: return (-one >> 1 == -1 ? a >> b : a / (one << b) - (a % (one << b) < 0)); | 0 | ||||||||||||||||||
| 14 | ? a >> b never executed: return (-one >> 1 == -1 ? a >> b : a / (one << b) - (a % (one << b) < 0)); | 0 | ||||||||||||||||||
| 15 | : a / (one << b) - (a % (one << b) < 0)); never executed: return (-one >> 1 == -1 ? a >> b : a / (one << b) - (a % (one << b) < 0)); | 0 | ||||||||||||||||||
| 16 | } | - | ||||||||||||||||||
| 17 | - | |||||||||||||||||||
| 18 | - | |||||||||||||||||||
| 19 | - | |||||||||||||||||||
| 20 | static long_int const mktime_min | - | ||||||||||||||||||
| 21 | = (((! ((time_t) 0 < (time_t) -1)) && ((time_t) ~ ((time_t) (! (! ((time_t) 0 < (time_t) -1)) ? (time_t) -1 : ((((time_t) 1 << ((sizeof (time_t) * 8) - 2)) - 1) * 2 + 1)))) < ((long_int) ~ ((long_int) (! (! ((long_int) 0 < (long_int) -1)) ? (long_int) -1 : ((((long_int) 1 << ((sizeof (long_int) * 8) - 2)) - 1) * 2 + 1))))) | - | ||||||||||||||||||
| 22 | ? ((long_int) ~ ((long_int) (! (! ((long_int) 0 < (long_int) -1)) ? (long_int) -1 : ((((long_int) 1 << ((sizeof (long_int) * 8) - 2)) - 1) * 2 + 1)))) : ((time_t) ~ ((time_t) (! (! ((time_t) 0 < (time_t) -1)) ? (time_t) -1 : ((((time_t) 1 << ((sizeof (time_t) * 8) - 2)) - 1) * 2 + 1))))); | - | ||||||||||||||||||
| 23 | static long_int const mktime_max | - | ||||||||||||||||||
| 24 | = (((long_int) (! (! ((long_int) 0 < (long_int) -1)) ? (long_int) -1 : ((((long_int) 1 << ((sizeof (long_int) * 8) - 2)) - 1) * 2 + 1))) < ((time_t) (! (! ((time_t) 0 < (time_t) -1)) ? (time_t) -1 : ((((time_t) 1 << ((sizeof (time_t) * 8) - 2)) - 1) * 2 + 1))) | - | ||||||||||||||||||
| 25 | ? ((long_int) (! (! ((long_int) 0 < (long_int) -1)) ? (long_int) -1 : ((((long_int) 1 << ((sizeof (long_int) * 8) - 2)) - 1) * 2 + 1))) : ((time_t) (! (! ((time_t) 0 < (time_t) -1)) ? (time_t) -1 : ((((time_t) 1 << ((sizeof (time_t) * 8) - 2)) - 1) * 2 + 1)))); | - | ||||||||||||||||||
| 26 | - | |||||||||||||||||||
| 27 | _Static_assert (((time_t) 1.5 == 1), "verify (" "TYPE_IS_INTEGER (time_t)" ")"); | - | ||||||||||||||||||
| 28 | - | |||||||||||||||||||
| 29 | - | |||||||||||||||||||
| 30 | - | |||||||||||||||||||
| 31 | _Static_assert (1900 % 100 == 0, "verify (" "TM_YEAR_BASE % 100 == 0" ")"); | - | ||||||||||||||||||
| 32 | - | |||||||||||||||||||
| 33 | - | |||||||||||||||||||
| 34 | static | - | ||||||||||||||||||
| 35 | _Bool | - | ||||||||||||||||||
| 36 | - | |||||||||||||||||||
| 37 | leapyear (long_int year) | - | ||||||||||||||||||
| 38 | { | - | ||||||||||||||||||
| 39 | - | |||||||||||||||||||
| 40 | - | |||||||||||||||||||
| 41 | return never executed: return ((year & 3) == 0 && (year % 100 != 0 || ((year / 100) & 3) == (- (1900 / 100) & 3))); | 0 | ||||||||||||||||||
| 42 | ((year & 3) == 0 never executed: return ((year & 3) == 0 && (year % 100 != 0 || ((year / 100) & 3) == (- (1900 / 100) & 3))); | 0 | ||||||||||||||||||
| 43 | && (year % 100 != 0 never executed: return ((year & 3) == 0 && (year % 100 != 0 || ((year / 100) & 3) == (- (1900 / 100) & 3))); | 0 | ||||||||||||||||||
| 44 | || ((year / 100) & 3) == (- (1900 / 100) & 3))); never executed: return ((year & 3) == 0 && (year % 100 != 0 || ((year / 100) & 3) == (- (1900 / 100) & 3))); | 0 | ||||||||||||||||||
| 45 | } | - | ||||||||||||||||||
| 46 | - | |||||||||||||||||||
| 47 | - | |||||||||||||||||||
| 48 | - | |||||||||||||||||||
| 49 | static | - | ||||||||||||||||||
| 50 | - | |||||||||||||||||||
| 51 | const unsigned short int __mon_yday[2][13] = | - | ||||||||||||||||||
| 52 | { | - | ||||||||||||||||||
| 53 | - | |||||||||||||||||||
| 54 | { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, | - | ||||||||||||||||||
| 55 | - | |||||||||||||||||||
| 56 | { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } | - | ||||||||||||||||||
| 57 | }; | - | ||||||||||||||||||
| 58 | - | |||||||||||||||||||
| 59 | - | |||||||||||||||||||
| 60 | - | |||||||||||||||||||
| 61 | - | |||||||||||||||||||
| 62 | static | - | ||||||||||||||||||
| 63 | _Bool | - | ||||||||||||||||||
| 64 | - | |||||||||||||||||||
| 65 | isdst_differ (int a, int b) | - | ||||||||||||||||||
| 66 | { | - | ||||||||||||||||||
| 67 | return never executed: (!a != !b) && (0 <= a) && (0 <= b);return (!a != !b) && (0 <= a) && (0 <= b);never executed: return (!a != !b) && (0 <= a) && (0 <= b); | 0 | ||||||||||||||||||
| 68 | } | - | ||||||||||||||||||
| 69 | static long_int | - | ||||||||||||||||||
| 70 | ydhms_diff (long_int year1, long_int yday1, int hour1, int min1, int sec1, | - | ||||||||||||||||||
| 71 | int year0, int yday0, int hour0, int min0, int sec0) | - | ||||||||||||||||||
| 72 | { | - | ||||||||||||||||||
| 73 | _Static_assert (-1 / 2 == 0, "verify (" "-1 / 2 == 0" ")"); | - | ||||||||||||||||||
| 74 | - | |||||||||||||||||||
| 75 | - | |||||||||||||||||||
| 76 | - | |||||||||||||||||||
| 77 | int a4 = shr (year1, 2) + shr (1900, 2) - ! (year1 & 3); | - | ||||||||||||||||||
| 78 | int b4 = shr (year0, 2) + shr (1900, 2) - ! (year0 & 3); | - | ||||||||||||||||||
| 79 | int a100 = a4 / 25 - (a4 % 25 < 0); | - | ||||||||||||||||||
| 80 | int b100 = b4 / 25 - (b4 % 25 < 0); | - | ||||||||||||||||||
| 81 | int a400 = shr (a100, 2); | - | ||||||||||||||||||
| 82 | int b400 = shr (b100, 2); | - | ||||||||||||||||||
| 83 | int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400); | - | ||||||||||||||||||
| 84 | - | |||||||||||||||||||
| 85 | - | |||||||||||||||||||
| 86 | long_int years = year1 - year0; | - | ||||||||||||||||||
| 87 | long_int days = 365 * years + yday1 - yday0 + intervening_leap_days; | - | ||||||||||||||||||
| 88 | long_int hours = 24 * days + hour1 - hour0; | - | ||||||||||||||||||
| 89 | long_int minutes = 60 * hours + min1 - min0; | - | ||||||||||||||||||
| 90 | long_int seconds = 60 * minutes + sec1 - sec0; | - | ||||||||||||||||||
| 91 | return never executed: seconds;return seconds;never executed: return seconds; | 0 | ||||||||||||||||||
| 92 | } | - | ||||||||||||||||||
| 93 | - | |||||||||||||||||||
| 94 | - | |||||||||||||||||||
| 95 | - | |||||||||||||||||||
| 96 | static long_int | - | ||||||||||||||||||
| 97 | long_int_avg (long_int a, long_int b) | - | ||||||||||||||||||
| 98 | { | - | ||||||||||||||||||
| 99 | return never executed: shr (a, 1) + shr (b, 1) + ((a | b) & 1);return shr (a, 1) + shr (b, 1) + ((a | b) & 1);never executed: return shr (a, 1) + shr (b, 1) + ((a | b) & 1); | 0 | ||||||||||||||||||
| 100 | } | - | ||||||||||||||||||
| 101 | static long_int | - | ||||||||||||||||||
| 102 | guess_time_tm (long_int year, long_int yday, int hour, int min, int sec, | - | ||||||||||||||||||
| 103 | long_int t, const struct tm *tp) | - | ||||||||||||||||||
| 104 | { | - | ||||||||||||||||||
| 105 | if (tp
| 0 | ||||||||||||||||||
| 106 | { | - | ||||||||||||||||||
| 107 | long_int result; | - | ||||||||||||||||||
| 108 | long_int d = ydhms_diff (year, yday, hour, min, sec, | - | ||||||||||||||||||
| 109 | tp->tm_year, tp->tm_yday, | - | ||||||||||||||||||
| 110 | tp->tm_hour, tp->tm_min, tp->tm_sec); | - | ||||||||||||||||||
| 111 | if (! __builtin_add_overflow (t, d, &result)
| 0 | ||||||||||||||||||
| 112 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||
| 113 | } never executed: end of block | 0 | ||||||||||||||||||
| 114 | - | |||||||||||||||||||
| 115 | - | |||||||||||||||||||
| 116 | - | |||||||||||||||||||
| 117 | - | |||||||||||||||||||
| 118 | - | |||||||||||||||||||
| 119 | - | |||||||||||||||||||
| 120 | return never executed: (t < long_int_avg (mktime_min, mktime_max)return (t < long_int_avg (mktime_min, mktime_max) ? (t <= mktime_min + 1 ? t + 1 : mktime_min) : (mktime_max - 1 <= t ? t - 1 : mktime_max));never executed: return (t < long_int_avg (mktime_min, mktime_max) ? (t <= mktime_min + 1 ? t + 1 : mktime_min) : (mktime_max - 1 <= t ? t - 1 : mktime_max)); | 0 | ||||||||||||||||||
| 121 | ? (t <= mktime_min + 1 ? t + 1 : mktime_min) never executed: return (t < long_int_avg (mktime_min, mktime_max) ? (t <= mktime_min + 1 ? t + 1 : mktime_min) : (mktime_max - 1 <= t ? t - 1 : mktime_max)); | 0 | ||||||||||||||||||
| 122 | : (mktime_max - 1 <= t ? t - 1 : mktime_max)); never executed: return (t < long_int_avg (mktime_min, mktime_max) ? (t <= mktime_min + 1 ? t + 1 : mktime_min) : (mktime_max - 1 <= t ? t - 1 : mktime_max)); | 0 | ||||||||||||||||||
| 123 | } | - | ||||||||||||||||||
| 124 | - | |||||||||||||||||||
| 125 | - | |||||||||||||||||||
| 126 | - | |||||||||||||||||||
| 127 | - | |||||||||||||||||||
| 128 | static struct tm * | - | ||||||||||||||||||
| 129 | convert_time (struct tm *(*convert) (const time_t *, struct tm *), | - | ||||||||||||||||||
| 130 | long_int t, struct tm *tm) | - | ||||||||||||||||||
| 131 | { | - | ||||||||||||||||||
| 132 | time_t x = t; | - | ||||||||||||||||||
| 133 | return never executed: convert (&x, tm);return convert (&x, tm);never executed: return convert (&x, tm); | 0 | ||||||||||||||||||
| 134 | } | - | ||||||||||||||||||
| 135 | - | |||||||||||||||||||
| 136 | - | |||||||||||||||||||
| 137 | - | |||||||||||||||||||
| 138 | - | |||||||||||||||||||
| 139 | - | |||||||||||||||||||
| 140 | static struct tm * | - | ||||||||||||||||||
| 141 | ranged_convert (struct tm *(*convert) (const time_t *, struct tm *), | - | ||||||||||||||||||
| 142 | long_int *t, struct tm *tp) | - | ||||||||||||||||||
| 143 | { | - | ||||||||||||||||||
| 144 | struct tm *r; | - | ||||||||||||||||||
| 145 | if (*
| 0 | ||||||||||||||||||
| 146 | * never executed: t = mktime_min;*t = mktime_min;never executed: *t = mktime_min; | 0 | ||||||||||||||||||
| 147 | else if (mktime_max < *t
| 0 | ||||||||||||||||||
| 148 | * never executed: t = mktime_max;*t = mktime_max;never executed: *t = mktime_max; | 0 | ||||||||||||||||||
| 149 | r = convert_time (convert, *t, tp); | - | ||||||||||||||||||
| 150 | - | |||||||||||||||||||
| 151 | if (!r
| 0 | ||||||||||||||||||
| 152 | { | - | ||||||||||||||||||
| 153 | long_int bad = *t; | - | ||||||||||||||||||
| 154 | long_int ok = 0; | - | ||||||||||||||||||
| 155 | - | |||||||||||||||||||
| 156 | - | |||||||||||||||||||
| 157 | - | |||||||||||||||||||
| 158 | - | |||||||||||||||||||
| 159 | while ( | - | ||||||||||||||||||
| 160 | 1 | - | ||||||||||||||||||
| 161 | ) | - | ||||||||||||||||||
| 162 | { | - | ||||||||||||||||||
| 163 | long_int mid = long_int_avg (ok, bad); | - | ||||||||||||||||||
| 164 | if (mid != ok
| 0 | ||||||||||||||||||
| 165 | break; never executed: break; | 0 | ||||||||||||||||||
| 166 | r = convert_time (convert, mid, tp); | - | ||||||||||||||||||
| 167 | if (r
| 0 | ||||||||||||||||||
| 168 | ok = mid; never executed: ok = mid; | 0 | ||||||||||||||||||
| 169 | else | - | ||||||||||||||||||
| 170 | bad = mid; never executed: bad = mid; | 0 | ||||||||||||||||||
| 171 | } | - | ||||||||||||||||||
| 172 | - | |||||||||||||||||||
| 173 | if (!r
| 0 | ||||||||||||||||||
| 174 | { | - | ||||||||||||||||||
| 175 | - | |||||||||||||||||||
| 176 | - | |||||||||||||||||||
| 177 | r = convert_time (convert, ok, tp); | - | ||||||||||||||||||
| 178 | } never executed: end of block | 0 | ||||||||||||||||||
| 179 | } never executed: end of block | 0 | ||||||||||||||||||
| 180 | - | |||||||||||||||||||
| 181 | return never executed: r;return r;never executed: return r; | 0 | ||||||||||||||||||
| 182 | } | - | ||||||||||||||||||
| 183 | - | |||||||||||||||||||
| 184 | - | |||||||||||||||||||
| 185 | - | |||||||||||||||||||
| 186 | - | |||||||||||||||||||
| 187 | - | |||||||||||||||||||
| 188 | - | |||||||||||||||||||
| 189 | - | |||||||||||||||||||
| 190 | time_t | - | ||||||||||||||||||
| 191 | mktime_internal (struct tm *tp, | - | ||||||||||||||||||
| 192 | struct tm *(*convert) (const time_t *, struct tm *), | - | ||||||||||||||||||
| 193 | mktime_offset_t *offset) | - | ||||||||||||||||||
| 194 | { | - | ||||||||||||||||||
| 195 | long_int t, gt, t0, t1, t2, dt; | - | ||||||||||||||||||
| 196 | struct tm tm; | - | ||||||||||||||||||
| 197 | - | |||||||||||||||||||
| 198 | - | |||||||||||||||||||
| 199 | - | |||||||||||||||||||
| 200 | - | |||||||||||||||||||
| 201 | - | |||||||||||||||||||
| 202 | int remaining_probes = 6; | - | ||||||||||||||||||
| 203 | - | |||||||||||||||||||
| 204 | - | |||||||||||||||||||
| 205 | - | |||||||||||||||||||
| 206 | int sec = tp->tm_sec; | - | ||||||||||||||||||
| 207 | int min = tp->tm_min; | - | ||||||||||||||||||
| 208 | int hour = tp->tm_hour; | - | ||||||||||||||||||
| 209 | int mday = tp->tm_mday; | - | ||||||||||||||||||
| 210 | int mon = tp->tm_mon; | - | ||||||||||||||||||
| 211 | int year_requested = tp->tm_year; | - | ||||||||||||||||||
| 212 | int isdst = tp->tm_isdst; | - | ||||||||||||||||||
| 213 | - | |||||||||||||||||||
| 214 | - | |||||||||||||||||||
| 215 | int dst2; | - | ||||||||||||||||||
| 216 | - | |||||||||||||||||||
| 217 | - | |||||||||||||||||||
| 218 | int mon_remainder = mon % 12; | - | ||||||||||||||||||
| 219 | int negative_mon_remainder = mon_remainder < 0; | - | ||||||||||||||||||
| 220 | int mon_years = mon / 12 - negative_mon_remainder; | - | ||||||||||||||||||
| 221 | long_int lyear_requested = year_requested; | - | ||||||||||||||||||
| 222 | long_int year = lyear_requested + mon_years; | - | ||||||||||||||||||
| 223 | - | |||||||||||||||||||
| 224 | - | |||||||||||||||||||
| 225 | - | |||||||||||||||||||
| 226 | - | |||||||||||||||||||
| 227 | - | |||||||||||||||||||
| 228 | - | |||||||||||||||||||
| 229 | int mon_yday = ((__mon_yday[leapyear (year)] | - | ||||||||||||||||||
| 230 | [mon_remainder + 12 * negative_mon_remainder]) | - | ||||||||||||||||||
| 231 | - 1); | - | ||||||||||||||||||
| 232 | long_int lmday = mday; | - | ||||||||||||||||||
| 233 | long_int yday = mon_yday + lmday; | - | ||||||||||||||||||
| 234 | - | |||||||||||||||||||
| 235 | int negative_offset_guess; | - | ||||||||||||||||||
| 236 | - | |||||||||||||||||||
| 237 | int sec_requested = sec; | - | ||||||||||||||||||
| 238 | - | |||||||||||||||||||
| 239 | if (1) | - | ||||||||||||||||||
| 240 | { | - | ||||||||||||||||||
| 241 | - | |||||||||||||||||||
| 242 | - | |||||||||||||||||||
| 243 | if (sec < 0
| 0 | ||||||||||||||||||
| 244 | sec = 0; never executed: sec = 0; | 0 | ||||||||||||||||||
| 245 | if (59 < sec
| 0 | ||||||||||||||||||
| 246 | sec = 59; never executed: sec = 59; | 0 | ||||||||||||||||||
| 247 | } never executed: end of block | 0 | ||||||||||||||||||
| 248 | - | |||||||||||||||||||
| 249 | - | |||||||||||||||||||
| 250 | - | |||||||||||||||||||
| 251 | - | |||||||||||||||||||
| 252 | __builtin_sub_overflow (0, *offset, &negative_offset_guess); | - | ||||||||||||||||||
| 253 | t0 = ydhms_diff (year, yday, hour, min, sec, | - | ||||||||||||||||||
| 254 | 1970 - 1900, 0, 0, 0, negative_offset_guess); | - | ||||||||||||||||||
| 255 | - | |||||||||||||||||||
| 256 | - | |||||||||||||||||||
| 257 | - | |||||||||||||||||||
| 258 | for (t = t1 = t2 = t0, dst2 = 0; | - | ||||||||||||||||||
| 259 | (
| 0 | ||||||||||||||||||
| 260 | ranged_convert (convert, &t, &tm)),
| 0 | ||||||||||||||||||
| 261 | t != gt)
| 0 | ||||||||||||||||||
| 262 | t1 = t2, t2 = t, t = gt, dst2 = tm.tm_isdst != 0) | - | ||||||||||||||||||
| 263 | if (t == t1
| 0 | ||||||||||||||||||
| 264 | && (tm.tm_isdst < 0
| 0 | ||||||||||||||||||
| 265 | || (
| 0 | ||||||||||||||||||
| 266 | ? dst2 <= (tm.tm_isdst != 0)
| 0 | ||||||||||||||||||
| 267 | : (isdst != 0) != (tm.tm_isdst != 0))
| 0 | ||||||||||||||||||
| 268 | goto never executed: offset_found;goto offset_found;never executed: goto offset_found; | 0 | ||||||||||||||||||
| 269 | else if (--
| 0 | ||||||||||||||||||
| 270 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||
| 271 | - | |||||||||||||||||||
| 272 | - | |||||||||||||||||||
| 273 | - | |||||||||||||||||||
| 274 | if (isdst_differ (isdst, tm.tm_isdst)
| 0 | ||||||||||||||||||
| 275 | { | - | ||||||||||||||||||
| 276 | int stride = 601200; | - | ||||||||||||||||||
| 277 | - | |||||||||||||||||||
| 278 | - | |||||||||||||||||||
| 279 | - | |||||||||||||||||||
| 280 | - | |||||||||||||||||||
| 281 | - | |||||||||||||||||||
| 282 | - | |||||||||||||||||||
| 283 | int duration_max = 536454000; | - | ||||||||||||||||||
| 284 | - | |||||||||||||||||||
| 285 | - | |||||||||||||||||||
| 286 | - | |||||||||||||||||||
| 287 | int delta_bound = duration_max / 2 + stride; | - | ||||||||||||||||||
| 288 | - | |||||||||||||||||||
| 289 | int delta, direction; | - | ||||||||||||||||||
| 290 | - | |||||||||||||||||||
| 291 | for (delta = stride; delta < delta_bound
| 0 | ||||||||||||||||||
| 292 | for (direction = -1; direction <= 1
| 0 | ||||||||||||||||||
| 293 | { | - | ||||||||||||||||||
| 294 | long_int ot; | - | ||||||||||||||||||
| 295 | if (! __builtin_add_overflow (t, delta * direction, &ot)
| 0 | ||||||||||||||||||
| 296 | { | - | ||||||||||||||||||
| 297 | struct tm otm; | - | ||||||||||||||||||
| 298 | ranged_convert (convert, &ot, &otm); | - | ||||||||||||||||||
| 299 | if (! isdst_differ (isdst, otm.tm_isdst)
| 0 | ||||||||||||||||||
| 300 | { | - | ||||||||||||||||||
| 301 | - | |||||||||||||||||||
| 302 | - | |||||||||||||||||||
| 303 | t = guess_time_tm (year, yday, hour, min, sec, ot, &otm); | - | ||||||||||||||||||
| 304 | ranged_convert (convert, &t, &tm); | - | ||||||||||||||||||
| 305 | goto never executed: offset_found;goto offset_found;never executed: goto offset_found; | 0 | ||||||||||||||||||
| 306 | } | - | ||||||||||||||||||
| 307 | } never executed: end of block | 0 | ||||||||||||||||||
| 308 | } never executed: end of block | 0 | ||||||||||||||||||
| 309 | } never executed: end of block | 0 | ||||||||||||||||||
| 310 | - | |||||||||||||||||||
| 311 | offset_found: code before this statement never executed: offset_found: | 0 | ||||||||||||||||||
| 312 | - | |||||||||||||||||||
| 313 | - | |||||||||||||||||||
| 314 | - | |||||||||||||||||||
| 315 | __builtin_sub_overflow (t, t0, &dt); | - | ||||||||||||||||||
| 316 | __builtin_sub_overflow (dt, negative_offset_guess, offset); | - | ||||||||||||||||||
| 317 | - | |||||||||||||||||||
| 318 | if (1 && sec_requested != tm.tm_sec
| 0 | ||||||||||||||||||
| 319 | { | - | ||||||||||||||||||
| 320 | - | |||||||||||||||||||
| 321 | - | |||||||||||||||||||
| 322 | long_int sec_adjustment = sec == 0
| 0 | ||||||||||||||||||
| 323 | sec_adjustment -= sec; | - | ||||||||||||||||||
| 324 | sec_adjustment += sec_requested; | - | ||||||||||||||||||
| 325 | if (__builtin_add_overflow (t, sec_adjustment, &t)
| 0 | ||||||||||||||||||
| 326 | || ! (mktime_min <= t
| 0 | ||||||||||||||||||
| 327 | || ! convert_time (convert, t, &tm)
| 0 | ||||||||||||||||||
| 328 | return never executed: -1;return -1;never executed: return -1; | 0 | ||||||||||||||||||
| 329 | } never executed: end of block | 0 | ||||||||||||||||||
| 330 | - | |||||||||||||||||||
| 331 | *tp = tm; | - | ||||||||||||||||||
| 332 | return never executed: t;return t;never executed: return t; | 0 | ||||||||||||||||||
| 333 | } | - | ||||||||||||||||||
| Switch to Source code | Preprocessed file |