- specifiers. */
-extern void warning PARAMS ((const char *, ...));
-extern void error PARAMS ((const char *, ...));
-extern void fatal_error PARAMS ((const char *, ...))
- ATTRIBUTE_NORETURN;
-extern void pedwarn PARAMS ((const char *, ...));
-extern void pedwarn_with_file_and_line PARAMS ((const char *, int,
- const char *, ...));
-extern void warning_with_file_and_line PARAMS ((const char *, int,
- const char *, ...));
-extern void error_with_file_and_line PARAMS ((const char *, int,
- const char *, ...));
-extern void sorry PARAMS ((const char *, ...));
-extern void report_error_function PARAMS ((const char *));
-
-extern void rest_of_decl_compilation PARAMS ((union tree_node *,
- const char *, int, int));
-extern void rest_of_type_compilation PARAMS ((union tree_node *, int));
-extern void rest_of_compilation PARAMS ((union tree_node *));
-
-extern void pedwarn_with_decl PARAMS ((union tree_node *,
- const char *, ...));
-extern void warning_with_decl PARAMS ((union tree_node *,
- const char *, ...));
-extern void error_with_decl PARAMS ((union tree_node *,
- const char *, ...));
-
-extern void announce_function PARAMS ((union tree_node *));
-
-extern void error_for_asm PARAMS ((struct rtx_def *,
- const char *, ...));
-extern void warning_for_asm PARAMS ((struct rtx_def *,
- const char *, ...));
-extern void warn_deprecated_use PARAMS ((union tree_node *));
+ 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 *, ...) 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 *, ...) 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, int, int);
+extern void rest_of_type_compilation (tree, int);
+extern void rest_of_compilation (void);
+extern void tree_rest_of_compilation (tree);
+extern void init_tree_optimization_passes (void);
+extern void finish_optimization_passes (void);
+extern bool enable_rtl_dump_file (int);
+
+extern void announce_function (tree);
+
+extern void error_for_asm (rtx, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
+extern void warning_for_asm (rtx, const char *, ...) ATTRIBUTE_GCC_DIAG(2,3);
+extern void warn_deprecated_use (tree);