xref: /llvm-project/clang/utils/builtin-defines.c (revision 21a92a8a559ba27907290bafd181e490101a4fcb)
117ddaa67SDaniel Dunbar /*
217ddaa67SDaniel Dunbar This is a clang style test case for checking that preprocessor
317ddaa67SDaniel Dunbar defines match gcc.
417ddaa67SDaniel Dunbar */
517ddaa67SDaniel Dunbar 
617ddaa67SDaniel Dunbar /*
717ddaa67SDaniel Dunbar RUN: for arch in -m32 -m64; do \
817ddaa67SDaniel Dunbar RUN:   for lang in -std=gnu89 -ansi -std=c99 -std=gnu99; do \
917ddaa67SDaniel Dunbar RUN:     for input in c objective-c; do \
1017ddaa67SDaniel Dunbar RUN:       for opts in "-O0" "-O1 -dynamic" "-O2 -static" "-Os"; do     \
1117ddaa67SDaniel Dunbar RUN:         echo "-- $arch, $lang, $input, $opts --"; \
1217ddaa67SDaniel Dunbar RUN:         for cc in 0 1; do \
1317ddaa67SDaniel Dunbar RUN:           if [ "$cc" == 0 ]; then \
1417ddaa67SDaniel Dunbar RUN:             cc_prog=clang; \
1517ddaa67SDaniel Dunbar RUN:             output=%t0; \
1617ddaa67SDaniel Dunbar RUN:           else \
1717ddaa67SDaniel Dunbar RUN:             cc_prog=gcc; \
1817ddaa67SDaniel Dunbar RUN:             output=%t1; \
1917ddaa67SDaniel Dunbar RUN:           fi; \
20a3bb6f2eSDaniel Dunbar RUN:           $cc_prog $arch $lang $opts -march=core2 -dM -E -x $input %s | sort > $output; \
2117ddaa67SDaniel Dunbar RUN:          done; \
2217ddaa67SDaniel Dunbar RUN:          if (! diff %t0 %t1); then exit 1; fi; \
2317ddaa67SDaniel Dunbar RUN:       done; \
2417ddaa67SDaniel Dunbar RUN:     done; \
2517ddaa67SDaniel Dunbar RUN:   done; \
2617ddaa67SDaniel Dunbar RUN: done;
2717ddaa67SDaniel Dunbar */
2817ddaa67SDaniel Dunbar 
2917ddaa67SDaniel Dunbar /* We don't care about this difference */
3017ddaa67SDaniel Dunbar #ifdef __PIC__
3117ddaa67SDaniel Dunbar #if __PIC__ == 1
3217ddaa67SDaniel Dunbar #undef __PIC__
3317ddaa67SDaniel Dunbar #undef __pic__
3417ddaa67SDaniel Dunbar #define __PIC__ 2
3517ddaa67SDaniel Dunbar #define __pic__ 2
3617ddaa67SDaniel Dunbar #endif
3717ddaa67SDaniel Dunbar #endif
3817ddaa67SDaniel Dunbar 
3917ddaa67SDaniel Dunbar /* Undefine things we don't expect to match. */
40a3bb6f2eSDaniel Dunbar #undef __core2
41a3bb6f2eSDaniel Dunbar #undef __core2__
42a3bb6f2eSDaniel Dunbar #undef __SSSE3__
43a3bb6f2eSDaniel Dunbar 
44a3bb6f2eSDaniel Dunbar /* Undefine things we don't expect to match. */
4517ddaa67SDaniel Dunbar #undef __DEC_EVAL_METHOD__
4617ddaa67SDaniel Dunbar #undef __INT16_TYPE__
4717ddaa67SDaniel Dunbar #undef __INT32_TYPE__
4817ddaa67SDaniel Dunbar #undef __INT64_TYPE__
4917ddaa67SDaniel Dunbar #undef __INT8_TYPE__
5017ddaa67SDaniel Dunbar #undef __SSP__
5117ddaa67SDaniel Dunbar #undef __APPLE_CC__
52*21a92a8aSSylvestre Ledru #undef __VERSION__
5317ddaa67SDaniel Dunbar #undef __clang__
5417ddaa67SDaniel Dunbar #undef __llvm__
5517ddaa67SDaniel Dunbar #undef __nocona
5617ddaa67SDaniel Dunbar #undef __nocona__
5717ddaa67SDaniel Dunbar #undef __k8
5817ddaa67SDaniel Dunbar #undef __k8__
5917ddaa67SDaniel Dunbar #undef __tune_nocona__
6017ddaa67SDaniel Dunbar #undef __tune_core2__
6117ddaa67SDaniel Dunbar #undef __POINTER_WIDTH__
6217ddaa67SDaniel Dunbar #undef __INTPTR_TYPE__
6344ea0b2eSDaniel Dunbar #undef __NO_MATH_INLINES
6417ddaa67SDaniel Dunbar 
6517ddaa67SDaniel Dunbar #undef __DEC128_DEN__
6617ddaa67SDaniel Dunbar #undef __DEC128_EPSILON__
6717ddaa67SDaniel Dunbar #undef __DEC128_MANT_DIG__
6817ddaa67SDaniel Dunbar #undef __DEC128_MAX_EXP__
6917ddaa67SDaniel Dunbar #undef __DEC128_MAX__
7017ddaa67SDaniel Dunbar #undef __DEC128_MIN_EXP__
7117ddaa67SDaniel Dunbar #undef __DEC128_MIN__
7217ddaa67SDaniel Dunbar #undef __DEC32_DEN__
7317ddaa67SDaniel Dunbar #undef __DEC32_EPSILON__
7417ddaa67SDaniel Dunbar #undef __DEC32_MANT_DIG__
7517ddaa67SDaniel Dunbar #undef __DEC32_MAX_EXP__
7617ddaa67SDaniel Dunbar #undef __DEC32_MAX__
7717ddaa67SDaniel Dunbar #undef __DEC32_MIN_EXP__
7817ddaa67SDaniel Dunbar #undef __DEC32_MIN__
7917ddaa67SDaniel Dunbar #undef __DEC64_DEN__
8017ddaa67SDaniel Dunbar #undef __DEC64_EPSILON__
8117ddaa67SDaniel Dunbar #undef __DEC64_MANT_DIG__
8217ddaa67SDaniel Dunbar #undef __DEC64_MAX_EXP__
8317ddaa67SDaniel Dunbar #undef __DEC64_MAX__
8417ddaa67SDaniel Dunbar #undef __DEC64_MIN_EXP__
8517ddaa67SDaniel Dunbar #undef __DEC64_MIN__
86