[LLVMbugs] [Bug 10053] New: [QoI] diagnostic in case of two-stage name lookup-related errors could be better
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Mon May 30 15:14:56 PDT 2011
http://llvm.org/bugs/show_bug.cgi?id=10053
Summary: [QoI] diagnostic in case of two-stage name
lookup-related errors could be better
Product: clang
Version: unspecified
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P
Component: C++
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: richard-llvm at metafoo.co.uk
CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com
A recurring problem when people try to switch from g++ to clang is errors due
to two-stage name lookup:
http://clang.llvm.org/compatibility.html#dep_lookup
It would be great if we could produce awesome diagnostics for such cases, by
repeating the unqualified (non-ADL) name lookup and checking whether any
newly-found functions are viable:
my_file.cpp:2:10: error: use of undeclared identifier 'Multiply'
return Multiply(x, x);
^
my_file.cpp:10:3: note: in instantiation of function template specialization
'Squared<int>' requested here
Squared(5);
^
my_file.cpp:5:5: note: viable function not candidate: declared after template
was defined, and not in an associated namespace
int Multiply(int x, int y) {
^
Further, this new note should probably suppress the existing 'candidate
function not viable' notes, since we can be confident that this newly-declared
function is the one the user meant to call. That would trim this huge
diagnostic down to just one error and three useful notes:
http://paste.kde.org/76543/
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list