Commit Graph

1622 Commits

Author SHA1 Message Date
Axel Naumann
25bbe0c617 Cache Dtor wrappers (used by ~Value); reduce calls to dlsym (ROOT-7840).
This fixes a PyROOT performance regression between 6.02 and 6.04, seen by ATLAS.

(cherry picked from commit ba4b0df02a91be4102e62fc76038711d188f07f3)

Conflicts:
	interpreter/cling/lib/Interpreter/Value.cpp
2015-12-15 20:24:16 +01:00
CristinaCristescu
1d46fe88d8 Remove runtime namespace from NullDerefException and rename RuntimeException.h to Exception.h.
(cherry picked from commit 234da8bfedce8661c2b8bc50f72632c240c4dfd8)
2015-12-15 20:24:16 +01:00
CristinaCristescu
8ab37ec3d6 Enable Baozeng Ding's NullDeref protection for ROOT; use exceptions.
The function HandleInterpreterException catches the NullDerefException.
Remove pre-exception longjmp code.
2015-12-15 20:24:15 +01:00
Philippe Canal
9a9004c501 Correct the name of bundle function of global initializer.
This correctly follow the clang commit afafe70f43dbb614f336ccbede1c4bbb132ec658
See https://root.cern.ch/gitweb?p=clang.git;a=commit;f=lib/CodeGen/CGDeclCXX.cpp;h=afafe70f43dbb614f336ccbede1c4bbb132ec658
and fixes the first attempt (75456cd17689730089526417c0d28ba4ed244f58).
2015-12-15 20:24:15 +01:00
Axel Naumann
30cc58a5c6 Reset diagnostics after parsing arguments: we shall issue an error but survive (ROOT-7619, ROOT-7614 and others). 2015-11-03 00:01:43 +01:00
Philippe Canal
b96301501e Remove unused variable 2015-10-26 19:14:52 +01:00
Philippe Canal
36e5b1eec0 Use isa (instead of dync_cast) for type testing 2015-10-23 18:22:26 +02:00
Philippe Canal
432884aada Add a callback during Transaction's rollback. 2015-10-22 14:56:16 +02:00
Philippe Canal
d58b99d1ed Must unload content before removing context from decl chain 2015-10-22 14:56:15 +02:00
Philippe Canal
5474fb5da7 When removing a definition decl, make the other forget about it 2015-10-22 14:56:15 +02:00
Axel Naumann
be55c83f9b Inline Value move ctor to enable the compiler to skip it. 2015-10-20 01:50:13 +02:00
Philippe Canal
a0005a7484 Fail more elegantly in ValuePrinter 2015-10-09 19:11:05 +02:00
Philippe Canal
3182648f56 Suppress more diagnostics. 2015-10-05 03:24:41 +02:00
Philippe Canal
46c2ef299a Properly pop and restore (and clean) Parser::TemplateIds 2015-10-05 03:24:41 +02:00
Philippe Canal
975caef006 Push/pop value of Sema::InNonInstantiationSFINAEContext.
This avoid 'suppressed diagnostics to be nonetheless pick up for the SFINAE mechanism/implementation
2015-10-05 03:24:40 +02:00
Bertrand Bellenot
384c721750 Fix compilation errors on Windows (error C2065: 'constexpr' : undeclared identifier ) 2015-10-01 14:22:06 +02:00
Philippe Canal
8065dfa723 Support gcc 4.9.3's C++14-ish 2015-09-30 23:42:06 +02:00
Philippe Canal
47c7af8967 Fix doxygen comments 2015-09-30 16:51:02 +02:00
Philippe Canal
75fac59326 Coding conventions fixes 2015-09-30 16:41:12 +02:00
Philippe Canal
30352c97a3 Re-enable c00daa7 with handling of the case of 'missing' transactions.
This reverts commit 22c7eb4ae85145682bb0236b6b607188de174992.
2015-09-30 15:51:03 +02:00
Philippe Canal
1f0659d9b0 Remove warning message (intentional const cast) 2015-09-29 23:52:04 +02:00
Philippe Canal
9c88696445 Implement TCling::ResetGlobals to fix ROOT-7673.
Note we don't want to unload transaction so soon as this might remove the header files still needed
(they need to be removed by the library .... which is still a to-be-done feature)
2015-09-29 22:49:05 +02:00
Philippe Canal
70c402f585 Event quickFindType can lead to deserialization 2015-09-29 21:50:04 +02:00
Philippe Canal
50e1fe55cd Don't add spurrious const to a ref type 2015-09-29 19:18:04 +02:00
Philippe Canal
63f19daf03 Documentation justification for hand coded shortcut.
To handle 'Float_t*', quickFindType uses no memory (instead of 183B for findType) and is much faster
(6 times in this case), the cost is the additional ('unnecessary') checks in the cases not handled by
quickFindType.
2015-09-29 08:38:05 +02:00
Philippe Canal
cc7cfa6332 Extract routine quickFindType 2015-09-29 00:54:06 +02:00
Philippe Canal
2555f2e6e8 Remove debug statements 2015-09-29 00:54:06 +02:00
Philippe Canal
5ec73f0aa2 Extent and complete findType's use of quickFindDecl.
Requires to add code specific for builtins types (somehow not found by cling::utils::Lookup::Named).
White spaces fixes
2015-09-29 00:54:06 +02:00
Philippe Canal
426a1c4f4f Add more characters 'illegal' on quickFindDecl 2015-09-29 00:54:05 +02:00
Philippe Canal
795b215716 Use quickFindDecl in findType (need more adaptations) 2015-09-29 00:54:05 +02:00
Philippe Canal
2f40299656 Move findType below quickFindDecl 2015-09-29 00:54:05 +02:00
Philippe Canal
2aff147565 quickFindDecl: use more generic parameter name 2015-09-29 00:54:05 +02:00
Philippe Canal
c9b19691af Document quickFindDecl 2015-09-29 00:54:05 +02:00
Philippe Canal
5ecfd9525f fix scope. 2015-09-29 00:54:05 +02:00
Philippe Canal
b202613de5 Extract 'quick decl find' out of findScope 2015-09-29 00:54:05 +02:00
Philippe Canal
df44a9d01d Use canonical type when making type based decision 2015-09-24 11:15:18 +02:00
Philippe Canal
569ef839cb Implement DeclCollector::HandleInvalidTagDeclDefinition.
This allow the transaction from noticing and removing invalid decl (appear during template instantiation)
2015-09-23 09:43:03 +02:00
Axel Naumann
b7ceb3550e Keep pending instants upon unload. Fixes CMS missing symbol. 2015-08-26 08:46:03 +02:00
Axel Naumann
dec5717d4c Fix printing of false! (And add a test.) 2015-08-21 12:23:04 +02:00
Boris Perovic
39f64ab7b7 Catch-all printValue implementation changed to enable correct invocation if only parent type overload exists (ex. if there is no overload for TF1*, compiler invokes the overload to its best parent overload match, in the worst case void*). Argument changed from reference to pointer to support this. isEnumType Coverity bug changed from if to assert (coding, not runtime error) Changed the way printValue is invoked in order to correctly cast Value to the needed value (e.g. LL -> short). Extracted value stays in scope while we execute printValue, because we use the address. 2015-08-20 17:06:02 +02:00
Boris Perovic
fc447d5fd5 Small improvements. nullptr -> nullptr_t for isNullPtrType 2015-08-18 18:08:20 +02:00
Boris Perovic
800c644352 Removed "VALID" after address output, fixes roottest. Various fixes based on comments after second round. 2015-08-18 18:08:20 +02:00
Boris Perovic
2d317b983d Fixes based on cling test suite ("make test"). 2015-08-18 18:08:20 +02:00
Boris Perovic
34b8b73a30 Fixed potential bug found by Coverity (https://coverity.cern.ch/reports.htm#v13142/p10001). 2015-08-18 18:08:19 +02:00
Boris Perovic
f7cf46ab31 Removed old Stream functions from ValuePrinter.cpp. 2015-08-18 18:08:19 +02:00
Boris Perovic
1aa5329d74 Simplified printValue(const char *const val). 2015-08-18 18:08:18 +02:00
Boris Perovic
e7d605bccc Changed using of QualifiedType.getAsString() to cling::utils::TypeName::GetFullyQualifiedName(QualifiedType, ASTCtx). 2015-08-18 18:08:18 +02:00
Boris Perovic
127f226acd Extracted printing of unpacked Values. Minor comment fixes. 2015-08-18 18:08:18 +02:00
Boris Perovic
a9825d50dc Removed unused function hasViableCandidateToCall (overload resolution and general fallback deals with this now). Moved isAddressValid function from Value.cpp to ValuePrinter.cpp and implemented the check for void*. 2015-08-18 18:08:18 +02:00
Boris Perovic
517eab8df1 Removed old printValue_Default and printType_Default methods. Using fully qualified name in new printType_New method. 2015-08-18 18:08:18 +02:00