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