1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao/*
2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoThis is a clang style test case for checking that preprocessor
3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaodefines match gcc.
4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao*/
5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao/*
7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN: for arch in -m32 -m64; do \
8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:   for lang in -std=gnu89 -ansi -std=c99 -std=gnu99; do \
9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:     for input in c objective-c; do \
10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:       for opts in "-O0" "-O1 -dynamic" "-O2 -static" "-Os"; do     \
11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:         echo "-- $arch, $lang, $input, $opts --"; \
12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:         for cc in 0 1; do \
13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:           if [ "$cc" == 0 ]; then \
14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:             cc_prog=clang; \
15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:             output=%t0; \
16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:           else \
17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:             cc_prog=gcc; \
18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:             output=%t1; \
19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:           fi; \
20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:           $cc_prog $arch $lang $opts -march=core2 -dM -E -x $input %s | sort > $output; \
21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:          done; \
22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:          if (! diff %t0 %t1); then exit 1; fi; \
23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:       done; \
24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:     done; \
25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN:   done; \
26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoRUN: done;
27ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao*/
28ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
29ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao/* We don't care about this difference */
30ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#ifdef __PIC__
31ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#if __PIC__ == 1
32ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __PIC__
33ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __pic__
34ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#define __PIC__ 2
35ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#define __pic__ 2
36ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#endif
37ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#endif
38ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
39ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao/* Undefine things we don't expect to match. */
40ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __core2
41ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __core2__
42ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __SSSE3__
43ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
44ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao/* Undefine things we don't expect to match. */
45ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC_EVAL_METHOD__
46ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __INT16_TYPE__
47ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __INT32_TYPE__
48ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __INT64_TYPE__
49ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __INT8_TYPE__
50ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __SSP__
51ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __APPLE_CC__
52ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __VERSION__
53ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __clang__
54ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __llvm__
55ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __nocona
56ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __nocona__
57ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __k8
58ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __k8__
59ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __tune_nocona__
60ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __tune_core2__
61ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __POINTER_WIDTH__
62ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __INTPTR_TYPE__
63ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __NO_MATH_INLINES
64ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
65ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC128_DEN__
66ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC128_EPSILON__
67ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC128_MANT_DIG__
68ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC128_MAX_EXP__
69ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC128_MAX__
70ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC128_MIN_EXP__
71ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC128_MIN__
72ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC32_DEN__
73ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC32_EPSILON__
74ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC32_MANT_DIG__
75ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC32_MAX_EXP__
76ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC32_MAX__
77ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC32_MIN_EXP__
78ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC32_MIN__
79ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC64_DEN__
80ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC64_EPSILON__
81ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC64_MANT_DIG__
82ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC64_MAX_EXP__
83ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC64_MAX__
84ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC64_MIN_EXP__
85ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao#undef __DEC64_MIN__
86