diff options
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.java | 10 |
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); |