ROOT  6.06/09
Reference Guide
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 "TKey.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 "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 bool R__InitStreamerInfoFactory ()
 Helper to initialize TVirtualStreamerInfo's factor early. 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 7299 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 5126 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().

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().

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

Referenced by TCling::LoadPCM().

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.