Commit Graph

4771 Commits

Author SHA1 Message Date
Vassil Vassilev
4fa39ba82f Do not resolve symbols from executables compiled with -fPIE.
Executables that are compiled with fPIE means they are compiled in a position
independent manner and are almost indistinguishable from the shared objects. A
reasonably reliable way to find if this was a `pie executable` is to check the
`DF_1_PIE` in the dynamic section of ELF.

The pseudo-code is:
```
if DT_FLAGS_1 dynamic section entry is present
  if DF_1_PIE is set in DT_FLAGS_1:
    print pie executable
  else
    print shared object
```

See https://stackoverflow.com/questions/34519521/why-does-gcc-create-a-shared-object-instead-of-an-executable-binary-according-to/34522357#34522357

Fixes root-project/root#7366

Patch by Alexander Penev (@alexander-penev)
2022-01-07 16:29:03 +01:00
Jonas Hahnfeld
29d368ec6b Implement -mllvm for option passing to LLVM 2021-12-02 08:29:08 +01:00
Jonas Hahnfeld
f4641c0cb0 Remove unused CUDAFatbinaryArgs 2021-12-02 08:29:08 +01:00
Karel Balej
c1a6a8a634 concretize condition 2021-11-23 10:44:03 +01:00
Axel Naumann
517d7e4bca Revert "[cxxmodules] Enable a module if json is present."
This reverts commit 0cdfa69f216854d7319a6a31a61021a1e5ac45de.
We need to hide json includes: modules cannot cope with them, and it introduces a runtime requirement to find json.
2021-11-12 16:29:06 +01:00
Axel Naumann
a860c891d4 EvaluateInternal: capture ValuePrinting request early:
`RunFunction()` might trigger unloading of `lastT`, so store its setting
for "want value printing" in a local variable before calling RunFunction().

Fixes valgrind complaining about `./stressInterpreter` which is reloading
the "outer" stressInterpreter.cxx from inside `RunFunction()`.
2021-11-12 16:14:06 +01:00
Axel Naumann
3afd3b4056 ReuseExistingWeakSymbols: prevent stale symbol emission:
When determining whether a weak symbol was already emitted (and its
subsequent definition can thus be replaced by a declaration) look
for emitted symbols in the symbol table and the in-process symbols,
instead of possibly generating symbols through the JIT. This prevents
symbols being emitted that refer into
IncrementalExecutor::m_PendingModules elements that have since been
removed.
2021-11-12 16:14:06 +01:00
Axel Naumann
234772da1c Prevent traling whitespace in -isystem. 2021-11-12 16:14:06 +01:00
Axel Naumann
186d1100d4 Set default CompilationOptions opt level to 1:
should have no effect as it will be anyway overridden by whatever CodeGen has.
2021-11-12 16:14:06 +01:00
Axel Naumann
9fb41f09f0 Let opt of transaction decide on inlining, fixes O3. 2021-11-12 16:14:06 +01:00
Vassil Vassilev
605924e143 Enable a module if json is present. 2021-11-06 08:14:07 +01:00
Javier Lopez-Gomez
9eef0a1354 Remove unneed assert()
The case of `ExprAddresses == nullptr` seems to be naturally handled in the
lines below. Therefore, removing this assertion -as discussed with vvassilev.

