xref: /aosp_15_r20/external/musl/compat/time32/time32gm.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #define _GNU_SOURCE
2*c9945492SAndroid Build Coastguard Worker #include "time32.h"
3*c9945492SAndroid Build Coastguard Worker #include <time.h>
4*c9945492SAndroid Build Coastguard Worker #include <errno.h>
5*c9945492SAndroid Build Coastguard Worker #include <stdint.h>
6*c9945492SAndroid Build Coastguard Worker 
__time32gm(struct tm * tm)7*c9945492SAndroid Build Coastguard Worker time32_t __time32gm(struct tm *tm)
8*c9945492SAndroid Build Coastguard Worker {
9*c9945492SAndroid Build Coastguard Worker 	time_t t = timegm(tm);
10*c9945492SAndroid Build Coastguard Worker 	if (t < INT32_MIN || t > INT32_MAX) {
11*c9945492SAndroid Build Coastguard Worker 		errno = EOVERFLOW;
12*c9945492SAndroid Build Coastguard Worker 		return -1;
13*c9945492SAndroid Build Coastguard Worker 	}
14*c9945492SAndroid Build Coastguard Worker 	return t;
15*c9945492SAndroid Build Coastguard Worker }
16