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/EvalID.java')
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalID.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalID.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalID.java
index 1a9b23ef992..3e4996d1847 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalID.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalID.java
@@ -206,10 +206,13 @@ public class EvalID extends CPPDependentEvaluation {
}
if (binding instanceof CPPDeferredFunction) {
- CPPDeferredFunction deferredFunction = (CPPDeferredFunction) binding;
- if (deferredFunction.getCandidates() != null) {
- CPPFunctionSet functionSet = new CPPFunctionSet(deferredFunction.getCandidates(), templateArgs, null);
+ ICPPFunction[] candidates = ((CPPDeferredFunction) binding).getCandidates();
+ if (candidates != null) {
+ CPPFunctionSet functionSet = new CPPFunctionSet(candidates, templateArgs, null);
return new EvalFunctionSet(functionSet, isAddressOf(expr), null, expr);
+ } else {
+ // Just store the name. ADL at the time of instantiation might come up with bindings.
+ return new EvalFunctionSet(name.getSimpleID(), isAddressOf(expr), expr);
}
}

Back to the top