summaryrefslogtreecommitdiff
path: root/util/romcc/tests/linux_test12.c
blob: 5503aa05f045f2e0d6b3eb4c8104819f462b0366 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "linux_syscall.h"
#include "linux_console.h"

#define MACRO(hello, hello2) 1

#ifndef A
#define A 135
#endif
#define B A
#define C B
#define D C
#define E D
#define F E
#define G F
#define H G
#define I H

#define FOO() "hah?\n"
#define BAR(X) ( X " There\n" )
#define BAZ(X) #X
#define SUM(X, Y) ((X) + (Y))
#define REALLY_SUM(...) SUM(__VA_ARGS__)


#define hash_hash #   	/* comment */	 ## #
#define mkstr(a) # a
#define in_between(a) mkstr(a)
#define join(c, d) in_between(c hash_hash d)

#define ECHO(X) X
#define print_debug(X) ECHO(print_debug(X))

static void test(void)
{
	print_debug(FOO());
	print_debug(BAR("Hi!!"));
	print_debug(BAZ(This should be shown as a string... "enclosed in quotes") "\n");
	print_debug("This is a quote\" see\n");
	print_debug(BAR(BAZ(I)));

	print_debug_hex32(REALLY_SUM(1,2));
	print_debug("\n");

	print_debug(join(x, y) "\n");

	print_debug("romcc: ");
	print_debug_hex8(__ROMCC__);
	print_debug(".");
	print_debug_hex8(__ROMCC_MINOR__);
	print_debug("\n");

	print_debug(__FILE__);
	print_debug(":");
	print_debug(__func__);
	print_debug(":");
	print_debug_hex32(__LINE__);
	print_debug("\n");

	print_debug("Compiled at: ");
	print_debug(__DATE__);
	print_debug(" ");
	print_debug(__TIME__);
	print_debug("\n");

	print_debug("Compile time: ");
	print_debug(__TIME__);
	print_debug("\n");

	_exit(0);
}