Logo ROOT   6.08/07
Reference Guide
Macros | Enumerations | Functions | Variables
TCling.cxx File Reference
#include "TCling.h"
#include "TClingBaseClassInfo.h"
#include "TClingCallFunc.h"
#include "TClingClassInfo.h"
#include "TClingDataMemberInfo.h"
#include "TClingMethodArgInfo.h"
#include "TClingMethodInfo.h"
#include "TClingTypedefInfo.h"
#include "TClingTypeInfo.h"
#include "TClingValue.h"
#include "TROOT.h"
#include "TApplication.h"
#include "TGlobal.h"
#include "TDataType.h"
#include "TClass.h"
#include "TClassEdit.h"
#include "TClassTable.h"
#include "TClingCallbacks.h"
#include "TBaseClass.h"
#include "TDataMember.h"
#include "TMemberInspector.h"
#include "TMethod.h"
#include "TMethodArg.h"
#include "TFunctionTemplate.h"
#include "TObjArray.h"
#include "TObjString.h"
#include "TString.h"
#include "THashList.h"
#include "TOrdCollection.h"
#include "TVirtualPad.h"
#include "TSystem.h"
#include "TVirtualMutex.h"
#include "TError.h"
#include "TEnv.h"
#include "TEnum.h"
#include "TEnumConstant.h"
#include "THashTable.h"
#include "RConfigure.h"
#include "compiledata.h"
#include "TMetaUtils.h"
#include "TVirtualCollectionProxy.h"
#include "TVirtualStreamerInfo.h"
#include "TListOfDataMembers.h"
#include "TListOfEnums.h"
#include "TListOfEnumsWithLock.h"
#include "TListOfFunctions.h"
#include "TListOfFunctionTemplates.h"
#include "TProtoClass.h"
#include "TStreamerInfo.h"
#include "ThreadLocalStorage.h"
#include "TFile.h"
#include "TKey.h"
#include "ClingRAII.h"
#include "clang/AST/ASTContext.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclarationName.h"
#include "clang/AST/GlobalDecl.h"
#include "clang/AST/RecordLayout.h"
#include "clang/AST/RecursiveASTVisitor.h"
#include "clang/AST/Type.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/Specifiers.h"
#include "clang/Basic/TargetInfo.h"
#include "clang/CodeGen/ModuleBuilder.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/FrontendDiagnostic.h"
#include "clang/Lex/HeaderSearch.h"
#include "clang/Lex/Preprocessor.h"
#include "clang/Sema/Lookup.h"
#include "clang/Sema/Sema.h"
#include "clang/Parse/Parser.h"
#include "cling/Interpreter/ClangInternalState.h"
#include "cling/Interpreter/DynamicLibraryManager.h"
#include "cling/Interpreter/Interpreter.h"
#include "cling/Interpreter/LookupHelper.h"
#include "cling/Interpreter/Value.h"
#include "cling/Interpreter/Transaction.h"
#include "cling/MetaProcessor/MetaProcessor.h"
#include "cling/Utils/AST.h"
#include "cling/Utils/ParserStateRAII.h"
#include "cling/Utils/SourceNormalization.h"
#include "cling/Interpreter/Exception.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/DynamicLibrary.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Support/Path.h"
#include <algorithm>
#include <iostream>
#include <cassert>
#include <map>
#include <set>
#include <stdexcept>
#include <stdint.h>
#include <fstream>
#include <sstream>
#include <string>
#include <typeinfo>
#include <unordered_map>
#include <utility>
#include <vector>
#include <cxxabi.h>
#include <limits.h>
#include <stdio.h>

Macros

#define R__DLLEXPORT
 

Enumerations

enum  ETupleOrdering { ETupleOrdering::kAscending, ETupleOrdering::kDescending, ETupleOrdering::kUnexpected }
 Check in what order the member of a tuple are layout. More...
 

Functions

std::string AtlernateTuple (const char *classname)
 
static void ConstructorName (std::string &name, const clang::NamedDecl *decl, cling::Interpreter &interp, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt)
 
R__DLLEXPORT TInterpreterCreateInterpreter (void *interpLibHandle)
 
R__DLLEXPORT void DestroyInterpreter (TInterpreter *interp)
 
static cling::Interpreter::CompilationResult ExecAutoParse (const char *what, Bool_t header, cling::Interpreter *interpreter)
 Parse the payload or header. More...
 
static const char * FindLibraryName (void(*func)())
 Wrapper around dladdr (and friends) More...
 
