43 lines · cpp
1//===--- DirectX.cpp - Implement DirectX target feature support -----------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file implements DirectX TargetInfo objects.10//11//===----------------------------------------------------------------------===//12 13#include "DirectX.h"14#include "Targets.h"15#include "clang/Basic/TargetBuiltins.h"16 17using namespace clang;18using namespace clang::targets;19 20static constexpr int NumBuiltins =21 clang::DirectX::LastTSBuiltin - Builtin::FirstTSBuiltin;22 23#define GET_BUILTIN_STR_TABLE24#include "clang/Basic/BuiltinsDirectX.inc"25#undef GET_BUILTIN_STR_TABLE26 27static constexpr Builtin::Info BuiltinInfos[] = {28#define GET_BUILTIN_INFOS29#include "clang/Basic/BuiltinsDirectX.inc"30#undef GET_BUILTIN_INFOS31};32static_assert(std::size(BuiltinInfos) == NumBuiltins);33 34void DirectXTargetInfo::getTargetDefines(const LangOptions &Opts,35 MacroBuilder &Builder) const {36 DefineStd(Builder, "DIRECTX", Opts);37}38 39llvm::SmallVector<Builtin::InfosShard>40DirectXTargetInfo::getTargetBuiltins() const {41 return {{&BuiltinStrings, BuiltinInfos}};42}43