//===--- DirectX.cpp - Implement DirectX target feature support -----------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file implements DirectX TargetInfo objects. // //===----------------------------------------------------------------------===// #include "DirectX.h" #include "Targets.h" #include "clang/Basic/TargetBuiltins.h" using namespace clang; using namespace clang::targets; static constexpr int NumBuiltins = clang::DirectX::LastTSBuiltin - Builtin::FirstTSBuiltin; #define GET_BUILTIN_STR_TABLE #include "clang/Basic/BuiltinsDirectX.inc" #undef GET_BUILTIN_STR_TABLE static constexpr Builtin::Info BuiltinInfos[] = { #define GET_BUILTIN_INFOS #include "clang/Basic/BuiltinsDirectX.inc" #undef GET_BUILTIN_INFOS }; static_assert(std::size(BuiltinInfos) == NumBuiltins); void DirectXTargetInfo::getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const { DefineStd(Builder, "DIRECTX", Opts); } llvm::SmallVector DirectXTargetInfo::getTargetBuiltins() const { return {{&BuiltinStrings, BuiltinInfos}}; }