14#ifndef LLVM_CLANG_SEMA_SEMAINTERNAL_H
15#define LLVM_CLANG_SEMA_SEMAINTERNAL_H
28 cast<ParmVarDecl>(FTI.
Params[0].
Param)->getType()->isVoidType();
41 if (!LangOpts.CUDA || !
D)
43 bool isDeviceSideDecl =
D->
hasAttr<CUDADeviceAttr>() ||
46 return isDeviceSideDecl == LangOpts.CUDAIsDevice;
52 "A declaration cannot be both dllimport and dllexport.");
53 if (
auto *Import =
D->
getAttr<DLLImportAttr>())
55 if (
auto *Export =
D->
getAttr<DLLExportAttr>())
62 if (
const auto *TTP = dyn_cast<TemplateTypeParmDecl>(ND))
63 return std::make_pair(TTP->getDepth(), TTP->getIndex());
65 if (
const auto *NTTP = dyn_cast<NonTypeTemplateParmDecl>(ND))
66 return std::make_pair(NTTP->getDepth(), NTTP->getIndex());
68 const auto *TTP = cast<TemplateTemplateParmDecl>(ND);
69 return std::make_pair(TTP->getDepth(), TTP->getIndex());
73inline std::pair<unsigned, unsigned>
76 return std::make_pair(TTP->getDepth(), TTP->getIndex());