toplev.h (NO_FRONT_END_DIAG, [...]): Define.
authorJoseph Myers <jsm@polyomino.org.uk>
Tue, 6 Jul 2004 22:42:45 +0000 (23:42 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Tue, 6 Jul 2004 22:42:45 +0000 (23:42 +0100)
* toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define.
(warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG.

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

From-SVN: r84174

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

index 5ae46ce891f2ccfeaf778c6e387e9433d6a10b25..68ae8edabf6b9b86610d7d089d341a1fb994a6ab 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 f6982704c2e60654d4f564039cb0ea87211298aa..bde9ccf81e5a2879a48466542edc2cfe14f08268 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 2e4e1afd46bdabb0b4bd8a7d74fb786afd60028b..5f3b901a0086d5e90903909d8e7f6075de676c86 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 19402520619ee7a20d9cda9563a6c7e6ca3380c5..6f6cad32a7c464db4258ace69932b7cad6aaf230 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);