aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Index/IndexBody.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Index/IndexBody.cpp')
-rw-r--r--clang/lib/Index/IndexBody.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/clang/lib/Index/IndexBody.cpp b/clang/lib/Index/IndexBody.cpp
index 8b8235c..e5f1764 100644
--- a/clang/lib/Index/IndexBody.cpp
+++ b/clang/lib/Index/IndexBody.cpp
@@ -203,9 +203,12 @@ public:
bool VisitDesignatedInitExpr(DesignatedInitExpr *E) {
for (DesignatedInitExpr::Designator &D : llvm::reverse(E->designators())) {
- if (D.isFieldDesignator() && D.getField())
- return IndexCtx.handleReference(D.getField(), D.getFieldLoc(), Parent,
- ParentDC, SymbolRoleSet(), {}, E);
+ if (D.isFieldDesignator()) {
+ if (const FieldDecl *FD = D.getFieldDecl()) {
+ return IndexCtx.handleReference(FD, D.getFieldLoc(), Parent,
+ ParentDC, SymbolRoleSet(), {}, E);
+ }
+ }
}
return true;
}
@@ -417,10 +420,13 @@ public:
auto visitSyntacticDesignatedInitExpr = [&](DesignatedInitExpr *E) -> bool {
for (DesignatedInitExpr::Designator &D : llvm::reverse(E->designators())) {
- if (D.isFieldDesignator() && D.getField())
- return IndexCtx.handleReference(D.getField(), D.getFieldLoc(),
- Parent, ParentDC, SymbolRoleSet(),
- {}, E);
+ if (D.isFieldDesignator()) {
+ if (const FieldDecl *FD = D.getFieldDecl()) {
+ return IndexCtx.handleReference(FD, D.getFieldLoc(), Parent,
+ ParentDC, SymbolRoleSet(),
+ /*Relations=*/{}, E);
+ }
+ }
}
return true;
};