//===--- DeclOpenACC.cpp - Classes for OpenACC Constructs -----------------===// // // 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 the subclasses of Decl class declared in Decl.h // //===----------------------------------------------------------------------===// #include "clang/AST/DeclOpenACC.h" #include "clang/AST/ASTContext.h" using namespace clang; OpenACCDeclareDecl * OpenACCDeclareDecl::Create(ASTContext &Ctx, DeclContext *DC, SourceLocation StartLoc, SourceLocation DirLoc, SourceLocation EndLoc, ArrayRef Clauses) { return new (Ctx, DC, additionalSizeToAlloc(Clauses.size())) OpenACCDeclareDecl(DC, StartLoc, DirLoc, EndLoc, Clauses); } OpenACCDeclareDecl * OpenACCDeclareDecl::CreateDeserialized(ASTContext &Ctx, GlobalDeclID ID, unsigned NumClauses) { return new (Ctx, ID, additionalSizeToAlloc(NumClauses)) OpenACCDeclareDecl(NumClauses); } OpenACCRoutineDecl * OpenACCRoutineDecl::Create(ASTContext &Ctx, DeclContext *DC, SourceLocation StartLoc, SourceLocation DirLoc, SourceLocation LParenLoc, Expr *FuncRef, SourceLocation RParenLoc, SourceLocation EndLoc, ArrayRef Clauses) { return new (Ctx, DC, additionalSizeToAlloc(Clauses.size())) OpenACCRoutineDecl(DC, StartLoc, DirLoc, LParenLoc, FuncRef, RParenLoc, EndLoc, Clauses); } OpenACCRoutineDecl * OpenACCRoutineDecl::CreateDeserialized(ASTContext &Ctx, GlobalDeclID ID, unsigned NumClauses) { return new (Ctx, ID, additionalSizeToAlloc(NumClauses)) OpenACCRoutineDecl(NumClauses); }