https://llvm.org/bugs/show_bug.cgi?id=24242

            Bug ID: 24242
           Summary: Misleading diagnostics when template being specialized
                    is ambiguous
           Product: clang
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
          Assignee: unassignedclangb...@nondot.org
          Reporter: rs2...@gmail.com
                CC: dgre...@apple.com, llvmbugs@cs.uiuc.edu
    Classification: Unclassified

Consider:

namespace A {
    inline namespace B { template<class> struct C; }
    template<class> struct C;
    template<> struct C<int>{};
}

Name lookup for `C` is obviously ambiguous, but the resulting error message
doesn't mention that at all:

prog.cc:4:23: error: explicit specialization of non-template struct 'C'
    template<> struct C<int>{};
                      ^~~~~~
prog.cc:4:23: error: redefinition of 'C' as different kind of symbol
prog.cc:3:28: note: previous definition is here
    template<class> struct C;
                           ^
2 errors generated.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
LLVMbugs@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to