static clang::ClassTemplateDecl * FindTemplateInNamespace (clang::Decl *decl)
 Find a template decl within N nested namespaces, 0<=N<inf Assumes 1 and only 1 template present and 1 and only 1 entity contained by the namespace. More...
 
static int HandleInterpreterException (cling::MetaProcessor *metaProcessor, const char *input_line, cling::Interpreter::CompilationResult &compRes, cling::Value *result)
 Let cling process a command line. More...
 
static ETupleOrdering IsTupleAscending ()
 
voidllvmLazyFunctionCreator (const std::string &mangled_name)
 Autoload a library provided the mangled name of a missing symbol. More...
 
static bool R__InitStreamerInfoFactory ()
 Helper to initialize TVirtualStreamerInfo's factor early. More...
 
int TCling__AutoLoadCallback (const char *className)
 
int TCling__AutoParseCallback (const char *className)
 
int TCling__CompileMacro (const char *fileName, const char *options)
 
clang::NamespaceDecl * TCling__DEBUG__DCtoNamespace (clang::DeclContext *DC)
 
clang::RecordDecl * TCling__DEBUG__DCtoRecordDecl (clang::DeclContext *DC)
 
void TCling__DEBUG__decl_dump (void *D)
 
void TCling__DEBUG__dump (clang::DeclContext *DC)
 
void TCling__DEBUG__dump (clang::Decl *D)
 
void TCling__DEBUG__dump (clang::FunctionDecl *FD)
 
clang::DeclContext * TCling__DEBUG__getDeclContext (clang::Decl *D)
 
void TCling__DEBUG__printName (clang::Decl *D)
 
const char * TCling__GetClassSharedLibs (const char *className)
 
void TCling__GetNormalizedContext (const ROOT::TMetaUtils::TNormalizedCtxt *&normCtxt)
 
TObjectTCling__GetObjectAddress (const char *Name, void *&LookupCtx)
 
const Decl * TCling__GetObjectDecl (TObject *obj)
 
int TCling__IsAutoLoadNamespaceCandidate (const clang::NamespaceDecl *nsDecl)
 
void TCling__LibraryLoadedRTTI (const void *dyLibHandle, const char *canonicalName)
 
void TCling__LibraryUnloadedRTTI (const void *dyLibHandle, const char *canonicalName)
 
void TCling__PrintStackTrace ()
 Print a StackTrace! More...
 
void TCling__SplitAclicMode (const char *fileName, string &mode, string &args, string &io, string &fname)
 
bool TCling__TEST_isInvalidDecl (clang::Decl *D)
 
bool TCling__TEST_isInvalidDecl (ClassInfo_t *input)
 
void TCling__TransactionRollback (const cling::Transaction &T)
 
static void TCling__UpdateClassInfo (const NamedDecl *TD)
 Update TClingClassInfo for a class (e.g. upon seeing a definition). More...
 
void TCling__UpdateListsOnCommitted (const cling::Transaction &T, cling::Interpreter *)
 
void TCling__UpdateListsOnUnloaded (const cling::Transaction &T)
 
int TCling_GenerateDictionary (const std::vector< std::string > &classes, const std::vector< std::string > &headers, const std::vector< std::string > &fwdDecls, const std::vector< std::string > &unknown)
 
int TCling_GenerateDictionary (const std::string &className, const std::vector< std::string > &headers, const std::vector< std::string > &fwdDecls, const std::vector< std::string > &unknown)
 
bool TClingLookupHelper__AutoParse (const char *cname)
 Allow calling autoparsing from TMetaUtils. More...
 
bool TClingLookupHelper__ExistingTypeCheck (const std::string &tname, std::string &result)
 Try hard to avoid looking up in the Cling database as this could enduce an unwanted autoparsing. More...
 

Variables

const char * fantomline = "TRint::EndOfLineAction();"
 
R__EXTERN int optind
 

Macro Definition Documentation

◆ R__DLLEXPORT

#define R__DLLEXPORT

Definition at line 131 of file TCling.cxx.

Enumeration Type Documentation

◆ ETupleOrdering

enum ETupleOrdering
strong

Check in what order the member of a tuple are layout.

Enumerator
kAscending 
kDescending 
kUnexpected 

Definition at line 3194 of file TCling.cxx.

Function Documentation

◆ AtlernateTuple()

std::string AtlernateTuple ( const char *  classname)

