Author: arphaman Date: Fri Dec 15 11:58:38 2017 New Revision: 320853 URL: http://llvm.org/viewvc/llvm-project?rev=320853&view=rev Log: __is_target_arch: Check the arch and subarch instead of the arch name
This ensures that when compiling for "arm64" __is_target_arch will succeed for both "arm64" and "aarch64". Thanks to Bob Wilson who pointed this out! Added: cfe/trunk/test/Preprocessor/is_target_arm64.c Modified: cfe/trunk/lib/Lex/PPMacroExpansion.cpp Modified: cfe/trunk/lib/Lex/PPMacroExpansion.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPMacroExpansion.cpp?rev=320853&r1=320852&r2=320853&view=diff ============================================================================== --- cfe/trunk/lib/Lex/PPMacroExpansion.cpp (original) +++ cfe/trunk/lib/Lex/PPMacroExpansion.cpp Fri Dec 15 11:58:38 2017 @@ -1615,9 +1615,9 @@ static bool isTargetArch(const TargetInf } // Check the parsed arch when it has no sub arch to allow Clang to // match thumb to thumbv7 but to prohibit matching thumbv6 to thumbv7. - return (Arch.getSubArch() == llvm::Triple::NoSubArch && - Arch.getArch() == TT.getArch()) || - Arch.getArchName() == TT.getArchName(); + return (Arch.getSubArch() == llvm::Triple::NoSubArch || + Arch.getSubArch() == TT.getSubArch()) && + Arch.getArch() == TT.getArch(); } /// Implements the __is_target_vendor builtin macro. Added: cfe/trunk/test/Preprocessor/is_target_arm64.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/is_target_arm64.c?rev=320853&view=auto ============================================================================== --- cfe/trunk/test/Preprocessor/is_target_arm64.c (added) +++ cfe/trunk/test/Preprocessor/is_target_arm64.c Fri Dec 15 11:58:38 2017 @@ -0,0 +1,10 @@ +// RUN: %clang_cc1 -fsyntax-only -triple arm64-apple-ios11 -verify %s +// expected-no-diagnostics + +#if !__is_target_arch(arm64) || !__is_target_arch(aarch64) + #error "mismatching arch" +#endif + +#if __is_target_arch(aarch64_be) + #error "mismatching arch" +#endif _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits