IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
This effectively reverts commit 74472caaa9 ("[cling] Fixes issue in
DeclUnloader: do not unload templates intantiated in the PCH"), it's
not needed anymore, all tests pass and the snippet in the summary of
https://github.com/root-project/root/pull/4447 works, but it filters
too many declarations from the unloader.
The body of member functions of a templated class only gets instantiated
when the function is used. These `CXXMethodDecl` should not be deleted
from the AST; instead return them to the 'instantiation pending' state.
StaticVarCollector recursively visited descendants of a `FunctionDecl`
node to collect static local variables. However, these always appear
in the enclosing DeclContext.
This expands the handling introduced in commit 31e46a65f6 to include
the length modifiers 'short' and 'long' as mentioned back then. It
still doesn't handle the cases of multiple modifiers such as "unsigned
long long int" and "long int unsigned long" (being the same type).
Fixes https://github.com/root-project/root/issues/13288
Otherwise they are emitted as internal and we get double-construction
and -destruction on the same memory address due to the way we promote
internal declarations in KeepLocalGVPass.
According to upstream tests, the de-duplication doesn't work on Windows
(yet), but I think this problem is severe enough to fix it on the other
platforms sooner rather than later.
Fixes#13429
(For context, this is important for multi-dimensional constant arrays
as described in ROOT-7016 and tested in Cling's Interfaces/evaluate.C
test. But for reasons unknown to me, the ROOT prompt now seems to have
a different way of handling this case because just reverting commit
d97e4dca363 still works there...)
Instead of using relying on recursive templated calls, perform the
type cast in the ValueExtractionSynthesizer. This has the advantage
of avoiding an ODR violation warning in MultipleInterpreters.C with
LLVM 16 (while unclear if that one is correct or not).
Warning appears when building on Windows:
```
Diagnostics.cpp
C:\git\root\interpreter\cling\lib\Utils\Diagnostics.cpp(37,27): warning
C4805: '|': unsafe mix of type 'bool' and type
'int' in operation
[C:\Soft\root_64\interpreter\cling\lib\Utils\obj.clingUtils.vcxproj]
```
These symbols may not be found automatically. See also upstream issue
https://github.com/llvm/llvm-project/issues/61289. This fixes the
test DynamicLibraryManager/cached_realpath.C, approach by Lang Hames.
This new release includes some improvements:
* Add experimental support for forward vector mode
* Add pushforwards for std::floor and std::ceil
* Improve AD function interfaces with bitmasked options. For example:
clad::differentiate<<clad::order::first, clad::opts::vector_mode>(f) will
be equivalent to clad::differentiate<<1, clad::opts::vector_mode>(f) and
will request the first order derivative of f in forward vector mode.
* LLVM16 Support
See more at: https://github.com/vgvassilev/clad/blob/v1.2/docs/internalDocs/ReleaseNotes.md
Fixes https://github.com/root-project/root/issues/9449
so it is possible to define operator overload in cling cmd prompt.
btw, Make SkipPointerRefs() to not assume next token being a
tok::raw_identifier since it can be a global-scoped identifier,
e.g. int* ::class_a::func_b(short c) { return nullptr; }
e.g. class_a::class_a() = default;
class_a::~class_a();
They have no function definition body so caller of IsClassOrFunction()
should not try to parse their function bodies.
This makes it possible to drop our custom CompilerInvocation::addOverlay
functionality (but the rest of the patch that introduced it is still
needed with LLVM 13, so it cannot be reverted for now).
According to feature_test_macros, this macro is obsolete and "glibc
has been thread-safe by default for many years." Other platforms
don't use it at all, for example FreeBSD.
Some parts of ROOT used it to determine if we are compiling with
-pthread, but this is essentially unused these days because the
CMake build always enables threading support and there exists no
option to turn it off.
This will be required for future LLVM upgrades that rely on a common
cmake/ directory next to clang/ and llvm/.
The bulk of this change is the result of the following commands:
$ mkdir interpreter/llvm-project/
$ git mv interpreter/llvm/src/tools/clang/ interpreter/llvm-project/clang/
$ git mv interpreter/llvm/src/ interpreter/llvm-project/llvm/
$ git mv interpreter/llvm/llvm-project.tag interpreter/llvm-project/llvm-project.tag
Before showing command promt or executing scripts from argv,
enumerate .C files in the directory ${CLING_HOME}/.cling.d/ in alphabetic
order then .x them.
Search order of ${CLING_HOME}:
1. ${CLING_HOME} envvar
2. ${XDG_CONFIG_HOME}/cling/
3. ${HOME}/.config/cling/
4. ${HOME}/
As commit 2db042523a explains, this header doesn't exist anymore since
glibc 2.26. The oldest distributions that ROOT currently supports are
EL8 and Debian 10, both of which have glibc 2.28. Remove the module as
it also causes problems on FreeBSD due to including locale.h and a
cyclic dependency std -> xlocale.h -> std.
Prior to the upgrade to LLVM13, child interpreters used to also lookup symbols
in their parent.
This commit introduces a `DefinitionGenerator` that allows for symbol lookup
across different `IncrementalJIT` instances, which restores the old behavior.
This change fixes the following tests:
- CodeUnloading/AtExit.C
- MultipleInterpreters/MultipleInterpreters.C
Fixes#12455.
Do not use `ActOnReturnStmt()`, given that the scope returned by
`m_Sema->getCurScope()` might be == m_Sema->TUScope which obviously is
not a function scope.
This fixes the following crash:
```
1: #3 0x0000556b6a50389e clang::Sema::ActOnReturnStmt(clang::SourceLocation, clang::Expr*, clang::Scope*) (/home/jalopezg/CERN/repos/root/_build/interpreter/llvm/src/bin/cling+0x225389e)
1: #4 0x0000556b69215c56 cling::DeclExtractor::EnforceInitOrder(llvm::SmallVector<clang::Stmt*>&) (/home/jalopezg/CERN/repos/root/_build/interpreter/llvm/src/bin/cling+0xf65c56)
1: #5 0x0000556b69216788 cling::DeclExtractor::ExtractDecl(clang::FunctionDecl*) (/home/jalopezg/CERN/repos/root/_build/interpreter/llvm/src/bin/cling+0xf66788)
1: #6 0x0000556b69216a75 cling::DeclExtractor::Transform(clang::Decl*) (/home/jalopezg/CERN/repos/root/_build/interpreter/llvm/src/bin/cling+0xf66a75)
```
This diagnostic should always be promoted to error, regardless of the ignoring
state in `FilteringDiagConsumer`.
This fixes the SourceCall/ErrorMacro.C test.
The failure became visible after merging
https://github.com/root-project/root/pull/12654, given that `IgnorePromptDiags`
now defaults to 0 in `makeDefaultCompilationOptions()`.