diff options
Diffstat (limited to 'core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java')
-rw-r--r-- | core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java index 28da07be9de..ee277b06bd3 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java @@ -2224,8 +2224,15 @@ public class CPPSemantics { } // Select among those bindings that have been created without problems. - if (temp instanceof IProblemBinding) + if (temp instanceof IProblemBinding) { + // If this ProblemBinding was the only binding, return it rather than + // creating a new ProblemBinding below. This way the caller potentially + // gets a more specific error than SEMANTIC_NAME_NOT_FOUND. + if (items.length == 1) { + return temp; + } continue; + } if (!declaredBefore && !(temp instanceof ICPPMember) && !(temp instanceof IType) && !(temp instanceof IEnumerator)) { |