Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 326492

Summary: [C++ semantics] Instantiating templates for overloaded function sets
Product: [Tools] CDT Reporter: Markus Schorn <mschorn.eclipse>
Component: cdt-parserAssignee: Markus Schorn <mschorn.eclipse>
Status: RESOLVED FIXED QA Contact: Mike Kucera <mikekucera>
Severity: normal    
Priority: P3    
Version: 8.0   
Target Milestone: 8.0   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
testcase + fix mschorn.eclipse: iplog-

Description Markus Schorn CLA 2010-09-29 04:24:18 EDT
If the argument for a function call is an overloaded function set, we fail to instantiate function templates. Here is an example:

template <typename T> void f(T (*)(int), char) {};
template <typename T> void f(int (*)(T), int) {};
template <typename T> void f(T, int);

int g(char) {return 1;};
void g(int) {};

void b() {
  f(g, '1');   // problem binding
  f(g, 1);     // problem binidng
}
Comment 1 Markus Schorn CLA 2010-09-29 08:53:20 EDT
Created attachment 179840 [details]
testcase + fix
Comment 2 Markus Schorn CLA 2010-09-29 08:53:53 EDT
Fixed in 8.0 > 20100929.
Comment 3 CDT Genie CLA 2010-09-29 09:23:04 EDT
*** cdt cvs genie on behalf of mschorn ***
Bug 326492: Overloaded function-sets in instantiation of function templates.

[*] CPPVisitor.java 1.133 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java?root=Tools_Project&r1=1.132&r2=1.133
[*] CPPTemplates.java 1.117 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java?root=Tools_Project&r1=1.116&r2=1.117
[*] TemplateArgumentDeduction.java 1.15 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/TemplateArgumentDeduction.java?root=Tools_Project&r1=1.14&r2=1.15
[*] CPPSemantics.java 1.185 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java?root=Tools_Project&r1=1.184&r2=1.185
[*] Conversions.java 1.67 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/Conversions.java?root=Tools_Project&r1=1.66&r2=1.67

[*] AST2TemplateTests.java 1.194 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java?root=Tools_Project&r1=1.193&r2=1.194
[*] AST2Tests.java 1.266 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2Tests.java?root=Tools_Project&r1=1.265&r2=1.266
[*] AST2BaseTest.java 1.78 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2BaseTest.java?root=Tools_Project&r1=1.77&r2=1.78