1*2cfa11a5SAlex Lorenz // RUN: %clang_cc1 -fsyntax-only -triple thumbv7--windows-msvc19.11.0 -verify %s 2*2cfa11a5SAlex Lorenz // RUN: %clang_cc1 -fsyntax-only -triple armv7--windows-msvc19.11.0 -DARM -verify %s 3*2cfa11a5SAlex Lorenz // expected-no-diagnostics 4*2cfa11a5SAlex Lorenz 5*2cfa11a5SAlex Lorenz // ARM does match arm and thumb. 6*2cfa11a5SAlex Lorenz #if !__is_target_arch(arm) 7*2cfa11a5SAlex Lorenz #error "mismatching arch" 8*2cfa11a5SAlex Lorenz #endif 9*2cfa11a5SAlex Lorenz 10*2cfa11a5SAlex Lorenz #if __is_target_arch(armeb) || __is_target_arch(armebv7) || __is_target_arch(thumbeb) || __is_target_arch(thumbebv7) 11*2cfa11a5SAlex Lorenz #error "mismatching arch" 12*2cfa11a5SAlex Lorenz #endif 13*2cfa11a5SAlex Lorenz 14*2cfa11a5SAlex Lorenz // ARMV7 does match armv7 and thumbv7. 15*2cfa11a5SAlex Lorenz #if !__is_target_arch(armv7) 16*2cfa11a5SAlex Lorenz #error "mismatching arch" 17*2cfa11a5SAlex Lorenz #endif 18*2cfa11a5SAlex Lorenz 19*2cfa11a5SAlex Lorenz // ARMV6 does not match armv7 or thumbv7. 20*2cfa11a5SAlex Lorenz #if __is_target_arch(armv6) 21*2cfa11a5SAlex Lorenz #error "mismatching arch" 22*2cfa11a5SAlex Lorenz #endif 23*2cfa11a5SAlex Lorenz 24*2cfa11a5SAlex Lorenz #if __is_target_arch(arm64) 25*2cfa11a5SAlex Lorenz #error "mismatching arch" 26*2cfa11a5SAlex Lorenz #endif 27*2cfa11a5SAlex Lorenz 28*2cfa11a5SAlex Lorenz #ifndef ARM 29*2cfa11a5SAlex Lorenz 30*2cfa11a5SAlex Lorenz // Allow checking for precise arch + subarch. 31*2cfa11a5SAlex Lorenz #if !__is_target_arch(thumbv7) 32*2cfa11a5SAlex Lorenz #error "mismatching arch" 33*2cfa11a5SAlex Lorenz #endif 34*2cfa11a5SAlex Lorenz 35*2cfa11a5SAlex Lorenz // But also allow checking for the arch without subarch. 36*2cfa11a5SAlex Lorenz #if !__is_target_arch(thumb) 37*2cfa11a5SAlex Lorenz #error "mismatching arch" 38*2cfa11a5SAlex Lorenz #endif 39*2cfa11a5SAlex Lorenz 40*2cfa11a5SAlex Lorenz // Same arch with a different subarch doesn't match. 41*2cfa11a5SAlex Lorenz #if __is_target_arch(thumbv6) 42*2cfa11a5SAlex Lorenz #error "mismatching arch" 43*2cfa11a5SAlex Lorenz #endif 44*2cfa11a5SAlex Lorenz 45*2cfa11a5SAlex Lorenz #else 46*2cfa11a5SAlex Lorenz 47*2cfa11a5SAlex Lorenz #if __is_target_arch(thumbv7) || __is_target_arch(thumb) 48*2cfa11a5SAlex Lorenz #error "mismatching arch" 49*2cfa11a5SAlex Lorenz #endif 50*2cfa11a5SAlex Lorenz 51*2cfa11a5SAlex Lorenz #endif 52