Check duplicate issues.
Description
The following investigation has been triggered by https://github.com/root-project/root/actions/runs/26832493714/job/79117385578?pr=22461
On Fedora 44 and GCC 16 ACLiC is triggering a very obscure uninitialized warning in RVec, the reproducer is simple (see below), but it must include both the usage of RVec<bool> and ACLiC directly. The equivalent code with a direct dictionary generation via rootcling followed by the creation of the corresponding shared library doesn't trigger the warning.
The following warnings are triggered:
In file included from /github/home/ROOT-CI/src/roottest/root/dataframe/mytest.cpp:1,
from /github/home/ROOT-CI/src/roottest/root/dataframe/mytest_cpp_ACLiC_dict.cxx:41:
/github/home/ROOT-CI/build/include/ROOT/RVec.hxx: In constructor ‘ROOT::Internal::VecOps::SmallVectorTemplateCommon<T>::SmallVectorTemplateCommon(size_t) [with T = bool]’:
/github/home/ROOT-CI/build/include/ROOT/RVec.hxx:222:68: warning: ‘<unknown>’ may be used uninitialized [-Wmaybe-uninitialized]
222 | SmallVectorTemplateCommon(size_t Size) : Base(getFirstEl(), Size) {}
| ^
/github/home/ROOT-CI/build/include/ROOT/RVec.hxx:214:10: note: by argument 1 of type ‘const ROOT::Internal::VecOps::SmallVectorTemplateCommon<bool>*’ to ‘void* ROOT::Internal::VecOps::SmallVectorTemplateCommon<T>::getFirstEl() const [with T = bool]’ declared here
214 | void *getFirstEl() const
| ^~~~~~~~~~
In file included from /github/home/ROOT-CI/src/roottest/root/dataframe/mytest.cpp:1,
from /github/home/ROOT-CI/src/roottest/root/dataframe/mytest_cpp_ACLiC_dict.cxx:41:
/github/home/ROOT-CI/build/include/ROOT/RVec.hxx: In constructor ‘ROOT::Internal::VecOps::SmallVectorTemplateCommon<T>::SmallVectorTemplateCommon(size_t) [with T = bool]’:
/github/home/ROOT-CI/build/include/ROOT/RVec.hxx:222:68: warning: ‘<unknown>’ may be used uninitialized [-Wmaybe-uninitialized]
222 | SmallVectorTemplateCommon(size_t Size) : Base(getFirstEl(), Size) {}
| ^
/github/home/ROOT-CI/build/include/ROOT/RVec.hxx:214:10: note: by argument 1 of type ‘const ROOT::Internal::VecOps::SmallVectorTemplateCommon<bool>*’ to ‘void* ROOT::Internal::VecOps::SmallVectorTemplateCommon<T>::getFirstEl() const [with T = bool]’ declared here
214 | void *getFirstEl() const
| ^~~~~~~~~~
Reproducer
$: cat mytest.cpp
#include <ROOT/RVec.hxx>
struct S{
ROOT::RVec<bool> v;
};
$: root
root [0] gSystem->CompileMacro("mytest.cpp");
ROOT version
master
Installation method
Built from source
Operating system
Fedora 44
Additional context
No response
Check duplicate issues.
Description
The following investigation has been triggered by https://github.com/root-project/root/actions/runs/26832493714/job/79117385578?pr=22461
On Fedora 44 and GCC 16 ACLiC is triggering a very obscure uninitialized warning in RVec, the reproducer is simple (see below), but it must include both the usage of
RVec<bool>and ACLiC directly. The equivalent code with a direct dictionary generation viarootclingfollowed by the creation of the corresponding shared library doesn't trigger the warning.The following warnings are triggered:
Reproducer
ROOT version
master
Installation method
Built from source
Operating system
Fedora 44
Additional context
No response