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