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

Bug 319498

Summary: Template function resolution problem with index
Product: [Tools] CDT Reporter: Sergey Prigogin <eclipse.sprigogin>
Component: cdt-parserAssignee: Markus Schorn <mschorn.eclipse>
Status: RESOLVED FIXED QA Contact: Mike Kucera <mikekucera>
Severity: normal    
Priority: P3 CC: yevshif
Version: 7.0   
Target Milestone: 7.0.1   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
fix mschorn.eclipse: iplog-

Description Sergey Prigogin CLA 2010-07-11 23:19:30 EDT
CDT HEAD:

test.h
------
template <class U>
void f(const U& u, const typename U::t& v) {
}

template <class U>
void f(U& u, const typename U::t& v) {
}

test.cc
-------
#include "test.h"

template <typename T> class A {
  typedef T t;
};

void test() {
  const A<int>& a;
  int b;
  f(a, b); // problem on f
}

The problem goes away when the contents of test.h are copied to test.cc.
Comment 1 Markus Schorn CLA 2010-07-19 11:18:29 EDT
Created attachment 174632 [details]
fix

The patch fixes the issue, I need to run a few tests before commiting it.
Comment 2 Markus Schorn CLA 2010-07-20 05:19:52 EDT
Fixed in 7.0.1 and 8.0 > 20100720.
Comment 3 CDT Genie CLA 2010-07-20 05:23:03 EDT
*** cdt cvs genie on behalf of mschorn ***
Bug 319498: Comparison of unknown bindings.

[*] IndexCPPTemplateResolutionTest.java 1.65.2.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java?root=Tools_Project&r1=1.65&r2=1.65.2.1

[*] CPPVisitor.java 1.122.2.3 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.122.2.2&r2=1.122.2.3

[*] PDOMCPPUnknownClassType.java 1.14.4.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUnknownClassType.java?root=Tools_Project&r1=1.14&r2=1.14.4.1
[*] PDOMCPPUnknownClassInstance.java 1.15.4.1 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUnknownClassInstance.java?root=Tools_Project&r1=1.15&r2=1.15.4.1

[*] IndexCPPTemplateResolutionTest.java 1.67 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java?root=Tools_Project&r1=1.66&r2=1.67

[*] CPPVisitor.java 1.125 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.124&r2=1.125

[*] PDOMCPPUnknownClassType.java 1.15 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUnknownClassType.java?root=Tools_Project&r1=1.14&r2=1.15
[*] PDOMCPPUnknownClassInstance.java 1.16 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPUnknownClassInstance.java?root=Tools_Project&r1=1.15&r2=1.16