* gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
* java-tree.h (parse_error_context): Move...
* parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
* parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
* verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
From-SVN: r100795
+2005-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * gjavah.c (error): Add ATTRIBUTE_PRINTF_1.
+ * java-tree.h (parse_error_context): Move...
+ * parse.h (parse_error_context): ... here, add ATTRIBUTE_GCC_DIAG.
+ * parse.y (parse_warning_context): Add ATTRIBUTE_GCC_DIAG.
+ * verify-impl.c (debug_print): Add ATTRIBUTE_PRINTF_1.
+
2005-06-08 Roger Sayle <roger@eyesopen.com>
* typeck.c (convert): Only clear TREE_OVERFLOW on INTEGER_CST nodes.
decode_signature_piece (FILE *, const unsigned char *,
const unsigned char *, int *);
static void print_class_decls (FILE *, JCF *, int);
-static void error (const char *gmsgid, ...);
+static void error (const char *gmsgid, ...) ATTRIBUTE_PRINTF_1;
static void usage (void) ATTRIBUTE_NORETURN;
static void help (void) ATTRIBUTE_NORETURN;
static void version (void) ATTRIBUTE_NORETURN;
extern void lang_init_source (int);
extern void write_classfile (tree);
extern char *print_int_node (tree);
-extern void parse_error_context (tree cl, const char *gmsgid, ...);
extern void finish_class (void);
extern void java_layout_seen_class_methods (void);
extern void check_for_initialization (tree, tree);
}
#endif
+#ifdef ATTRIBUTE_GCC_DIAG
+extern void parse_error_context (tree cl, const char *gmsgid, ...) ATTRIBUTE_GCC_DIAG(2,3);
+#endif
+
#define ABSTRACT_CHECK(FLAG, V, CL, S) \
if ((FLAG) & (V)) \
parse_error_context ((CL), "%s method can't be abstract", (S));
static tree method_header (int, tree, tree, tree);
static void fix_method_argument_names (tree ,tree);
static tree method_declarator (tree, tree);
-static void parse_warning_context (tree cl, const char *gmsgid, ...);
+static void parse_warning_context (tree cl, const char *gmsgid, ...) ATTRIBUTE_GCC_DIAG(2,3);
#ifdef USE_MAPPED_LOCATION
static void issue_warning_error_from_context
(source_location, const char *gmsgid, va_list *);
verification. */
#define INVALID_STATE ((state *) -1)
-#ifdef VERIFY_DEBUG
-static void
-debug_print (const char *fmt, ...)
+static void ATTRIBUTE_PRINTF_1
+debug_print (const char *fmt ATTRIBUTE_UNUSED, ...)
{
+#ifdef VERIFY_DEBUG
va_list ap;
va_start (ap, fmt);
vfprintf (stderr, fmt, ap);
va_end (ap);
-}
-#else
-static void
-debug_print (const char *fmt ATTRIBUTE_UNUSED, ...)
-{
-}
#endif /* VERIFY_DEBUG */
+}
/* This started as a fairly ordinary verifier, and for the most part
it remains so. It works in the obvious way, by modeling the effect