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