Definition at line 3236 of file TCling.cxx.

◆ ConstructorName()

static void ConstructorName ( std::string &  name,
const clang::NamedDecl *  decl,
cling::Interpreter &  interp,
const ROOT::TMetaUtils::TNormalizedCtxt normCtxt 
)
static

Definition at line 7489 of file TCling.cxx.

◆ CreateInterpreter()

R__DLLEXPORT TInterpreter* CreateInterpreter ( void interpLibHandle)

Definition at line 590 of file TCling.cxx.

◆ DestroyInterpreter()

R__DLLEXPORT void DestroyInterpreter ( TInterpreter interp)

Definition at line 596 of file TCling.cxx.

◆ ExecAutoParse()

static cling::Interpreter::CompilationResult ExecAutoParse ( const char *  what,
Bool_t  header,
cling::Interpreter *  interpreter 
)
static

Parse the payload or header.

Definition at line 5317 of file TCling.cxx.

◆ FindLibraryName()

static const char* FindLibraryName ( void(*)()  func)
static

Wrapper around dladdr (and friends)

Definition at line 1227 of file TCling.cxx.

◆ FindTemplateInNamespace()

static clang::ClassTemplateDecl* FindTemplateInNamespace ( clang::Decl *  decl)
static

Find a template decl within N nested namespaces, 0<=N<inf Assumes 1 and only 1 template present and 1 and only 1 entity contained by the namespace.

Example: ns1::ns2::..::nsN::myTemplate Returns nullptr in case of error

Definition at line 666 of file TCling.cxx.

◆ HandleInterpreterException()

static int HandleInterpreterException ( cling::MetaProcessor *  metaProcessor,
const char *  input_line,
cling::Interpreter::CompilationResult &  compRes,
cling::Value *  result 
)
static

Let cling process a command line.

If the command is executed and the error is 0, then the return value is the int value corresponding to the result of the executed command (float and double return values will be truncated).

Definition at line 1877 of file TCling.cxx.

◆ IsTupleAscending()

static ETupleOrdering IsTupleAscending ( )
static

Definition at line 3212 of file TCling.cxx.

◆ llvmLazyFunctionCreator()

void* llvmLazyFunctionCreator ( const std::string &  mangled_name)

Autoload a library provided the mangled name of a missing symbol.

Definition at line 683 of file TCling.cxx.

◆ R__InitStreamerInfoFactory()

static bool R__InitStreamerInfoFactory ( )
static

Helper to initialize TVirtualStreamerInfo's factor early.

Use static initialization to insure only one TStreamerInfo is created.

Definition at line 1262 of file TCling.cxx.

◆ TCling__AutoLoadCallback()

int TCling__AutoLoadCallback ( const char *  className)

Definition at line 603 of file TCling.cxx.

◆ TCling__AutoParseCallback()

int TCling__AutoParseCallback ( const char *  className)

Definition at line 608 of file TCling.cxx.

◆ TCling__CompileMacro()

int TCling__CompileMacro ( const char *  fileName,
const char *  options 
)

Definition at line 630 of file TCling.cxx.

◆ TCling__DEBUG__DCtoNamespace()

clang::NamespaceDecl* TCling__DEBUG__DCtoNamespace ( clang::DeclContext *  DC)

Definition at line 206 of file TCling.cxx.

◆ TCling__DEBUG__DCtoRecordDecl()

clang::RecordDecl* TCling__DEBUG__DCtoRecordDecl ( clang::DeclContext *  DC)

Definition at line 209 of file TCling.cxx.

◆ TCling__DEBUG__decl_dump()

void TCling__DEBUG__decl_dump ( void D)

Definition at line 221 of file TCling.cxx.

◆ TCling__DEBUG__dump() [1/3]

void TCling__DEBUG__dump ( clang::DeclContext *  DC)

Definition at line 212 of file TCling.cxx.

◆ TCling__DEBUG__dump() [2/3]

void TCling__DEBUG__dump ( clang::Decl *  D)

Definition at line 215 of file TCling.cxx.

◆ TCling__DEBUG__dump() [3/3]

void TCling__DEBUG__dump ( clang::FunctionDecl *  FD)

Definition at line 218 of file TCling.cxx.

◆ TCling__DEBUG__getDeclContext()

clang::DeclContext* TCling__DEBUG__getDeclContext ( clang::Decl *  D)

Definition at line 203 of file TCling.cxx.

◆ TCling__DEBUG__printName()

