CppInterOp
C++ Language Interoperability Layer
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Functions
Compatibility.h File Reference
#include "clang/AST/DeclTemplate.h"
#include "clang/AST/GlobalDecl.h"
#include "clang/Basic/DiagnosticIDs.h"
#include "clang/Basic/DiagnosticOptions.h"
#include "clang/Basic/Cuda.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/Version.h"
#include "clang/Config/config.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/Options.h"
#include "clang/Frontend/TextDiagnosticBuffer.h"
#include "clang/Sema/Sema.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/FileSystem.h"
#include "CppInterOp/Box.h"
#include <atomic>
#include <cstdint>
#include <cstring>
#include <memory>
#include <string>
#include "clang/Interpreter/CodeCompletion.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/ExecutionEngine/JITSymbol.h"
#include "llvm/ExecutionEngine/Orc/LLJIT.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/Regex.h"
#include "DynamicLibraryManager.h"
#include "clang/AST/Mangle.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Interpreter/Interpreter.h"
#include "clang/Interpreter/Value.h"
#include "llvm/Support/DynamicLibrary.h"
#include "llvm/Support/Error.h"
#include "llvm/TargetParser/Host.h"
#include <algorithm>
#include "CppInterOpInterpreter.h"
Include dependency graph for Compatibility.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  compat::SynthesizingCodeRAII
 
struct  compat::detail::ValueRefCount
 

Namespaces

namespace  compat
 
namespace  compat::detail
 

Macros

#define clang_driver_options   clang::driver::options
 
#define Suppress_Elab   SuppressElaboration
 
#define Get_Tag_Type   getTagDeclType
 
#define Print_Canonical_Types   PrintCanonicalTypes
 
#define clang_LookupResult_Found   clang::LookupResult::Found
 
#define clang_LookupResult_Not_Found   clang::LookupResult::NotFound
 
#define clang_LookupResult_Found_Overloaded   clang::LookupResult::FoundOverloaded
 
#define STRINGIFY(s)   STRINGIFY_X(s)
 
#define STRINGIFY_X(...)   #__VA_ARGS__
 

Typedefs

using compat::Interpreter = CppInternal::Interpreter
 
using compat::Value = clang::Value
 

Functions

static char * GetEnv (const char *Var_Name)
 
bool compat::detectCudaInstallPath (const std::vector< const char * > &args, std::string &CudaPath)
 Detect the CUDA installation path using clang::Driver.
 
bool compat::detectNVPTXArch (std::string &Arch)
 Detect GPU architecture via the CUDA Driver API, tweaked from clang's nvptx-arch tool (NVPTXArch.cpp)
 
std::unique_ptr< clang::Interpreter > compat::createClangInterpreter (std::vector< const char * > &args, int stdin_fd=-1, int stdout_fd=-1, int stderr_fd=-1)
 
void compat::maybeMangleDeclName (const clang::GlobalDecl &GD, std::string &mangledName)
 
llvm::orc::LLJIT * compat::getExecutionEngine (clang::Interpreter &I)
 
llvm::Expected< llvm::JITTargetAddress > compat::getSymbolAddress (clang::Interpreter &I, llvm::StringRef IRName)
 
llvm::Expected< llvm::JITTargetAddress > compat::getSymbolAddress (clang::Interpreter &I, clang::GlobalDecl GD)
 
llvm::Expected< llvm::JITTargetAddress > compat::getSymbolAddressFromLinkerName (clang::Interpreter &I, llvm::StringRef LinkerName)
 
llvm::Error compat::Undo (clang::Interpreter &I, unsigned N=1)
 
void compat::codeComplete (std::vector< std::string > &Results, clang::Interpreter &I, const char *code, unsigned complete_line=1U, unsigned complete_column=1U)
 
template<typename T >
compat::convertTo (clang::Value V)
 
Cpp::Box compat::MakeValueBox (const Value &V, void *qt) noexcept
 Wrap a compat::Value into a refcount-shared K_PtrOrObj Cpp::Box.
 
void compat::InstantiateClassTemplateSpecialization (Interpreter &interp, clang::ClassTemplateSpecializationDecl *CTSD)
 

Macro Definition Documentation

◆ clang_driver_options

#define clang_driver_options   clang::driver::options

Definition at line 44 of file Compatibility.h.

◆ clang_LookupResult_Found

#define clang_LookupResult_Found   clang::LookupResult::Found

Definition at line 86 of file Compatibility.h.

◆ clang_LookupResult_Found_Overloaded

#define clang_LookupResult_Found_Overloaded   clang::LookupResult::FoundOverloaded

Definition at line 88 of file Compatibility.h.

◆ clang_LookupResult_Not_Found

#define clang_LookupResult_Not_Found   clang::LookupResult::NotFound

Definition at line 87 of file Compatibility.h.

◆ Get_Tag_Type

#define Get_Tag_Type   getTagDeclType

Definition at line 56 of file Compatibility.h.

◆ Print_Canonical_Types

#define Print_Canonical_Types   PrintCanonicalTypes

Definition at line 80 of file Compatibility.h.

◆ STRINGIFY

#define STRINGIFY (   s)    STRINGIFY_X(s)

Definition at line 96 of file Compatibility.h.

◆ STRINGIFY_X

#define STRINGIFY_X (   ...)    #__VA_ARGS__

Definition at line 97 of file Compatibility.h.

◆ Suppress_Elab

#define Suppress_Elab   SuppressElaboration

Definition at line 50 of file Compatibility.h.

Function Documentation

◆ GetEnv()

static char * GetEnv ( const char *  Var_Name)
inlinestatic