Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCLinkage.java')
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCLinkage.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCLinkage.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCLinkage.java
index e5695a6853c..5d9da173860 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCLinkage.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/c/PDOMCLinkage.java
@@ -128,8 +128,16 @@ class PDOMCLinkage extends PDOMLinkage implements IIndexCBindingConstants {
PDOMNode insertIntoIndex= null;
if (binding instanceof IField) { // must be before IVariable
- if (parent instanceof IPDOMMemberOwner)
+ if (parent instanceof IPDOMMemberOwner) {
pdomBinding = new PDOMCField(this, (IPDOMMemberOwner)parent, (IField) binding);
+ // If the field is inside an anonymous struct or union, add it to the parent node as well.
+ if (parent instanceof ICompositeType && ((ICompositeType) parent).isAnonymous()) {
+ insertIntoIndex = parent.getParentNode();
+ if (insertIntoIndex == null) {
+ insertIntoIndex = this;
+ }
+ }
+ }
} else if (binding instanceof IVariable) {
IVariable var= (IVariable) binding;
pdomBinding = new PDOMCVariable(this, parent, var);

Back to the top