Skip to content

Commit 467db27

Browse files
committed
Adapt llvmorg-22-init-3166-g91cdd35008e9: getOriginalDecl
1 parent c9e6ff7 commit 467db27

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

src/indexer.cc

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,18 +334,27 @@ const Decl *getTypeDecl(QualType t, bool *specialization = nullptr) {
334334
break;
335335
case Type::Record:
336336
case Type::Enum:
337+
#if LLVM_VERSION_MAJOR >= 22 // llvmorg-22-init-3166-g91cdd35008e9
338+
d = cast<TagType>(tp)->getOriginalDecl();
339+
#else
337340
d = cast<TagType>(tp)->getDecl();
341+
#endif
338342
break;
339343
case Type::TemplateTypeParm:
340344
d = cast<TemplateTypeParmType>(tp)->getDecl();
341345
break;
342346
case Type::TemplateSpecialization:
343347
if (specialization)
344348
*specialization = true;
345-
if (const RecordType *record = tp->getAs<RecordType>())
349+
if (const RecordType *record = tp->getAs<RecordType>()) {
350+
#if LLVM_VERSION_MAJOR >= 22 // llvmorg-22-init-3166-g91cdd35008e9
351+
d = record->getOriginalDecl();
352+
#else
346353
d = record->getDecl();
347-
else
354+
#endif
355+
} else {
348356
d = cast<TemplateSpecializationType>(tp)->getTemplateName().getAsTemplateDecl();
357+
}
349358
break;
350359

351360
case Type::Auto:
@@ -356,14 +365,20 @@ const Decl *getTypeDecl(QualType t, bool *specialization = nullptr) {
356365
break;
357366

358367
case Type::InjectedClassName:
368+
#if LLVM_VERSION_MAJOR >= 22 // llvmorg-22-init-3166-g91cdd35008e9
369+
d = cast<InjectedClassNameType>(tp)->getOriginalDecl();
370+
#else
359371
d = cast<InjectedClassNameType>(tp)->getDecl();
372+
#endif
360373
break;
361374

362375
// FIXME: Template type parameters!
363376

377+
#if LLVM_VERSION_MAJOR < 22 // llvmorg-22-init-3166-g91cdd35008e9
364378
case Type::Elaborated:
365379
tp = cast<ElaboratedType>(tp)->getNamedType().getTypePtrOrNull();
366380
goto try_again;
381+
#endif
367382

368383
default:
369384
break;
@@ -412,7 +427,11 @@ bool validateRecord(const RecordDecl *rd) {
412427
if (fqt->isIncompleteType() || fqt->isDependentType())
413428
return false;
414429
if (const RecordType *childType = i->getType()->getAs<RecordType>())
430+
#if LLVM_VERSION_MAJOR >= 22 // llvmorg-22-init-3166-g91cdd35008e9
431+
if (const RecordDecl *child = childType->getOriginalDecl())
432+
#else
415433
if (const RecordDecl *child = childType->getDecl())
434+
#endif
416435
if (!validateRecord(child))
417436
return false;
418437
}
@@ -686,7 +705,11 @@ class IndexDataConsumer : public index::IndexDataConsumer {
686705
if (fd->getIdentifier())
687706
type.def.vars.emplace_back(getUsr(fd), offset1);
688707
else if (const auto *rt1 = fd->getType()->getAs<RecordType>()) {
708+
#if LLVM_VERSION_MAJOR >= 22 // llvmorg-22-init-3166-g91cdd35008e9
709+
if (const RecordDecl *rd1 = rt1->getOriginalDecl())
710+
#else
689711
if (const RecordDecl *rd1 = rt1->getDecl())
712+
#endif
690713
if (seen.insert(rd1).second)
691714
stack.push_back({rd1, offset1});
692715
}

0 commit comments

Comments
 (0)