[LLVMbugs] [Bug 20031] New: clang failed to report ambiguous member function calls with the same name but different signature that are inherited from multiple bases

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Jun 13 12:20:39 PDT 2014


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

            Bug ID: 20031
           Summary: clang failed to report ambiguous member function calls
                    with the same name but different signature that are
                    inherited from multiple bases
           Product: clang
           Version: 3.4
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++11
          Assignee: unassignedclangbugs at nondot.org
          Reporter: hui.li at me.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Clang compiles the following code fine, which is incorrect because operator()
should be ambiguous (as gcc4.8 is able to report).

#include <type_traits>
#include <functional>

template < typename... Sig >
struct function
 : std::function<Sig>...
{
   template < typename F >
   explicit function(const F& f)
    : std::function<Sig>(f)...
   {}
};

struct func
{
   template < typename... Args >
   void operator()(Args&&...) const
   {}
};

int main()
{
   func f0;
   function<void(int),void(double)> f1(f0);
   f1(0);
}

-- 
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/20140613/313826a7/attachment.html>


More information about the llvm-bugs mailing list