aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/Builtins.cpp
diff options
context:
space:
mode:
authorserge-sans-paille <sguelton@mozilla.com>2023-01-20 11:33:25 +0100
committerserge-sans-paille <sguelton@mozilla.com>2023-01-20 17:20:14 +0100
commitcf1756146d386667a80501fb8161505d12950804 (patch)
tree2dc40d59be7ce6c02bf713be273dbab4ee2fbc98 /clang/lib/Basic/Builtins.cpp
parented7a46a8de77087447936965044e2faf734102e5 (diff)
downloadllvm-cf1756146d386667a80501fb8161505d12950804.zip
llvm-cf1756146d386667a80501fb8161505d12950804.tar.gz
llvm-cf1756146d386667a80501fb8161505d12950804.tar.bz2
[NFC] Reformat isBuiltinSupported with early exit
Diffstat (limited to 'clang/lib/Basic/Builtins.cpp')
-rw-r--r--clang/lib/Basic/Builtins.cpp70
1 files changed, 41 insertions, 29 deletions
diff --git a/clang/lib/Basic/Builtins.cpp b/clang/lib/Basic/Builtins.cpp
index 375f474..c9426a7 100644
--- a/clang/lib/Basic/Builtins.cpp
+++ b/clang/lib/Basic/Builtins.cpp
@@ -64,37 +64,49 @@ bool Builtin::Context::isBuiltinFunc(llvm::StringRef FuncName) {
/// Is this builtin supported according to the given language options?
static bool builtinIsSupported(const Builtin::Info &BuiltinInfo,
const LangOptions &LangOpts) {
- bool BuiltinsUnsupported =
- LangOpts.NoBuiltin && strchr(BuiltinInfo.Attributes, 'f') != nullptr;
- bool CorBuiltinsUnsupported =
- !LangOpts.Coroutines && (BuiltinInfo.Langs & COR_LANG);
- bool MathBuiltinsUnsupported =
- LangOpts.NoMathBuiltin && BuiltinInfo.HeaderName &&
- llvm::StringRef(BuiltinInfo.HeaderName).equals("math.h");
- bool GnuModeUnsupported = !LangOpts.GNUMode && (BuiltinInfo.Langs & GNU_LANG);
- bool MSModeUnsupported =
- !LangOpts.MicrosoftExt && (BuiltinInfo.Langs & MS_LANG);
- bool ObjCUnsupported = !LangOpts.ObjC && BuiltinInfo.Langs == OBJC_LANG;
- bool OclCUnsupported =
- !LangOpts.OpenCL && (BuiltinInfo.Langs & ALL_OCL_LANGUAGES);
- bool OclGASUnsupported =
- !LangOpts.OpenCLGenericAddressSpace && (BuiltinInfo.Langs & OCL_GAS);
- bool OclPipeUnsupported =
- !LangOpts.OpenCLPipes && (BuiltinInfo.Langs & OCL_PIPE);
+ if (bool BuiltinsUnsupported =
+ LangOpts.NoBuiltin && strchr(BuiltinInfo.Attributes, 'f') != nullptr)
+ return false;
+ if (bool CorBuiltinsUnsupported =
+ !LangOpts.Coroutines && (BuiltinInfo.Langs & COR_LANG))
+ return false;
+ if (bool MathBuiltinsUnsupported =
+ LangOpts.NoMathBuiltin && BuiltinInfo.HeaderName &&
+ llvm::StringRef(BuiltinInfo.HeaderName).equals("math.h"))
+ return false;
+ if (bool GnuModeUnsupported =
+ !LangOpts.GNUMode && (BuiltinInfo.Langs & GNU_LANG))
+ return false;
+ if (bool MSModeUnsupported =
+ !LangOpts.MicrosoftExt && (BuiltinInfo.Langs & MS_LANG))
+ return false;
+ if (bool ObjCUnsupported = !LangOpts.ObjC && BuiltinInfo.Langs == OBJC_LANG)
+ return false;
+ if (bool OclCUnsupported =
+ !LangOpts.OpenCL && (BuiltinInfo.Langs & ALL_OCL_LANGUAGES))
+ return false;
+ if (bool OclGASUnsupported =
+ !LangOpts.OpenCLGenericAddressSpace && (BuiltinInfo.Langs & OCL_GAS))
+ return false;
+ if (bool OclPipeUnsupported =
+ !LangOpts.OpenCLPipes && (BuiltinInfo.Langs & OCL_PIPE))
+ return false;
+
// Device side enqueue is not supported until OpenCL 2.0. In 2.0 and higher
// support is indicated with language option for blocks.
- bool OclDSEUnsupported =
- (LangOpts.getOpenCLCompatibleVersion() < 200 || !LangOpts.Blocks) &&
- (BuiltinInfo.Langs & OCL_DSE);
- bool OpenMPUnsupported = !LangOpts.OpenMP && BuiltinInfo.Langs == OMP_LANG;
- bool CUDAUnsupported = !LangOpts.CUDA && BuiltinInfo.Langs == CUDA_LANG;
- bool CPlusPlusUnsupported =
- !LangOpts.CPlusPlus && BuiltinInfo.Langs == CXX_LANG;
- return !BuiltinsUnsupported && !CorBuiltinsUnsupported &&
- !MathBuiltinsUnsupported && !OclCUnsupported && !OclGASUnsupported &&
- !OclPipeUnsupported && !OclDSEUnsupported && !OpenMPUnsupported &&
- !GnuModeUnsupported && !MSModeUnsupported && !ObjCUnsupported &&
- !CPlusPlusUnsupported && !CUDAUnsupported;
+ if (bool OclDSEUnsupported =
+ (LangOpts.getOpenCLCompatibleVersion() < 200 || !LangOpts.Blocks) &&
+ (BuiltinInfo.Langs & OCL_DSE))
+ return false;
+ if (bool OpenMPUnsupported =
+ !LangOpts.OpenMP && BuiltinInfo.Langs == OMP_LANG)
+ return false;
+ if (bool CUDAUnsupported = !LangOpts.CUDA && BuiltinInfo.Langs == CUDA_LANG)
+ return false;
+ if (bool CPlusPlusUnsupported =
+ !LangOpts.CPlusPlus && BuiltinInfo.Langs == CXX_LANG)
+ return false;
+ return true;
}
/// initializeBuiltins - Mark the identifiers for all the builtins with their