aboutsummaryrefslogtreecommitdiffstats
path: root/src/generate-macros.c
blob: ef87ad55d2ba3319c8d2245e1380e9ce5e685470 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdint.h>
#include <stdio.h>

int
main(void)
{
	if (sizeof(float) == 4) {
		unsigned long int a, b;
		a = (unsigned long int)*(uint32_t *)&(float){  (float)(1. / 12.) };
		b = (unsigned long int)*(uint32_t *)&(float){ -(float)(1. / 12.) };
		printf("#define USING_BINARY32 %i\n",
		       a == 0x3daaaaabUL && b == 0xbdaaaaabUL);
	}
	if (sizeof(double) == 8) {
		unsigned long long int a, b;
		a = (unsigned long long int)*(uint64_t *)&(double){  1. / 12. };
		b = (unsigned long long int)*(uint64_t *)&(double){ -1. / 12. };
		printf("#define USING_BINARY64 %i\n",
		       a == 0x3fb5555555555555ULL && b == 0xbfb5555555555555ULL);
	}
	return 0;
}