Skip to content

Commit f82906a

Browse files
authored
[llvm] Update ROOT and Cling to LLVM22
2 parents a1c3bbf + 3587115 commit f82906a

8,196 files changed

Lines changed: 906430 additions & 435039 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/llvm-diff.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,9 @@ jobs:
3434
for f in $(ls -A); do
3535
[ -e ../root/interpreter/llvm-project/$f ] || rm -r $f
3636
done
37+
# Only compare what is already there in third-party
38+
for f in $(ls -A third-party); do
39+
[ -e ../root/interpreter/llvm-project/third-party/$f ] || rm -r third-party/$f
40+
done
3741
- name: Compare
3842
run: diff -ur llvm-project/ root/interpreter/llvm-project/

.github/workflows/root-ci-config/buildconfig/fedora43.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
CMAKE_CXX_STANDARD=23
2-
experimental_adaptivecpp=ON
2+
experimental_adaptivecpp=OFF
33
pythia8=ON
44
roofit_multiprocess=ON
55
test_distrdf_dask=OFF

.github/workflows/root-ci-config/buildconfig/fedora44.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
CMAKE_CXX_STANDARD=23
2-
experimental_adaptivecpp=ON
2+
experimental_adaptivecpp=OFF
33
pythia8=ON
44
roofit_multiprocess=ON
55
test_distrdf_pyspark=OFF

.github/workflows/root-ci-config/buildconfig/ubuntu2404-cuda.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
CMAKE_BUILD_TYPE=RelWithDebInfo
22
cuda=ON
3-
experimental_adaptivecpp=ON
4-
experimental_genvectorx=ON
3+
experimental_adaptivecpp=OFF
4+
experimental_genvectorx=OFF
55
gdml=OFF
66
spectrum=OFF
77
sqlite=OFF
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
experimental_adaptivecpp=ON
2-
experimental_genvectorx=ON
1+
experimental_adaptivecpp=OFF
2+
experimental_genvectorx=OFF

bindings/pyroot/cppyy/cppyy/test/test_templates.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,6 @@ def test13_using_templated_method(self):
351351
assert type(d.get3()) == int
352352
assert d.get3() == 5
353353

354-
@mark.xfail(strict=True)
355354
def test14_templated_return_type(self):
356355
"""Use of a templated return type"""
357356

core/clingutils/res/TClingUtils.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ namespace clang {
6767
class Type;
6868
class TypeDecl;
6969
class TypedefNameDecl;
70+
enum class ElaboratedTypeKeyword;
7071
struct PrintingPolicy;
7172
}
7273

@@ -754,7 +755,7 @@ clang::QualType ReSubstTemplateArg(clang::QualType input, const clang::Type *ins
754755
int RemoveTemplateArgsFromName(std::string& name, unsigned int);
755756

756757
//______________________________________________________________________________
757-
clang::TemplateName ExtractTemplateNameFromQualType(const clang::QualType& qt);
758+
void ExtractTemplateNameFromQualType(const clang::QualType& qt, clang::TemplateName& theTemplateName, clang::ElaboratedTypeKeyword& theKeyword);
758759

759760
//______________________________________________________________________________
760761
bool QualType2Template(const clang::QualType& qt,

core/clingutils/src/TClingUtils.cxx

Lines changed: 77 additions & 121 deletions
Large diffs are not rendered by default.

core/dictgen/src/DictSelectionReader.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ bool DictSelectionReader::FirstPass(const clang::RecordDecl &recordDecl)
251251
{
252252
std::string className;
253253
ROOT::TMetaUtils::GetQualifiedName(
254-
className, *recordDecl.getTypeForDecl(), recordDecl);
254+
className, recordDecl.getASTContext().getCanonicalTagType(&recordDecl), recordDecl);
255255

256256
// Strip ROOT::Meta::Selection
257257
className.replace(0, 23, "");
@@ -312,7 +312,7 @@ bool DictSelectionReader::SecondPass(const clang::RecordDecl &recordDecl)
312312
if (InSelectionNamespace(recordDecl)) return true;
313313

314314
std::string className;
315-
GetQualifiedName(className, *recordDecl.getTypeForDecl(), recordDecl);
315+
GetQualifiedName(className, recordDecl.getASTContext().getCanonicalTagType(&recordDecl), recordDecl);
316316

317317
// If the class is not among those which have fields the type of which are to
318318
// be autoselected or excluded

core/dictgen/src/Scanner.cxx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ int RScanner::AddAnnotatedRecordDecl(const ClassSelectionRule* selected,
544544
0 != ROOT::TMetaUtils::GetClassVersion(recordDecl,fInterpreter)) {
545545
std::string normName;
546546
TMetaUtils::GetNormalizedName(normName,
547-
recordDecl->getASTContext().getTypeDeclType(recordDecl),
547+
recordDecl->getASTContext().getCanonicalTagType(recordDecl),
548548
fInterpreter,
549549
fNormCtxt);
550550
ROOT::TMetaUtils::Error(nullptr,"Union %s has been selected for I/O. This is not supported. Interactive usage of unions is supported, as all C++ entities, without the need of dictionaries.\n",normName.c_str());
@@ -586,7 +586,7 @@ int RScanner::AddAnnotatedRecordDecl(const ClassSelectionRule* selected,
586586
GetDeclQualName(recordDecl,qual_name);
587587
std::string normName;
588588
TMetaUtils::GetNormalizedName(normName,
589-
recordDecl->getASTContext().getTypeDeclType(recordDecl),
589+
recordDecl->getASTContext().getCanonicalTagType(recordDecl),
590590
fInterpreter,
591591
fNormCtxt);
592592
std::string typedef_qual_name;
@@ -740,7 +740,7 @@ bool RScanner::TreatRecordDeclOrTypedefNameDecl(clang::TypeDecl* typeDecl)
740740
declSelRuleMapIt->second != selected) {
741741
std::string normName;
742742
TMetaUtils::GetNormalizedName(normName,
743-
recordDecl->getASTContext().getTypeDeclType(recordDecl),
743+
recordDecl->getASTContext().getCanonicalTagType(recordDecl),
744744
fInterpreter,
745745
fNormCtxt);
746746

@@ -781,7 +781,7 @@ bool RScanner::TreatRecordDeclOrTypedefNameDecl(clang::TypeDecl* typeDecl)
781781
if (!isFileSelection) {
782782
std::string normName;
783783
TMetaUtils::GetNormalizedName(normName,
784-
recordDecl->getASTContext().getTypeDeclType(recordDecl),
784+
recordDecl->getASTContext().getCanonicalTagType(recordDecl),
785785
fInterpreter,
786786
fNormCtxt);
787787
auto msg = "Class or struct %s was selected but its dictionary cannot be generated: "
@@ -817,7 +817,7 @@ void RScanner::AddDelayedAnnotatedRecordDecls()
817817
for (auto &&info: fDelayedAnnotatedRecordDecls) {
818818
const clang::Type *thisType = info.fSelected->GetRequestedType();
819819
if (!thisType)
820-
thisType = info.fDecl->getTypeForDecl();
820+
thisType = info.fDecl->getASTContext().getCanonicalTagType(info.fDecl)->getTypePtr();
821821
const clang::CXXRecordDecl *recordDecl = info.fDecl;
822822
auto nameTypeForIO = ROOT::TMetaUtils::GetNameTypeForIO(clang::QualType(thisType, 0), fInterpreter, fNormCtxt);
823823
auto typeForIO = nameTypeForIO.second;

0 commit comments

Comments
 (0)