[LLVMbugs] [Bug 20739] New: explicitly instantiating an overloaded template function instantiates the wrong function

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sat Aug 23 18:37:52 PDT 2014


http://llvm.org/bugs/show_bug.cgi?id=20739

            Bug ID: 20739
           Summary: explicitly instantiating an overloaded template
                    function instantiates the wrong function
           Product: clang
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
          Assignee: unassignedclangbugs at nondot.org
          Reporter: ryan.burn at gmail.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 12932
  --> http://llvm.org/bugs/attachment.cgi?id=12932&action=edit
simplified code that reproduces the problem

Two "get" functions are defined. 

(1) <return-type> get<int, T1, T2>(<cons type>)  lines 71-80
(2) <return-type> get<int, T1, T2>(<pair type>)  lines 123-130

when explicitly instantiating via

template <return-type> get<int, T1, T2>(<const type>) lines 156-158

code gets incorrectly generated for version (2) instead of version (1),
generating a compiler error.

see attached file.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140824/c0368b14/attachment.html>


More information about the llvm-bugs mailing list