1*06c3fb27SDimitry Andric //===--- InterpreterUtils.h - Incremental Utils --------*- C++ -*-===// 2*06c3fb27SDimitry Andric // 3*06c3fb27SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*06c3fb27SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*06c3fb27SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*06c3fb27SDimitry Andric // 7*06c3fb27SDimitry Andric //===----------------------------------------------------------------------===// 8*06c3fb27SDimitry Andric // 9*06c3fb27SDimitry Andric // This file implements some common utils used in the incremental library. 10*06c3fb27SDimitry Andric // 11*06c3fb27SDimitry Andric //===----------------------------------------------------------------------===// 12*06c3fb27SDimitry Andric 13*06c3fb27SDimitry Andric #ifndef LLVM_CLANG_INTERPRETER_UTILS_H 14*06c3fb27SDimitry Andric #define LLVM_CLANG_INTERPRETER_UTILS_H 15*06c3fb27SDimitry Andric 16*06c3fb27SDimitry Andric #include "clang/AST/ASTContext.h" 17*06c3fb27SDimitry Andric #include "clang/AST/Mangle.h" 18*06c3fb27SDimitry Andric #include "clang/AST/TypeVisitor.h" 19*06c3fb27SDimitry Andric #include "clang/Basic/TargetInfo.h" 20*06c3fb27SDimitry Andric #include "clang/CodeGen/ModuleBuilder.h" 21*06c3fb27SDimitry Andric #include "clang/CodeGen/ObjectFilePCHContainerOperations.h" 22*06c3fb27SDimitry Andric #include "clang/Driver/Compilation.h" 23*06c3fb27SDimitry Andric #include "clang/Driver/Driver.h" 24*06c3fb27SDimitry Andric #include "clang/Driver/Job.h" 25*06c3fb27SDimitry Andric #include "clang/Driver/Options.h" 26*06c3fb27SDimitry Andric #include "clang/Driver/Tool.h" 27*06c3fb27SDimitry Andric #include "clang/Frontend/CompilerInstance.h" 28*06c3fb27SDimitry Andric #include "clang/Frontend/TextDiagnosticBuffer.h" 29*06c3fb27SDimitry Andric #include "clang/Lex/PreprocessorOptions.h" 30*06c3fb27SDimitry Andric 31*06c3fb27SDimitry Andric #include "clang/Sema/Lookup.h" 32*06c3fb27SDimitry Andric #include "llvm/IR/Module.h" 33*06c3fb27SDimitry Andric #include "llvm/Support/Errc.h" 34*06c3fb27SDimitry Andric #include "llvm/TargetParser/Host.h" 35*06c3fb27SDimitry Andric 36*06c3fb27SDimitry Andric namespace clang { 37*06c3fb27SDimitry Andric IntegerLiteral *IntegerLiteralExpr(ASTContext &C, uint64_t Val); 38*06c3fb27SDimitry Andric 39*06c3fb27SDimitry Andric Expr *CStyleCastPtrExpr(Sema &S, QualType Ty, Expr *E); 40*06c3fb27SDimitry Andric 41*06c3fb27SDimitry Andric Expr *CStyleCastPtrExpr(Sema &S, QualType Ty, uintptr_t Ptr); 42*06c3fb27SDimitry Andric 43*06c3fb27SDimitry Andric Sema::DeclGroupPtrTy CreateDGPtrFrom(Sema &S, Decl *D); 44*06c3fb27SDimitry Andric 45*06c3fb27SDimitry Andric NamespaceDecl *LookupNamespace(Sema &S, llvm::StringRef Name, 46*06c3fb27SDimitry Andric const DeclContext *Within = nullptr); 47*06c3fb27SDimitry Andric 48*06c3fb27SDimitry Andric NamedDecl *LookupNamed(Sema &S, llvm::StringRef Name, 49*06c3fb27SDimitry Andric const DeclContext *Within); 50*06c3fb27SDimitry Andric 51*06c3fb27SDimitry Andric std::string GetFullTypeName(ASTContext &Ctx, QualType QT); 52*06c3fb27SDimitry Andric } // namespace clang 53*06c3fb27SDimitry Andric 54*06c3fb27SDimitry Andric #endif 55