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

time32_t __mktime32(struct tm *tm)
{
	struct tm tmp = *tm;
	time_t t = mktime(&tmp);
	if (t < INT32_MIN || t > INT32_MAX) {
		errno = EOVERFLOW;
		return -1;
	}
	*tm = tmp;
	return t;
}