Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java9
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)) {

Back to the top