diff options
author | Anders Carlsson <andersca@mac.com> | 2009-06-30 00:06:57 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-06-30 00:06:57 +0000 |
commit | 124f34c1501407cc8c8bdeff3abf65fbf25b922f (patch) | |
tree | 5830bb2a9be41315388a7b7d0afd1c7cf70b1d80 | |
parent | 651185bf47b70cfeab77aa16a71a0836ae6814f8 (diff) | |
download | bcm5719-llvm-124f34c1501407cc8c8bdeff3abf65fbf25b922f.tar.gz bcm5719-llvm-124f34c1501407cc8c8bdeff3abf65fbf25b922f.zip |
Make an error message more clear.
llvm-svn: 74481
-rw-r--r-- | clang/include/clang/Basic/DiagnosticSemaKinds.td | 2 | ||||
-rw-r--r-- | clang/lib/Sema/SemaType.cpp | 2 | ||||
-rw-r--r-- | clang/test/SemaCXX/member-pointer.cpp | 2 |
3 files changed, 4 insertions, 2 deletions
diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index 8d56b57c08c..652f7430f0c 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -1074,6 +1074,8 @@ def err_array_star_outside_prototype : Error< "star modifier used outside of function prototype">; def err_illegal_decl_pointer_to_reference : Error< "'%0' declared as a pointer to a reference">; +def err_illegal_decl_mempointer_to_reference : Error< + "'%0' declared as a member pointer to a reference">; def err_illegal_decl_mempointer_to_void : Error< "'%0' declared as a member pointer to void">; def err_illegal_decl_mempointer_in_nonclass : Error< diff --git a/clang/lib/Sema/SemaType.cpp b/clang/lib/Sema/SemaType.cpp index c0b4e9fbecb..7fa6d703c2a 100644 --- a/clang/lib/Sema/SemaType.cpp +++ b/clang/lib/Sema/SemaType.cpp @@ -697,7 +697,7 @@ QualType Sema::BuildMemberPointerType(QualType T, QualType Class, // C++ 8.3.3p3: A pointer to member shall not pointer to ... a member // with reference type, or "cv void." if (T->isReferenceType()) { - Diag(Loc, diag::err_illegal_decl_pointer_to_reference) + Diag(Loc, diag::err_illegal_decl_mempointer_to_reference) << (Entity? Entity.getAsString() : "type name"); return QualType(); } diff --git a/clang/test/SemaCXX/member-pointer.cpp b/clang/test/SemaCXX/member-pointer.cpp index d2df5eb317a..3b106d5576f 100644 --- a/clang/test/SemaCXX/member-pointer.cpp +++ b/clang/test/SemaCXX/member-pointer.cpp @@ -16,7 +16,7 @@ int B::*pbi; // expected-error {{expected a class or namespace}} \ // expected-error{{does not point into a class}} int C::*pci; // expected-error {{'pci' does not point into a class}} void A::*pdv; // expected-error {{'pdv' declared as a member pointer to void}} -int& A::*pdr; // expected-error {{'pdr' declared as a pointer to a reference}} +int& A::*pdr; // expected-error {{'pdr' declared as a member pointer to a reference}} void f() { // This requires tentative parsing. |