2906 Commits

Author SHA1 Message Date
CristinaCristescu
9cff82d107 Enable Pointer validity check for loadFile and process (user code). 2016-04-22 21:14:07 +02:00
CristinaCristescu
ac18e69a68 Create option for disabling the Pointer check in cling::Interpreter::declare.
To improve performance we limit the use of the Pointer validity check
and remove it from cling::Interpreter::declare.
To do this we introduce a Compilation Option which is used by the
ASTTransformer through Transaction.
2016-04-22 21:14:07 +02:00
Axel Naumann
6f3a95eef2 Doxygen. 2016-04-22 12:29:14 +02:00
CristinaCristescu
60a1b6bca4 Remove redundant test for CXXThisExpr in NullDeref. 2016-04-22 11:44:51 +02:00
CristinaCristescu
afdb4e75a7 Memory leak due to undeleted pointer. 2016-04-21 19:14:47 +02:00
Axel Naumann
8e5514f5b5 Only inject pointer checks if we run.
Fixes an issue visible on Ubuntu, where we deserialize a pointer check call from the PCH, that now has completely bogus (deserialized) pointers to Expr and Sema.
2016-04-21 19:14:47 +02:00
Oliver Freyermuth
304529ba41 MultiplexInterpreterCallbacks: Also multiplex the PrintStackTrace through here. 2016-04-21 19:14:47 +02:00
Oliver Freyermuth
271a0a1829 ExceptionRTTI: Only do dereferencing of Interpreter / Sema if pointer is really nullptr / invalid.
This fixes the crash on startup / during static initialization.
The Interpreter-argument given to cling_runtime_internal_throwIfInvalidPointer during
static initialization is not yet valid.
Only dereferencing in case an error was really diagnosed is also more efficient.
2016-04-21 19:14:47 +02:00
Axel Naumann
cec046a44f Dump stack trace when throwing a null deref exception. 2016-04-21 19:14:47 +02:00
Axel Naumann
50bfb01db7 NullDerefProtectionTransformer is not a WrapperTransformer anymore. 2016-04-21 19:14:47 +02:00
Axel Naumann
dc32ab8e73 Use /dev/random, some kernels skip writing to /dev/null. 2016-04-21 19:14:47 +02:00
Axel Naumann
6c3bb2daef Refinements: use std::array+find, comments, func names. 2016-04-21 19:14:47 +02:00
CristinaCristescu
6dc84b0f29 Improve performance of address validation of interpreted code. 2016-04-21 19:14:47 +02:00
Axel Naumann
061da2fd5b Simplify and fix Makefile (append instead of subst), still ROOT-8111. 2016-04-21 19:14:47 +02:00
Axel Naumann
739a3c962c Fix decl / impl noexcept mismatch; throw() -> noexcept. 2016-04-21 19:14:47 +02:00
Vassil Vassilev
c3480a086c The decl shouldn't be more 'lax' than the one in base. 2016-04-21 19:14:47 +02:00
Axel Naumann
2a78137bf1 Remove -fno-rtti / -fno-exception for ExceptionRTTI, also in Module.mk. 2016-04-21 19:14:47 +02:00
Axel Naumann
bb7b60959b Sort the source files closer to alphabetical order. 2016-04-11 12:14:17 +02:00
Axel Naumann
ea41f5b87e Split Exception.cpp into a part that does and does not need RTTI.
ROOT needs to dynamic_cast a std::exception to an InterpreterException - that only works if the latter has rtti.
2016-04-11 12:14:17 +02:00
Axel Naumann
177ac81d74 Formatting, mention tools/Jupyter/kernel subdir. 2016-04-09 11:29:07 +02:00
Jan Christoph Uhde
a558c4cf02 Check for existing libclingJupyter, not whether it's executable. 2016-04-09 11:14:06 +02:00
Axel Naumann
434d039331 Add python2 compat as suggested by @hellpanderrr in Issue #1. 2016-04-09 10:59:14 +02:00
Axel Naumann
ac3d7022f0 Update required symbol cling_runtime_internal_throwIfInvalidPointer. 2016-04-09 10:44:32 +02:00
Axel Naumann
5c0001659b Bind Jupyter to MetaProcessor instead of Interpreter. 2016-04-08 16:59:08 +02:00
CristinaCristescu
1cb874532b Correct DiagnoseIfInterpreterException in iterpreter. 2016-04-08 15:44:11 +02:00
CristinaCristescu
0fb177cbf2 Do not check null deref for static data members calls. 2016-04-08 15:44:11 +02:00
CristinaCristescu
fc500ad68e Reduce I/O operations caused by the check of address validity. 2016-04-08 15:44:11 +02:00
CristinaCristescu
1bd499bb15 Fix bug - check only for function arguments of pointer types. 2016-04-08 15:44:11 +02:00
CristinaCristescu
0059a81ac3 In Visitor of PointerCheckInjector use Traverse not Visit. 2016-04-08 15:44:11 +02:00
CristinaCristescu
1472015449 Create function member of IncrementalParser for setting the transformers.
The transformers have to be set later in the initialization for 2 reasons:
- to avoid the null deref check before the check pointer function is declared
in the RuntimeUniverse;
- to avoid useless checks.
2016-04-08 15:44:11 +02:00
CristinaCristescu
31af5359b1 Use RecursiveASTVisitor instead of StmtVistor in NullDeref transformer.
The Stmt visitor does not allow for Decl visiting.
2016-04-08 15:44:11 +02:00
CristinaCristescu
89a06892df Constexpr cannot be checked for null derefrencing.
Constexpr are checked at compile time, and there is no need to check at run-time.
Thus we will not descend into visiting expresions which are constexpr.
2016-04-08 15:44:11 +02:00
CristinaCristescu
8cd5175dd7 Add the null derefrencing transformer to the AST transformers.
Checking all cases will be beneficial if it does not compromise
stability and performance.
2016-04-08 15:44:11 +02:00
Axel Naumann
9d13663e83 Fix warning unsigned/signed comparison. 2016-04-01 20:59:07 +02:00
Axel Naumann
438427127f Fix warning: unused return value of write() 2016-04-01 16:14:10 +02:00
Axel Naumann
ca24eff6a0 Remove dupe directory. 2016-04-01 16:14:10 +02:00
Axel Naumann
3354c15777 Update to current output, URL. 2016-04-01 10:44:15 +02:00
Axel Naumann
b6d55f06f7 Comment out demo of cling::Jupyter::pushOutput(). 2016-03-31 21:14:06 +02:00
Axel Naumann
5021042a26 Formatting. 2016-03-31 14:59:13 +02:00
Axel Naumann
6d3070de94 No exceptions in the (old) JIT of cling on powerpc64 either. 2016-03-31 10:29:07 +02:00
Axel Naumann
6d5b15306b XFAIL should be "arm64,aarch64", not "arm". 2016-03-31 09:44:06 +02:00
Axel Naumann
ac05121825 The (old) llvm JIT in cling does not support exceptions on either ARM64 not AARCH64. 2016-03-31 09:44:06 +02:00
Axel Naumann
f1d245da6a Clarify where the error comes from (cling!). 2016-03-30 12:44:14 +02:00
Axel Naumann
3c31044732 Do not rely on debug output. Fix code. 2016-03-30 12:44:14 +02:00
Vassil Vassilev
fce9772fd5 Fix cling build instructions. 2016-03-29 14:59:04 +02:00
Pere Mato
1c1db3c3c9 Changed to avoid wanings when using Xcode >= 7.3 2016-03-24 11:59:43 +01:00
CristinaCristescu
b9a2d80235 Diagnose Interpreter exceptions.
Enable the TInterpreter to diagnose InterpreterExceptions so that
they can be caught and diagnose from outside ROOT. For that
InterpreterException derives from std::exception.
2016-03-23 14:29:11 +01:00
Paul Seyfert
8fe8f2f4ad disable grep colors, fixes ROOT-8056 2016-03-21 09:59:25 +01:00
Axel Naumann
0d827a761a Add test for ROOT-7837. 2016-03-04 21:29:05 +01:00
Philippe Canal
f8a9fdcfc7 In AutoSynthesizer handle the case of try-catch function [ROOT-8034].
Example of try-catch function:

void function_with_try_block()
try
{
    // try block body
}
catch (...)
{
    // catch block body
}
2016-03-03 19:29:13 +01:00