Index: clangd/index/SymbolCollector.cpp =================================================================== --- clangd/index/SymbolCollector.cpp +++ clangd/index/SymbolCollector.cpp @@ -369,6 +369,10 @@ if (!ID) return true; + // ObjCPropertyDecl may have an OrigD of ObjCPropertyImplDecl, which is + // not a NamedDecl. + if (!isa(ASTNode.OrigD)) + return true; const NamedDecl &OriginalDecl = *cast(ASTNode.OrigD); const Symbol *BasicSymbol = Symbols.find(*ID); if (!BasicSymbol) // Regardless of role, ND is the canonical declaration.