]> granicus.if.org Git - clang/commitdiff
Include pointee type information in the diagnostic for creating bad pointers or
authorJohn McCall <rjmccall@apple.com>
Fri, 30 Oct 2009 00:37:20 +0000 (00:37 +0000)
committerJohn McCall <rjmccall@apple.com>
Fri, 30 Oct 2009 00:37:20 +0000 (00:37 +0000)
arrays.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85550 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/DiagnosticSemaKinds.td
lib/Sema/SemaType.cpp

index c5e86e7761d0d1dfb37fbd908d0092249e5a5c47..1ce4d91a17c95aee5387cde5f3d72a90fad72816 100644 (file)
@@ -1330,17 +1330,17 @@ def err_flexible_array_init_nonempty : Error<
 def err_flexible_array_init_needs_braces : Error<
   "flexible array requires brace-enclosed initializer">;
 def err_illegal_decl_array_of_functions : Error<
-  "'%0' declared as array of functions">;
+  "'%0' declared as array of functions of type %1">;
 def err_illegal_decl_array_incomplete_type : Error<
   "array has incomplete element type %0">;
 def err_illegal_decl_array_of_references : Error<
-  "'%0' declared as array of references">;
+  "'%0' declared as array of references of type %1">;
 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">;
+  "'%0' declared as a pointer to a reference of type %1">;
 def err_illegal_decl_mempointer_to_reference : Error<
-  "'%0' declared as a member pointer to a reference">;
+  "'%0' declared as a member pointer to a reference of type %1">;
 def err_illegal_decl_mempointer_to_void : Error<
   "'%0' declared as a member pointer to void">;
 def err_illegal_decl_mempointer_in_nonclass : Error<
index c135f43209abcb0ff51597a341b179d44bbec624..d2652c9864660e299a48921574f8df06a0cfa89c 100644 (file)
@@ -472,7 +472,7 @@ QualType Sema::BuildPointerType(QualType T, unsigned Quals,
   if (T->isReferenceType()) {
     // C++ 8.3.2p4: There shall be no ... pointers to references ...
     Diag(Loc, diag::err_illegal_decl_pointer_to_reference)
-      << getPrintableNameForEntity(Entity);
+      << getPrintableNameForEntity(Entity) << T;
     return QualType();
   }
 
@@ -600,14 +600,14 @@ QualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM,
 
   if (T->isFunctionType()) {
     Diag(Loc, diag::err_illegal_decl_array_of_functions)
-      << getPrintableNameForEntity(Entity);
+      << getPrintableNameForEntity(Entity) << T;
     return QualType();
   }
 
   // C++ 8.3.2p4: There shall be no ... arrays of references ...
   if (T->isReferenceType()) {
     Diag(Loc, diag::err_illegal_decl_array_of_references)
-      << getPrintableNameForEntity(Entity);
+      << getPrintableNameForEntity(Entity) << T;
     return QualType();
   }
 
@@ -811,7 +811,7 @@ QualType Sema::BuildMemberPointerType(QualType T, QualType Class,
   //   with reference type, or "cv void."
   if (T->isReferenceType()) {
     Diag(Loc, diag::err_illegal_decl_mempointer_to_reference)
-      << (Entity? Entity.getAsString() : "type name");
+      << (Entity? Entity.getAsString() : "type name") << T;
     return QualType();
   }