OSDN Git Service

* toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Jul 2004 22:42:45 +0000 (22:42 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Jul 2004 22:42:45 +0000 (22:42 +0000)
(warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.

cp:
* decl.c (check_tag_decl): Name redeclared type in diagnostic.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84174 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/toplev.h

index 5ae46ce..68ae8ed 100644 (file)
@@ -1,3 +1,8 @@
+2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
+       (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.
+
 2004-07-06  Richard Henderson  <rth@redhat.com>
 
        * config/i386/i386.c (legitimize_pic_address): Make static.
index f698270..bde9ccf 100644 (file)
@@ -1,3 +1,7 @@
+2004-07-06  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * decl.c (check_tag_decl): Name redeclared type in diagnostic.
+
 2004-07-06  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
 
        PR c++/3671
index 2e4e1af..5f3b901 100644 (file)
@@ -3424,7 +3424,7 @@ check_tag_decl (cp_decl_specifier_seq *declspecs)
   else if (declspecs->redefined_builtin_type)
     {
       if (!in_system_header)
-       pedwarn ("redeclaration of C++ built-in type",
+       pedwarn ("redeclaration of C++ built-in type %qT",
                 declspecs->redefined_builtin_type);
       return NULL_TREE;
     }
index 1940252..6f6cad3 100644 (file)
@@ -45,23 +45,32 @@ extern void _fatal_insn (const char *, rtx, const char *, int, const char *)
    style, use the generic one.  */
 #ifndef GCC_DIAG_STYLE
 #define GCC_DIAG_STYLE __gcc_diag__
+#define NO_FRONT_END_DIAG
 #endif
 /* None of these functions are suitable for ATTRIBUTE_PRINTF, because
    each language front end can extend them with its own set of format
-   specifiers.  We must use custom format checks.  */
+   specifiers.  We must use custom format checks.  Note that at present
+   the front-end %D specifier is used in non-front-end code with some
+   functions, and those formats can only be checked in front-end code.  */
 #if GCC_VERSION >= 3005
 #define ATTRIBUTE_GCC_DIAG(m, n) __attribute__ ((__format__ (GCC_DIAG_STYLE, m, n))) ATTRIBUTE_NONNULL(m)
+#ifdef NO_FRONT_END_DIAG
+#define ATTRIBUTE_GCC_FE_DIAG(m, n) ATTRIBUTE_NONNULL(m)
+#else
+#define ATTRIBUTE_GCC_FE_DIAG(m, n) __attribute__ ((__format__ (GCC_DIAG_STYLE, m, n))) ATTRIBUTE_NONNULL(m)
+#endif
 #else
 #define ATTRIBUTE_GCC_DIAG(m, n) ATTRIBUTE_NONNULL(m)
+#define ATTRIBUTE_GCC_FE_DIAG(m, n) ATTRIBUTE_NONNULL(m)
 #endif
 extern void internal_error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2)
      ATTRIBUTE_NORETURN;
-extern void warning (const char *, ...);
-extern void error (const char *, ...);
+extern void warning (const char *, ...) ATTRIBUTE_GCC_FE_DIAG(1,2);
+extern void error (const char *, ...) ATTRIBUTE_GCC_FE_DIAG(1,2);
 extern void fatal_error (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2)
      ATTRIBUTE_NORETURN;
-extern void pedwarn (const char *, ...);
-extern void sorry (const char *, ...);
+extern void pedwarn (const char *, ...) ATTRIBUTE_GCC_FE_DIAG(1,2);
+extern void sorry (const char *, ...) ATTRIBUTE_GCC_FE_DIAG(1,2);
 extern void inform (const char *, ...) ATTRIBUTE_GCC_DIAG(1,2);
 
 extern void rest_of_decl_compilation (tree, const char *, int, int);