void TCling__DEBUG__printName ( clang::Decl *  D)

Definition at line 224 of file TCling.cxx.

◆ TCling__GetClassSharedLibs()

const char* TCling__GetClassSharedLibs ( const char *  className)

Definition at line 613 of file TCling.cxx.

◆ TCling__GetNormalizedContext()

void TCling__GetNormalizedContext ( const ROOT::TMetaUtils::TNormalizedCtxt *&  normCtxt)

Definition at line 547 of file TCling.cxx.

◆ TCling__GetObjectAddress()

TObject* TCling__GetObjectAddress ( const char *  Name,
void *&  LookupCtx 
)

Definition at line 582 of file TCling.cxx.

◆ TCling__GetObjectDecl()

const Decl* TCling__GetObjectDecl ( TObject obj)

Definition at line 586 of file TCling.cxx.

◆ TCling__IsAutoLoadNamespaceCandidate()

int TCling__IsAutoLoadNamespaceCandidate ( const clang::NamespaceDecl *  nsDecl)

Definition at line 625 of file TCling.cxx.

◆ TCling__LibraryLoadedRTTI()

void TCling__LibraryLoadedRTTI ( const void dyLibHandle,
const char *  canonicalName 
)

Definition at line 568 of file TCling.cxx.

◆ TCling__LibraryUnloadedRTTI()

void TCling__LibraryUnloadedRTTI ( const void dyLibHandle,
const char *  canonicalName 
)

Definition at line 574 of file TCling.cxx.

◆ TCling__PrintStackTrace()

void TCling__PrintStackTrace ( )

Print a StackTrace!

Definition at line 349 of file TCling.cxx.

◆ TCling__SplitAclicMode()

void TCling__SplitAclicMode ( const char *  fileName,
string &  mode,
string &  args,
string &  io,
string &  fname 
)

Definition at line 637 of file TCling.cxx.

◆ TCling__TEST_isInvalidDecl() [1/2]

bool TCling__TEST_isInvalidDecl ( clang::Decl *  D)

Definition at line 239 of file TCling.cxx.

◆ TCling__TEST_isInvalidDecl() [2/2]

bool TCling__TEST_isInvalidDecl ( ClassInfo_t *  input)

Definition at line 242 of file TCling.cxx.

◆ TCling__TransactionRollback()

void TCling__TransactionRollback ( const cling::Transaction &  T)

Definition at line 564 of file TCling.cxx.

◆ TCling__UpdateClassInfo()

static void TCling__UpdateClassInfo ( const NamedDecl *  TD)
static

Update TClingClassInfo for a class (e.g. upon seeing a definition).

Definition at line 356 of file TCling.cxx.

◆ TCling__UpdateListsOnCommitted()

void TCling__UpdateListsOnCommitted ( const cling::Transaction &  T,
cling::Interpreter *   
)

Definition at line 554 of file TCling.cxx.

◆ TCling__UpdateListsOnUnloaded()

void TCling__UpdateListsOnUnloaded ( const cling::Transaction &  T)

Definition at line 560 of file TCling.cxx.

◆ TCling_GenerateDictionary() [1/2]

int TCling_GenerateDictionary ( const std::vector< std::string > &  classes,
const std::vector< std::string > &  headers,
const std::vector< std::string > &  fwdDecls,
const std::vector< std::string > &  unknown 
)

Definition at line 693 of file TCling.cxx.

◆ TCling_GenerateDictionary() [2/2]

int TCling_GenerateDictionary ( const std::string &  className,
const std::vector< std::string > &  headers,
const std::vector< std::string > &  fwdDecls,
const std::vector< std::string > &  unknown 
)

Definition at line 836 of file TCling.cxx.

◆ TClingLookupHelper__AutoParse()

bool TClingLookupHelper__AutoParse ( const char *  cname)

Allow calling autoparsing from TMetaUtils.

Definition at line 910 of file TCling.cxx.

◆ TClingLookupHelper__ExistingTypeCheck()

bool TClingLookupHelper__ExistingTypeCheck ( const std::string &  tname,
std::string &  result 
)

Try hard to avoid looking up in the Cling database as this could enduce an unwanted autoparsing.

Definition at line 919 of file TCling.cxx.

Variable Documentation

◆ fantomline

const char* fantomline = "TRint::EndOfLineAction();"

Definition at line 857 of file TCling.cxx.

◆ optind

R__EXTERN int optind

Definition at line 306 of file TCling.cxx.