Closes issue #8389.
2021-11-04 19:29:05 +01:00
Axel Naumann
9a8996f714 Remove llvm_unreachable:
This is now hit for variables on Windows (which don't see the GlobalVariable case).
Before the `#ifndef WIN32`, this case was not hit by roottest, neither on Windows
nor macOS nor Linux - so the coverage of "make it a declaration" is good.
2021-10-14 15:14:05 +02:00
Axel Naumann
00bbb8e081 Windows: always emit definitions of JITed "weak" variables
Fixes test failures (crashes) in
    projectroot.test.test_stressiterators_interpreted
    projectroot.roottest.cling.dict.roottest_cling_dict_assertTmpltDefArgCtor
    projectroot.test.test_stresshistogram_interpreted
    projectroot.roottest.root.meta.roottest_root_meta_runnamespace_auto
2021-10-14 15:14:05 +02:00
Axel Naumann
11d203f55d Do not emit existing weak symbols:
Instead of suppressing the emission of weak symbols that have an existing
in-process definition, remove the definition of the weak symbol from the
module. This prevents relocation "surprises" as seen e.g. on Apple M1, where
weak symbol definitions are expected to be found within the module, and
relocations are thus expected to be local. By removing the definition, the
symbol becomes a reference (declaration) and relocation will work as for any
non-local symbol.

Thus also reduces the amount of duplicate work, as in-process weak symbols
will now be suppressed early.
2021-10-14 15:14:05 +02:00
Axel Naumann
fe70a6fe6e getSymbolAddressWithoutMangling() already handles injected syms and dlsym. 2021-10-14 15:14:05 +02:00
Bertrand Bellenot
6a7fc6bdc8 change compiler flags (#9083)
* [cling][windows] change compiler flags

 - Set the `-std:c++14` / `-std:c++17` flag depending on the version of Visual Studio (only if building outside ROOT)
 - Split the one line exports in three lines to fix a potential issue with Ninja on Windows (missing a white space between each `/EXPORT:` specifier)

* Add a forgotten `endif()`
2021-10-07 16:59:05 +02:00
Bertrand Bellenot
027b698255 Add the _MSC_VER value for Visual Studio 2022
Add the _MSC_VER value (between 1930 and 1940) for the coming soon `Visual Studio 2022`
2021-10-05 14:59:03 +02:00
Vassil Vassilev
9c22d6ef0e Complain if glibc is not installed.
Likely will improve root-project/root#8157
2021-10-04 14:44:06 +02:00
Javier Lopez-Gomez
dd1a74f009 Enable replacement of the default diagnostic consumer
These changes enable the replacement of the default DiagnosticConsumer provided
by CIFactory.  Concretely, two member functions have been added to the
Interpreter class:

- replaceDiagnosticConsumer(): replaces the default CIFactory-provided DiagnosticConsumer.

- hasReplacedDiagnosticConsumer(): returns whether the default diagnostic
consumer has been replaced.
2021-09-09 14:59:06 +02:00
Javier Lopez-Gomez
8d98340299 InputValidator::validate(): add test against ROOT-9202 2021-09-08 19:14:06 +02:00
Javier Lopez-Gomez
a8a3db4611 Cleanup MetaLexer; remove unused LexPunctuatorAndAdvance() 2021-09-08 19:14:06 +02:00
Javier Lopez-Gomez
e2d44c31a3 Rewrite of InputValidator::validate()
Replace implementation of `InputValidator::validate()` by simpler, more
maintainable code that also fixes ROOT-9202.

The previous implementation was unable to properly handle line continuation
after ',' or '\'.  Specifically, it skipped over non-punctuation tokens,
entering continuation mode even if ',' or '\' were not the last tokens in the
input, e.g. `int a, b` or 'int a \      b'.

Fixes ROOT-9202.
2021-09-08 19:14:06 +02:00
Javier Lopez-Gomez
41f3ed6c97 MetaLexer: return /* and */ as tokens; added ReadToEndOfLine()
This commit includes the following changes to MetaLexer:
- Update `MetaLexer::Lex()` to return `/*` (tok::l_comment), `*/` (tok::r_comment),
and `<` (tok::less) as tokens.

- Added `MetaLexer::ReadToEndOfLine()` function: consume input until `\r` or `\n`.

- Added `MetaLexer::RAII`, a RAII object that saves/restores the current position.
2021-09-08 19:14:06 +02:00
Vassil Vassilev
d78d1a03fe Fix building ROOT with external llvm.
Fixes #8141.
2021-08-17 10:29:05 +02:00
Baidyanath Kundu
8e950be75d Bump clad version to v0.9.
This new release includes some improvements:
* Extended array support
* Add cmake variables to control the locations where find_package discovers LLVM and Clang: `LLVM_CONFIG_EXTRA_PATH_HINTS` and `Clang_CONFIG_EXTRA_PATH_HINTS` respectively.

See more at: https://github.com/vgvassilev/clad/blob/v0.9/docs/ReleaseNotes.md
2021-08-16 06:44:07 +02:00
Axel Naumann
10180ae79f On Win, do not always-append to cling-compiledata.h.in:
Before, cling-compiledata.h caused
```
interpreter\cling\lib\Interpreter\cling-compiledata.h(6,1): warning C4005: 'CLING_UCRT_VERSION': macro redefinition
  interpreter\cling\lib\Interpreter\cling-compiledata.h(3): message : see previous definition of 'CLING_UCRT_VERSION'
```
due to it containing
```

      #define CLING_INCLUDE_PATHS ""
      #define CLING_UCRT_VERSION  ""
      #define CLING_INCLUDE_PATHS ""
      #define CLING_UCRT_VERSION  "10.0.19041.0"
```
2021-08-10 12:29:07 +02:00
Vassil Vassilev
276a46bcfa Silence warning ignoring return value of readlink. 2021-08-07 09:29:07 +02:00
Vassil Vassilev
d36bfe15e4 Ask for the real path in any case. 2021-08-07 09:29:07 +02:00
Vassil Vassilev
55a4e89b3b Fix ROOT-10484 by implementing dyld support for RPATH.
Some libraries are layered can depend on other libraries on a private paths.
That is, libA can depend on libB which is neither on the LD_LIBRARY_PATH nor
on a known system path. The posix linker injects "variables" such as @rpath
which is expanded at link time to resolve the libraries on a relative path.

Prior to this patch, cling's Dyld-based symbol resolution could not trace down
such cases causing failures in symbol resolution when a symbol is only defined
in libB (a private library).

This patch implements the basic posix linker substitutions allowing cling's
Dyld-based symbol resolution implementation to follow more closely the linker
rules.

Kudos Alexander Penev (@alexander-penev).
2021-08-07 09:29:07 +02:00
Vassil Vassilev
03e02c57bb Fix regression in #pragma cling add_library_path().
This regression was introduced by root-project/root@561e905b where we stopped
iterating, on every lookup, over the -L paths passed at start up.

This patch adds the path to the search paths of the DynamicLibraryManager
rather than to the invocation options.
2021-08-07 09:29:07 +02:00
Oksana Shadura
d1c279a075 Update minimal CMake version in favour of advances features it offers (#8336)
* Update minimal CMake version in favour of advances features it offers

* Remove workaround for FindDoxygen (cmake < 3.13)

* Remnove workaround for cmake < 3.14 to able to report issue directly to stdout

* Remove workaround for CMake < 3.14 when Ninja 1.9.0 builds static libraries twice

* Remove other CMake hack from multi-python ROOT builds

* We are using 3.16 as a min CMake version and REGEX is definitely available in this version

* Remove code used to search Python2/Python3 with <= CMake 3.14
2021-08-04 11:14:06 +02:00
Bertrand Bellenot
df3f66afef check for internet connection. Fixes #8292 (#8520)
* [cmake] check for internet connection. Fixes #8292

This should fix an issue with external packages requiring an internet connection when working offline.
If there is no internet connection, they are either automatically disabled or raise a `FATAL_ERROR` if the `fail-on-missing` flag is `ON`

* Add forgotten "is" (thanks @pamputt)

* Add internet check for the forgotten 'davix' and 'ssl' options

* Change the timeout value and add information messages (thanks Axel)

* Let's download an existing file to test internet access

* Disable also clad if there is no internet connection

* Do not add the clad directory in case of no internet access

* Change the logic for clad with no internet connection

* disable clad early enough if there is no internet connection

* Disable also xrootd when disabling builtin_xrootd
2021-07-15 15:59:07 +02:00
Bertrand Bellenot
95ab06f44d Replace the __CUDACC__ preprocessor macro by _HAS_CONDITIONAL_EXPLICIT=0
The `__CUDACC__` preprocessor define macro is not needed anymore (thanks to Axel), but the `_HAS_CONDITIONAL_EXPLICIT=0` one still is.
2021-07-12 17:59:07 +02:00
Bertrand Bellenot
8d5ab809ec Use C++ syntax (and not the CMake one) 2021-07-12 17:59:07 +02:00
Bertrand Bellenot
901018c7fd Disable the __CUDACC__ macro definition with latest Visual Studio
Disable the silly workaround for cling not being able to parse the STL headers anymore after the update of Visual Studio v16.7.0. Works now with the upgrade of LLVM and Visual Studio 16.10.3.
This workaround had side effects when trying to use code supporting CUDA (e.g. boost) inside the interpreter.
2021-07-12 17:59:07 +02:00
Javier Lopez-Gomez
4f714ac55b Enable -Wredundant-parens
Warn on redundant parentheses in declarators whose parsing might not match
the user intent, e.g.
```
root [0] int i = 1;
root [1] (bool)i
(bool) true
root [2] bool(i)
ROOT_prompt_1:1:5: warning: redundant parentheses surrounding declarator [-Wredundant-parens]
bool(i)
    ^~~
(bool) false
```

For more information see http://github.com/root-project/issues/8304.
Closes issue #8304.
2021-07-09 11:59:03 +02:00
Axel Naumann
2d948ebcff Also fwd decl underlying type of using decls:
Before, only the using decl itself was forward declared, causing
undeclared identifiers in forward declaration code, as witnessed in
https://github.com/root-project/root/issues/8499

Given the similarity of using and typedef, merge both into a single
function, making sure both have the same featureset, and through that
fixing this issue as a side-effect.
2021-06-23 10:14:05 +02:00
Vassil Vassilev
68b3b29a95 Bump clad version to v0.8.
The new release includes some improvements:
* Implement #pragma clad ON/OFF/DEFAULT to control regions where clad is active
* Add getCode() interface for interactive use

See more at: https://github.com/vgvassilev/clad/blob/v0.8/docs/ReleaseNotes.md
2021-05-31 13:14:07 +02:00
Axel Naumann
c385db1be7 Trust that GCC has __attribute__ visibility:
GCC 4.8 (which we support...) does not have __has_attribute. Fixes CentOS7 builds.
2021-05-27 09:29:07 +02:00
Mattias Ellert
35259e725a Actually request the use of the large code model for ppc64/ppc64le
Instead of erroring out with an assert.
2021-05-26 10:44:02 +02:00
Axel Naumann
bb143fbd2f Remove symbols explicitly exported through CLING_EXPORT. 2021-05-25 16:29:06 +02:00
Axel Naumann
07c6081059 Simplify visibility setting:
Rather than string-replacing visibility, use the CMake interface.
Do not set visibility in the ROOT case; ROOT can handle that
just fine itself.
ROOT actually does *not* need visibility=default, now that the
few symbols that are required for using cling (apart from clingtest)
are explicitly requested through attributes.
2021-05-25 16:29:06 +02:00
Axel Naumann
3bd3ff18cb Make sure required symbols are exported:
and use a standard mechanism that plays well with -fvisibility.
Given that several symbols now use declspec(dllexport), remove them from
the ad-hoc cling_exports in ROOT's CMakeLists.txt.
2021-05-25 16:29:06 +02:00
Axel Naumann
fc5b3e6f16 Silence GCC 4.8 / CentOS7 warnings:
cling/include/cling/Interpreter/LookupHelper.h:61:69: warning: missing initializer for member ‘std::array<const clang::Type*, 4ul>::_M_elems’ [-Wmissing-field-initializers]
     std::array<const clang::Type*, kNumCachedStrings> m_StringTy = {};
                                                                     ^
2021-05-21 09:44:08 +02:00
Javier Lopez-Gomez
668dfdcc7f cleanup MetaSema.cpp
Additionally, this commit extends the behavior of `.x`. Specifically, it adds
support for a list of function names whose execution will be tried in order.

To be compliant with the old behavior, this list currently only includes an
entry that matches the macro filename.
2021-05-12 17:59:06 +02:00
Vassil Vassilev
561e905b24 Use the dyld to show more meaningful message when a symbol is missing.
The dynamic library manager's dyld can search a symbol in the library path.
This patch uses that functionality to aid the 'unresolved while linking'
diagnostics.

Now we get:

cling -L lib/

****************** CLING ******************
* Type C++ code and press enter to run it *
*             Type .q to exit             *
*******************************************
[cling]$ extern int gErrorIgnoreLevel;
[cling]$ gErrorIgnoreLevel
IncrementalExecutor::executeFunction: symbol 'gErrorIgnoreLevel' unresolved while linking [cling interface function]!
Symbol found in '/.../lib/libCore.so'; did you mean to load it with .L /.../lib/libCore.so ?
[cling]$
2021-05-08 20:59:07 +02:00
Vassil Vassilev
74f74a7d0b Remove the include to IncrementalExecutor.
This exposed a set of missing includes and constructors to destroy the
backend passes.
2021-05-08 20:59:07 +02:00
Vassil Vassilev
d466a98e30 Consider only dll files to be shared libraries.
This avoids problems where we consider other executables and object files as
libraries and the dyld decides to scan them. Upon this we hit files opened by
other processes and locked by the system (such as bootstat.dat :))

Thanks to Bertrand Bellenot for the diagnosis!
2021-05-08 20:59:06 +02:00
Axel Naumann
db2c5de3f2 Lifetime of MetaParser is that of its input:
Before, MetaParser might have pointed to a StringRef whose storage
was gone, see asan failure in roottest/cling/other/runfileClose.C below.

This was caused by recursive uses of MetaParser; see stack trace below:
the inner recursion returned, but as the same MetaParser object was used
by both frames, the objects cursor now pointed to freed memory.

Instead, create a MetaParser (and MetaLexer) object per input. That way,
their lifetime corresponds to the lifetime of their input.

=================================================================
==529104==ERROR: AddressSanitizer: stack-use-after-return on address 0x7ffff3afd82a at pc 0x7fffea18df6d bp 0x7fffffff8170 sp 0x7fffffff8168
READ of size 1 at 0x7ffff3afd82a thread T0
[Detaching after fork from child process 529183]
    #0 0x7fffea18df6c in cling::MetaLexer::Lex(cling::Token&) src/interpreter/cling/lib/MetaProcessor/MetaLexer.cpp:58:11
    #1 0x7fffea190d7c in cling::MetaParser::lookAhead(unsigned int) src/interpreter/cling/lib/MetaProcessor/MetaParser.cpp:89:15
    #2 0x7fffea190bd5 in cling::MetaParser::consumeToken() src/interpreter/cling/lib/MetaProcessor/MetaParser.cpp:49:5
    #3 0x7fffea191d4d in cling::MetaParser::isLCommand(cling::MetaSema::ActionResult&) src/interpreter/cling/lib/MetaProcessor/MetaParser.cpp:147:9
    #4 0x7fffea1914dd in cling::MetaParser::isCommand(cling::MetaSema::ActionResult&, cling::Value*) src/interpreter/cling/lib/MetaProcessor/MetaParser.cpp:123:12
    #5 0x7fffea191216 in cling::MetaParser::isMetaCommand(cling::MetaSema::ActionResult&, cling::Value*) src/interpreter/cling/lib/MetaProcessor/MetaParser.cpp:101:33
    #6 0x7fffea14e5aa in cling::MetaProcessor::process(llvm::StringRef, cling::Interpreter::CompilationResult&, cling::Value*, bool) src/interpreter/cling/lib/MetaProcessor/MetaProcessor.cpp:317:24
    #7 0x7fffe99b67b7 in HandleInterpreterException(cling::MetaProcessor*, char const*, cling::Interpreter::CompilationResult&, cling::Value*) src/core/metacling/src/TCling.cxx:2431:29
    #8 0x7fffe99bde30 in TCling::Load(char const*, bool) src/core/metacling/src/TCling.cxx:3454:10
    #9 0x7ffff7865f11 in TSystem::Load(char const*, char const*, bool) src/core/base/src/TSystem.cxx:1941:27
    #10 0x7ffff7b8a0e3 in TUnixSystem::Load(char const*, char const*, bool) src/core/unix/src/TUnixSystem.cxx:2789:20
    #11 0x7fffd78dd08b  (<unknown module>)
    #12 0x7fffe9f8a5d9 in cling::IncrementalExecutor::executeWrapper(llvm::StringRef, cling::Value*) const src/interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp:376:3
    #13 0x7fffe9d73dc2 in cling::Interpreter::RunFunction(clang::FunctionDecl const*, cling::Value*) src/interpreter/cling/lib/Interpreter/Interpreter.cpp:1141:20
    #14 0x7fffe9d6e317 in cling::Interpreter::EvaluateInternal(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cling::CompilationOptions, cling::Value*, cling::Transaction**, unsigned long) src/interpreter/cling/lib/Interpreter/Interpreter.cpp:1391:29
    #15 0x7fffe9d6c1fe in cling::Interpreter::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cling::Value*, cling::Transaction**, bool) src/interpreter/cling/lib/Interpreter/Interpreter.cpp:819:9
    #16 0x7fffea151826 in cling::MetaProcessor::readInputFromFile(llvm::StringRef, cling::Value*, unsigned long, bool) src/interpreter/cling/lib/MetaProcessor/MetaProcessor.cpp:507:22
    #17 0x7fffe99b585b in TCling::ProcessLine(char const*, TInterpreter::EErrorCode*) src/core/metacling/src/TCling.cxx:2570:39
    #18 0x7fffe99bbfee in TCling::ProcessLineSynch(char const*, TInterpreter::EErrorCode*) src/core/metacling/src/TCling.cxx:3496:17
    #19 0x7ffff77203d3 in TApplication::ExecuteFile(char const*, int*, bool) src/core/base/src/TApplication.cxx:1608:30
    #20 0x7ffff771ebdf in TApplication::ProcessFile(char const*, int*, bool) src/core/base/src/TApplication.cxx:1480:11
    #21 0x7ffff771e385 in TApplication::ProcessLine(char const*, bool, int*) src/core/base/src/TApplication.cxx:1453:14
    #22 0x7ffff7f8157a in TRint::ProcessLineNr(char const*, char const*, int*) src/core/rint/src/TRint.cxx:766:11
    #23 0x7ffff7f802f0 in TRint::Run(bool) src/core/rint/src/TRint.cxx:424:22
    #24 0x4ff96d in main src/main/src/rmain.cxx:30:12
    #25 0x7ffff6e040b2 in __libc_start_main /build/glibc-YbNSs7/glibc-2.31/csu/../csu/libc-start.c:308:16
    #26 0x41f35d in _start (asan/bin/root.exe+0x41f35d)

Address 0x7ffff3afd82a is located in stack of thread T0 at offset 42 in frame
    #0 0x7fffe99b3d8f in TCling::ProcessLine(char const*, TInterpreter::EErrorCode*) src/core/metacling/src/TCling.cxx:2456

  This frame has 21 object(s):
    [32, 56) 'sLine' (line 2462) <== Memory access at offset 42 is inside this variable
    [96, 104) 'R__guard2471' (line 2471)
    [128, 136) 'R__guard2488' (line 2488)
    [160, 176) 'interpreterFlagsRAII' (line 2491)
    [192, 240) 'result' (line 2511)
    [272, 276) 'compRes' (line 2512)
    [288, 312) 'mod_line' (line 2517)
    [352, 376) 'aclicMode' (line 2518)
    [416, 440) 'arguments' (line 2519)
    [480, 504) 'io' (line 2520)
    [544, 568) 'fname' (line 2521)
    [608, 632) 'ref.tmp' (line 2547)
    [672, 696) 'ref.tmp145' (line 2547)
    [736, 768) 'code' (line 2555)
    [800, 832) 'codeline' (line 2556)
    [864, 1384) 'in' (line 2559)
    [1520, 1552) 'ref.tmp176' (line 2562)
    [1584, 1600) 'agg.tmp'
    [1616, 1624) 'ref.tmp198' (line 2568)
    [1648, 1664) 'agg.tmp207'
    [1680, 1696) 'autoParseRaii' (line 2588)
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-use-after-return src/interpreter/cling/lib/MetaProcessor/MetaLexer.cpp:58:11 in cling::MetaLexer::Lex(cling::Token&)
Shadow bytes around the buggy address:
  0x10007e757ab0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
  0x10007e757ac0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
  0x10007e757ad0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
  0x10007e757ae0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
  0x10007e757af0: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
=>0x10007e757b00: f5 f5 f5 f5 f5[f5]f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
  0x10007e757b10: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
  0x10007e757b20: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
  0x10007e757b30: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
  0x10007e757b40: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
  0x10007e757b50: f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5 f5
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==529104==ABORTING

    at src/interpreter/cling/lib/MetaProcessor/MetaLexer.cpp:49
    at src/interpreter/cling/lib/MetaProcessor/MetaParser.cpp:41
    compRes=@0x7ffff3afd910: cling::Interpreter::kSuccess, result=0x7ffff3afd8c0, disableValuePrinting=false)
    at src/interpreter/cling/lib/MetaProcessor/MetaProcessor.cpp:314
    input_line=0x7ffff3afd829 "#define XYZ 21", compRes=@0x7ffff3afd910: cling::Interpreter::kSuccess,
    result=0x7ffff3afd8c0) at src/core/metacling/src/TCling.cxx:2431
    error=0x7fffd78cb0f4 <x>) at src/core/metacling/src/TCling.cxx:2591
    sync=false, err=0x7fffd78cb0f4 <x>) at src/core/base/src/TApplication.cxx:1472
    line=0x7fffd78c9000 "#define XYZ 21", error=0x7fffd78cb0f4 <x>)
    at src/core/base/src/TROOT.cxx:2328
   from asan/roottest/cling/other/fileClose_C.so
    filename=0x6070000f0fd0 "asan/roottest/cling/other/fileClose_C.so", flag=257)
    at /home/axel/build/llvm/llvm-project/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:6270
    at src/interpreter/cling/lib/Utils/PlatformPosix.cpp:118
    permanent=false, resolved=true)
    at src/interpreter/cling/lib/Interpreter/DynamicLibraryManager.cpp:184
    at src/interpreter/cling/lib/Interpreter/Interpreter.cpp:1444
    T=0x0) at src/interpreter/cling/lib/Interpreter/Interpreter.cpp:1560
    at src/interpreter/cling/lib/MetaProcessor/MetaSema.cpp:57
    actionResult=@0x7ffff39532b0: cling::MetaSema::AR_Success)
2021-05-05 09:44:04 +02:00