ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Macros | 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 "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/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>

Go to the source code of this file.

Macros

#define R__DLLEXPORT
 

Functions

clang::DeclContext * TCling__DEBUG__getDeclContext (clang::Decl *D)
 
clang::NamespaceDecl * TCling__DEBUG__DCtoNamespace (clang::DeclContext *DC)
 
clang::RecordDecl * TCling__DEBUG__DCtoRecordDecl (clang::DeclContext *DC)
 
void TCling__DEBUG__dump (clang::DeclContext *DC)
 
void TCling__DEBUG__dump (clang::Decl *D)
 
void TCling__DEBUG__dump (clang::FunctionDecl *FD)
 
void TCling__DEBUG__decl_dump (void *D)
 
void TCling__DEBUG__printName (clang::Decl *D)
 
bool TCling__TEST_isInvalidDecl (clang::Decl *D)
 
bool TCling__TEST_isInvalidDecl (ClassInfo_t *input)
 
static void TCling__UpdateClassInfo (const NamedDecl *TD)
 Update TClingClassInfo for a class (e.g. upon seeing a definition). More...
 
void TCling__GetNormalizedContext (const ROOT::TMetaUtils::TNormalizedCtxt *&normCtxt)
 
void TCling__UpdateListsOnCommitted (const cling::Transaction &T, cling::Interpreter *)
 
void TCling__UpdateListsOnUnloaded (const cling::Transaction &T)
 
void TCling__TransactionRollback (const cling::Transaction &T)
 
void TCling__LibraryLoadedRTTI (const void *dyLibHandle, const char *canonicalName)
 
void TCling__LibraryUnloadedRTTI (const void *dyLibHandle, const char *canonicalName)
 
TObjectTCling__GetObjectAddress (const char *Name, void *&LookupCtx)
 
const Decl * TCling__GetObjectDecl (TObject *obj)
 
R__DLLEXPORT TInterpreterCreateInterpreter (void *interpLibHandle)
 
R__DLLEXPORT void DestroyInterpreter (TInterpreter *interp)
 
int TCling__AutoLoadCallback (const char *className)
 
int TCling__AutoParseCallback (const char *className)
 
const char * TCling__GetClassSharedLibs (const char *className)
 
int TCling__IsAutoLoadNamespaceCandidate (const clang::NamespaceDecl *nsDecl)
 
int TCling__CompileMacro (const char *fileName, const char *options)
 
void TCling__SplitAclicMode (const char *fileName, string &mode, string &args, string &io, string &fname)
 
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...
 
voidllvmLazyFunctionCreator (const std::string &mangled_name)
 Autoload a library provided the mangled name of a missing symbol. More...
 
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...
 
static const char * FindLibraryName (void(*func)())
 Wrapper around dladdr (and friends) 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
cling::Interpreter::CompilationResult 
ExecAutoParse (const char *what, Bool_t header, cling::Interpreter *interpreter)
 Parse the payload or header. More...
 
static void ConstructorName (std::string &name, const clang::NamedDecl *decl, cling::Interpreter &interp, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt)
 

Variables

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

Macro Definition Documentation

#define R__DLLEXPORT

Definition at line 127 of file TCling.cxx.

Function Documentation

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

Definition at line 7301 of file TCling.cxx.

Referenced by TCling::GetFunctionName().

R__DLLEXPORT TInterpreter* CreateInterpreter ( void interpLibHandle)

Definition at line 575 of file TCling.cxx.

Referenced by TROOT::InitInterpreter().

R__DLLEXPORT void DestroyInterpreter ( TInterpreter interp)

Definition at line 581 of file TCling.cxx.

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

Parse the payload or header.

Definition at line 5128 of file TCling.cxx.

Referenced by TCling::AutoParseImplRecurse().

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

Wrapper around dladdr (and friends)

Definition at line 1220 of file TCling.cxx.

Referenced by TCling::LoadPCM(), and TCling::RegisterModule().

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 651 of file TCling.cxx.

Referenced by TCling::RegisterModule().

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 1837 of file TCling.cxx.

Referenced by TCling::Load(), TCling::LoadFile(), TCling::ProcessLine(), and TCling::UnloadFile().

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

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

Definition at line 668 of file TCling.cxx.

Referenced by TCling::TCling().

int TCling__AutoLoadCallback ( const char *  className)

Definition at line 588 of file TCling.cxx.

Referenced by TClingCallbacks::tryAutoParseInternal().

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

Definition at line 615 of file TCling.cxx.

Referenced by TClingCallbacks::FileNotFound().

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

Definition at line 201 of file TCling.cxx.

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

Definition at line 204 of file TCling.cxx.

void TCling__DEBUG__decl_dump ( void D)

Definition at line 216 of file TCling.cxx.

void TCling__DEBUG__dump ( clang::DeclContext *  DC)

Definition at line 207 of file TCling.cxx.

void TCling__DEBUG__dump ( clang::Decl *  D)

Definition at line 210 of file TCling.cxx.

void TCling__DEBUG__dump ( clang::FunctionDecl *  FD)

Definition at line 213 of file TCling.cxx.

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

Definition at line 198 of file TCling.cxx.

void TCling__DEBUG__printName ( clang::Decl *  D)

Definition at line 219 of file TCling.cxx.

const char* TCling__GetClassSharedLibs ( const char *  className)

Definition at line 598 of file TCling.cxx.

Referenced by TClingCallbacks::tryAutoParseInternal().

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

Definition at line 532 of file TCling.cxx.

Referenced by TClingCallbacks::LookupObject().

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

Definition at line 567 of file TCling.cxx.

Referenced by TClingCallbacks::tryFindROOTSpecialInternal().

const Decl* TCling__GetObjectDecl ( TObject obj)

Definition at line 571 of file TCling.cxx.

Referenced by TClingCallbacks::tryFindROOTSpecialInternal().

int TCling__IsAutoLoadNamespaceCandidate ( const clang::NamespaceDecl *  nsDecl)

Definition at line 610 of file TCling.cxx.

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

Definition at line 553 of file TCling.cxx.

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

Definition at line 559 of file TCling.cxx.

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

Definition at line 622 of file TCling.cxx.

Referenced by TClingCallbacks::FileNotFound().

bool TCling__TEST_isInvalidDecl ( clang::Decl *  D)

Definition at line 234 of file TCling.cxx.

bool TCling__TEST_isInvalidDecl ( ClassInfo_t *  input)

Definition at line 237 of file TCling.cxx.

void TCling__TransactionRollback ( const cling::Transaction &  T)

Definition at line 549 of file TCling.cxx.

Referenced by TClingCallbacks::TransactionRollback().

static void TCling__UpdateClassInfo ( const NamedDecl *  TD)
static

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

Definition at line 343 of file TCling.cxx.

Referenced by TCling::HandleNewDecl().

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

Definition at line 539 of file TCling.cxx.

void TCling__UpdateListsOnUnloaded ( const cling::Transaction &  T)

Definition at line 545 of file TCling.cxx.

Referenced by TClingCallbacks::TransactionUnloaded().

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 678 of file TCling.cxx.

Referenced by TCling::GenerateDictionary(), and TCling_GenerateDictionary().

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 818 of file TCling.cxx.

bool TClingLookupHelper__AutoParse ( const char *  cname)

Allow calling autoparsing from TMetaUtils.

Definition at line 892 of file TCling.cxx.

Referenced by TCling::TCling().

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 901 of file TCling.cxx.

Referenced by TCling::TCling().

Variable Documentation

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

Definition at line 839 of file TCling.cxx.

R__EXTERN int optind

Definition at line 301 of file TCling.cxx.