diff --git a/src/indexer.cc b/src/indexer.cc index 662579847..426c2def3 100644 --- a/src/indexer.cc +++ b/src/indexer.cc @@ -357,7 +357,7 @@ const Decl *getAdjustedDecl(const Decl *d) { while (d) { if (auto *r = dyn_cast(d)) { if (auto *s = dyn_cast(r)) { - if (!s->getTypeAsWritten()) { + if (!s->isExplicitSpecialization()) { llvm::PointerUnion result = s->getSpecializedTemplateOrPartial(); @@ -533,7 +533,8 @@ class IndexDataConsumer : public index::IndexDataConsumer { name.replace(i, short_name.size(), qualified); def.short_name_offset = i + qualified.size() - short_name.size(); } - def.short_name_size = short_name.size(); + // name may be empty while short_name is not. + def.short_name_size = name.empty() ? 0 : short_name.size(); for (int paren = 0; i; i--) { // Skip parentheses in "(anon struct)::name" if (name[i - 1] == ')')