aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2003-07-04 01:55:50 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2003-07-04 01:55:50 +0000
commit5f1989e65d23624efdbf26bde56f375e3caa6a22 (patch)
treed40d3df53a09947e306cecdd4c52164ae5ff60fc /gcc/cp
parent54c378f0438b6a1d718ef626389fff2ca91a0f9f (diff)
downloadgcc-5f1989e65d23624efdbf26bde56f375e3caa6a22.zip
gcc-5f1989e65d23624efdbf26bde56f375e3caa6a22.tar.gz
gcc-5f1989e65d23624efdbf26bde56f375e3caa6a22.tar.bz2
c-aux-info.c: Include toplev.h after c-tree.h.
gcc: * c-aux-info.c: Include toplev.h after c-tree.h. * c-common.c: Likewise. (GCC_DIAG_STYLE): Undef. * c-semantics.c (GCC_DIAG_STYLE): Define. * c-tree.h (GCC_DIAG_STYLE): Likewise. * diagnostic.h (inform): Move prototype to toplev.h. * jump.c: Include diagnostic.h before toplev.h. * toplev.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG): Define. (warning, error, fatal_error, pedwarn, sorry, inform, error_for_asm, warning_for_asm): Mark with ATTRIBUTE_GCC_CXXDIAG. cp: * cp-tree.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_CXXDIAG): Define. (cp_error_at, cp_warning_at, cp_pedwarn_at): Mark with ATTRIBUTE_GCC_CXXDIAG. From-SVN: r68910
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/cp-tree.h18
2 files changed, 20 insertions, 4 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 1e75a34..ba6abbe 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2003-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * cp-tree.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_CXXDIAG): Define.
+ (cp_error_at, cp_warning_at, cp_pedwarn_at): Mark with
+ ATTRIBUTE_GCC_CXXDIAG.
+
2003-07-03 Mark Mitchell <mark@codesourcery.com>
* call.c (build_scoped_method_call): Use convert_to_void.
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 8612b8c..1620015 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -3802,10 +3802,6 @@ extern tree set_guard (tree);
extern void prepare_assemble_variable (tree);
extern void lower_function (tree);
-extern void cp_error_at (const char *msgid, ...);
-extern void cp_warning_at (const char *msgid, ...);
-extern void cp_pedwarn_at (const char *msgid, ...);
-
/* XXX Not i18n clean. */
#define cp_deprecated(STR) \
do { \
@@ -4344,4 +4340,18 @@ extern bool cp_dump_tree (void *, tree);
/* -- end of C++ */
+/* In order for the format checking to accept the C++ frontend
+ diagnostic framework extensions, you must include this file before
+ toplev.h, not after. */
+#define GCC_DIAG_STYLE __gcc_cxxdiag__
+#if GCC_VERSION >= 3004
+#define ATTRIBUTE_GCC_CXXDIAG(m, n) __attribute__ ((__format__ (GCC_DIAG_STYLE, m, n))) ATTRIBUTE_NONNULL(m)
+#else
+#define ATTRIBUTE_GCC_CXXDIAG(m, n) ATTRIBUTE_NONNULL(m)
+#endif
+
+extern void cp_error_at (const char *, ...) ATTRIBUTE_GCC_CXXDIAG(1, 2);
+extern void cp_warning_at (const char *, ...) ATTRIBUTE_GCC_CXXDIAG(1, 2);
+extern void cp_pedwarn_at (const char *, ...) ATTRIBUTE_GCC_CXXDIAG(1, 2);
+
#endif /* ! GCC_CP_TREE_H */