about summary refs log tree commit diff
path: root/compat/time32/time32gm.c
blob: 60d68fbf84922e4b2fea41a25c9aa4860cf7fed4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#define _GNU_SOURCE
#include "time32.h"
#include <time.h>
#include <errno.h>
#include <stdint.h>

time32_t __time32gm(struct tm *tm)
{
	time_t t = timegm(tm);
	if (t < INT32_MIN || t > INT32_MAX) {
		errno = EOVERFLOW;
		return -1;
	}
	return t;
}