ROOT 6.18/05 Reference Guide |
#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 "RConversionRuleParser.h"
#include "RConfigure.h"
#include "compiledata.h"
#include "TClingUtils.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/Lex/PreprocessorOptions.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 "llvm/Support/Process.h"
#include "llvm/Object/ObjectFile.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Object/SymbolicFile.h"
#include <algorithm>
#include <iostream>
#include <cassert>
#include <map>
#include <set>
#include <stdexcept>
#include <stdint.h>
#include <fstream>
#include <sstream>
#include <string>
#include <tuple>
#include <typeinfo>
#include <unordered_map>
#include <utility>
#include <vector>
#include <functional>
#include <cxxabi.h>
#include <sys/stat.h>
#include <limits.h>
#include <stdio.h>
Macros | |
#define | R__DLLEXPORT __attribute__ ((visibility ("default"))) |
Enumerations | |
enum class | ETupleOrdering { kAscending , kDescending , kUnexpected } |
Check in what order the member of a tuple are layout. More... | |
Functions | |
std::string | AlternateTuple (const char *classname) |
static void | ConstructorName (std::string &name, const clang::NamedDecl *decl, cling::Interpreter &interp, const ROOT::TMetaUtils::TNormalizedCtxt &normCtxt) |
R__DLLEXPORT TInterpreter * | CreateInterpreter (void *interpLibHandle, const char *argv[]) |
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 std::string | 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 StringRef | GetGnuHashSection (llvm::object::ObjectFile *file) |
static std::string | GetModuleNameAsString (clang::Module *M, const clang::Preprocessor &PP) |
static uint32_t | GNUHash (StringRef S) |
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 bool | IsFromRootCling () |
static ETupleOrdering | IsTupleAscending () |
static void * | LazyFunctionCreatorAutoloadForModule (const std::string &mangled_name, cling::Interpreter *fInterpreter) |
void * | llvmLazyFunctionCreator (const std::string &mangled_name) |
Autoload a library provided the mangled name of a missing symbol. More... | |
static bool | LoadModule (const std::string &ModuleName, cling::Interpreter &interp, bool Complain=true) |
static void | LoadModules (const std::vector< std::string > &modules, cling::Interpreter &interp) |
Loads the C++ modules that we require to run any ROOT program. More... | |
static bool | LookupBloomFilter (llvm::object::ObjectFile *soFile, uint32_t hash) |
static bool | LookupNormalSymbols (llvm::object::ObjectFile *RealSoFile, const std::string &mangled_name, const std::string &LibName) |
static bool | R__InitStreamerInfoFactory () |
Helper to initialize TVirtualStreamerInfo's factor early. More... | |
static bool | RegisterPrebuiltModulePath (clang::Preprocessor &PP, const std::string &FullPath) |
static bool | requiresRootMap (const char *rootmapfile, cling::Interpreter *interp) |
static Bool_t | s_IsLibraryLoaded (const char *libname, cling::Interpreter *fInterpreter) |
int | TCling__AutoLoadCallback (const char *className) |
int | TCling__AutoParseCallback (const char *className) |
int | TCling__CompileMacro (const char *fileName, const char *options) |
R__DLLEXPORT clang::NamespaceDecl * | TCling__DEBUG__DCtoNamespace (clang::DeclContext *DC) |
R__DLLEXPORT clang::RecordDecl * | TCling__DEBUG__DCtoRecordDecl (clang::DeclContext *DC) |
R__DLLEXPORT void | TCling__DEBUG__decl_dump (void *D) |
R__DLLEXPORT void | TCling__DEBUG__dump (clang::Decl *D) |
R__DLLEXPORT void | TCling__DEBUG__dump (clang::DeclContext *DC) |
R__DLLEXPORT void | TCling__DEBUG__dump (clang::FunctionDecl *FD) |
R__DLLEXPORT clang::DeclContext * | TCling__DEBUG__getDeclContext (clang::Decl *D) |
R__DLLEXPORT void | TCling__DEBUG__printName (clang::Decl *D) |
void | TCling__FindLoadedLibraries (std::vector< std::pair< uint32_t, std::string > > &sLibraries, std::vector< std::string > &sPaths, cling::Interpreter &interpreter, bool searchSystem) |
const char * | TCling__GetClassSharedLibs (const char *className) |
void | TCling__GetNormalizedContext (const ROOT::TMetaUtils::TNormalizedCtxt *&normCtxt) |
TObject * | TCling__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) |
bool | TCling__LibraryLoadingFailed (const std::string &errmessage, const std::string &libStem, bool permanent, bool resolved) |
Lookup libraries in LD_LIBRARY_PATH and DYLD_LIBRARY_PATH with mangled_name, which is extracted by error messages we get from callback from cling. More... | |
void | TCling__LibraryUnloadedRTTI (const void *dyLibHandle, const char *canonicalName) |
void * | TCling__LockCompilationDuringUserCodeExecution () |
Lock the interpreter. More... | |
void | TCling__PrintStackTrace () |
Print a StackTrace! More... | |
void * | TCling__ResetInterpreterMutex () |
Reset the interpreter lock to the state it had before interpreter-related calls happened. More... | |
void | TCling__RestoreInterpreterMutex (void *delta) |
Re-apply the lock count delta that TCling__ResetInterpreterMutex() caused. More... | |
void | TCling__SplitAclicMode (const char *fileName, string &mode, string &args, string &io, string &fname) |
R__DLLEXPORT bool | TCling__TEST_isInvalidDecl (clang::Decl *D) |
R__DLLEXPORT bool | TCling__TEST_isInvalidDecl (ClassInfo_t *input) |
void | TCling__TransactionRollback (const cling::Transaction &T) |
void | TCling__UnlockCompilationDuringUserCodeExecution (void *) |
Unlock the interpreter. More... | |
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::string &className, const std::vector< std::string > &headers, const std::vector< std::string > &fwdDecls, const std::vector< std::string > &unknown) |
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) |
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();" |
static const std::unordered_set< std::string > | gIgnoredPCMNames |
List of dicts that have the PCM information already in the PCH. More... | |
R__EXTERN int | optind |
#define R__DLLEXPORT __attribute__ ((visibility ("default"))) |
Definition at line 139 of file TCling.cxx.
|
strong |
Check in what order the member of a tuple are layout.
Enumerator | |
---|---|
kAscending | |
kDescending | |
kUnexpected |
Definition at line 3503 of file TCling.cxx.
std::string AlternateTuple | ( | const char * | classname | ) |
Definition at line 3545 of file TCling.cxx.
|
static |
Definition at line 8174 of file TCling.cxx.
R__DLLEXPORT TInterpreter * CreateInterpreter | ( | void * | interpLibHandle, |
const char * | argv[] | ||
) |
Definition at line 592 of file TCling.cxx.
R__DLLEXPORT void DestroyInterpreter | ( | TInterpreter * | interp | ) |
Definition at line 599 of file TCling.cxx.
|
static |
Parse the payload or header.
Definition at line 5765 of file TCling.cxx.
|
static |
Wrapper around dladdr (and friends)
Definition at line 1431 of file TCling.cxx.
|
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 674 of file TCling.cxx.
|
static |
Definition at line 6041 of file TCling.cxx.
|
static |
Definition at line 1100 of file TCling.cxx.
|
static |
Definition at line 6034 of file TCling.cxx.
|
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 2156 of file TCling.cxx.
|
static |
Definition at line 1094 of file TCling.cxx.
|
static |
Definition at line 3521 of file TCling.cxx.
|
static |
Definition at line 6119 of file TCling.cxx.
void * llvmLazyFunctionCreator | ( | const std::string & | mangled_name | ) |
Autoload a library provided the mangled name of a missing symbol.
Definition at line 691 of file TCling.cxx.
|
static |
Definition at line 1069 of file TCling.cxx.
|
static |
Loads the C++ modules that we require to run any ROOT program.
This is just supposed to make a C++ module from a modulemap available to the interpreter.
Definition at line 1088 of file TCling.cxx.
|
static |
Definition at line 6060 of file TCling.cxx.
|
static |
Definition at line 6083 of file TCling.cxx.
|
static |
Helper to initialize TVirtualStreamerInfo's factor early.
Use static initialization to insure only one TStreamerInfo is created.
Definition at line 1494 of file TCling.cxx.
|
static |
Definition at line 1042 of file TCling.cxx.
|
static |
Definition at line 5043 of file TCling.cxx.
|
static |
Definition at line 2823 of file TCling.cxx.
int TCling__AutoLoadCallback | ( | const char * | className | ) |
Definition at line 606 of file TCling.cxx.
int TCling__AutoParseCallback | ( | const char * | className | ) |
Definition at line 611 of file TCling.cxx.
int TCling__CompileMacro | ( | const char * | fileName, |
const char * | options | ||
) |
Definition at line 633 of file TCling.cxx.
R__DLLEXPORT clang::NamespaceDecl * TCling__DEBUG__DCtoNamespace | ( | clang::DeclContext * | DC | ) |
Definition at line 215 of file TCling.cxx.
R__DLLEXPORT clang::RecordDecl * TCling__DEBUG__DCtoRecordDecl | ( | clang::DeclContext * | DC | ) |
Definition at line 218 of file TCling.cxx.
R__DLLEXPORT void TCling__DEBUG__decl_dump | ( | void * | D | ) |
Definition at line 230 of file TCling.cxx.
R__DLLEXPORT void TCling__DEBUG__dump | ( | clang::Decl * | D | ) |
Definition at line 224 of file TCling.cxx.
R__DLLEXPORT void TCling__DEBUG__dump | ( | clang::DeclContext * | DC | ) |
Definition at line 221 of file TCling.cxx.
R__DLLEXPORT void TCling__DEBUG__dump | ( | clang::FunctionDecl * | FD | ) |
Definition at line 227 of file TCling.cxx.
R__DLLEXPORT clang::DeclContext * TCling__DEBUG__getDeclContext | ( | clang::Decl * | D | ) |
Definition at line 212 of file TCling.cxx.
R__DLLEXPORT void TCling__DEBUG__printName | ( | clang::Decl * | D | ) |
Definition at line 233 of file TCling.cxx.
void TCling__FindLoadedLibraries | ( | std::vector< std::pair< uint32_t, std::string > > & | sLibraries, |
std::vector< std::string > & | sPaths, | ||
cling::Interpreter & | interpreter, | ||
bool | searchSystem | ||
) |
const char * TCling__GetClassSharedLibs | ( | const char * | className | ) |
Definition at line 616 of file TCling.cxx.
void TCling__GetNormalizedContext | ( | const ROOT::TMetaUtils::TNormalizedCtxt *& | normCtxt | ) |
Definition at line 546 of file TCling.cxx.
Definition at line 584 of file TCling.cxx.
const Decl * TCling__GetObjectDecl | ( | TObject * | obj | ) |
Definition at line 588 of file TCling.cxx.
int TCling__IsAutoLoadNamespaceCandidate | ( | const clang::NamespaceDecl * | nsDecl | ) |
Definition at line 628 of file TCling.cxx.
Definition at line 570 of file TCling.cxx.
bool TCling__LibraryLoadingFailed | ( | const std::string & | errmessage, |
const std::string & | libStem, | ||
bool | permanent, | ||
bool | resolved | ||
) |
Lookup libraries in LD_LIBRARY_PATH and DYLD_LIBRARY_PATH with mangled_name, which is extracted by error messages we get from callback from cling.
Return true when the missing library was autoloaded.
Definition at line 340 of file TCling.cxx.
Definition at line 576 of file TCling.cxx.
void * TCling__LockCompilationDuringUserCodeExecution | ( | ) |
Lock the interpreter.
Definition at line 357 of file TCling.cxx.
void TCling__PrintStackTrace | ( | ) |
Print a StackTrace!
Definition at line 323 of file TCling.cxx.
void * TCling__ResetInterpreterMutex | ( | ) |
Reset the interpreter lock to the state it had before interpreter-related calls happened.
Definition at line 349 of file TCling.cxx.
Re-apply the lock count delta that TCling__ResetInterpreterMutex() caused.
Definition at line 330 of file TCling.cxx.
void TCling__SplitAclicMode | ( | const char * | fileName, |
string & | mode, | ||
string & | args, | ||
string & | io, | ||
string & | fname | ||
) |
Definition at line 640 of file TCling.cxx.
R__DLLEXPORT bool TCling__TEST_isInvalidDecl | ( | clang::Decl * | D | ) |
Definition at line 248 of file TCling.cxx.
R__DLLEXPORT bool TCling__TEST_isInvalidDecl | ( | ClassInfo_t * | input | ) |
Definition at line 251 of file TCling.cxx.
void TCling__TransactionRollback | ( | const cling::Transaction & | T | ) |
Definition at line 565 of file TCling.cxx.
Unlock the interpreter.
Definition at line 368 of file TCling.cxx.
|
static |
Update TClingClassInfo for a class (e.g. upon seeing a definition).
Definition at line 378 of file TCling.cxx.
void TCling__UpdateListsOnCommitted | ( | const cling::Transaction & | T, |
cling::Interpreter * | |||
) |
Definition at line 553 of file TCling.cxx.
void TCling__UpdateListsOnUnloaded | ( | const cling::Transaction & | T | ) |
Definition at line 559 of file TCling.cxx.
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 829 of file TCling.cxx.
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 701 of file TCling.cxx.
bool TClingLookupHelper__AutoParse | ( | const char * | cname | ) |
Allow calling autoparsing from TMetaUtils.
Definition at line 903 of file TCling.cxx.
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 912 of file TCling.cxx.
const char* fantomline = "TRint::EndOfLineAction();" |
Definition at line 850 of file TCling.cxx.
|
static |
List of dicts that have the PCM information already in the PCH.
Definition at line 1701 of file TCling.cxx.
R__EXTERN int optind |
Definition at line 314 of file TCling.cxx.