C++ dir warning patch part 2/5
Kaveh R. Ghazi
ghazi@caip.rutgers.edu
Thu Mar 25 10:17:00 GMT 1999
These patches mainly address warnings in the cp/ directory
exposed by using extra warning flags: -Wstrict-prototypes
-Wmissing-prototypes -Wmissing-declarations and -Wwrite-strings.
This is part 2/5, okay to install?
Thanks,
--Kaveh
Wed Mar 24 18:54:26 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* cp-tree.h (FORMAT_VBASE_NAME): Allow parameter `BUF' to be const.
(define_function, finish_builtin_type): Const-ify a char*.
(cp_error, cp_error_at, cp_warning, cp_warning_at, cp_pedwarn,
cp_pedwarn_at, cp_compiler_error, cp_sprintf): Add prototype args.
(file_name_nondirectory): Const-ify a char*.
(init_filename_times): Don't prototype.
(compiler_error): Prototype.
(yyerror, init_repo): Const-ify a char*.
(build_srcloc): Don't prototype.
(build_x_indirect_ref, build_indirect_ref, build_component_addr):
Const-ify a char*.
(warn_for_assignment): Don't prototype.
(convert_for_initialization, readonly_error, check_for_new_type,
GNU_xref_begin, GNU_xref_file, GNU_xref_ref, GNU_xref_call):
Const-ify a char*.
diff -rup orig/egcs-CVS19990323/gcc/cp/cp-tree.h egcs-CVS19990323/gcc/cp/cp-tree.h
--- orig/egcs-CVS19990323/gcc/cp/cp-tree.h Tue Mar 23 09:48:26 1999
+++ egcs-CVS19990323/gcc/cp/cp-tree.h Wed Mar 24 14:47:44 1999
@@ -2440,10 +2440,11 @@ extern int current_function_parms_stored
#endif /* !defined(NO_DOLLAR_IN_LABEL) || !defined(NO_DOT_IN_LABEL) */
/* Store the vbase pointer field name for type TYPE into pointer BUF. */
-#define FORMAT_VBASE_NAME(BUF,TYPE) do { \
- BUF = (char *) alloca (TYPE_ASSEMBLER_NAME_LENGTH (TYPE) \
+#define FORMAT_VBASE_NAME(BUF,TYPE) do { \
+ char *wbuf = (char *) alloca (TYPE_ASSEMBLER_NAME_LENGTH (TYPE) \
+ sizeof (VBASE_NAME) + 1); \
- sprintf (BUF, VBASE_NAME_FORMAT, TYPE_ASSEMBLER_NAME_STRING (TYPE)); \
+ sprintf (wbuf, VBASE_NAME_FORMAT, TYPE_ASSEMBLER_NAME_STRING (TYPE)); \
+ (BUF) = wbuf; \
} while (0)
/* Returns non-zero iff ID_NODE is an IDENTIFIER_NODE whose name is
@@ -2853,8 +2854,8 @@ extern tree auto_function PROTO((tree,
extern void init_decl_processing PROTO((void));
extern int init_type_desc PROTO((void));
extern tree define_function
- PROTO((char *, tree, enum built_in_function,
- void (*) (tree), char *));
+ PROTO((const char *, tree, enum built_in_function,
+ void (*) (tree), const char *));
extern tree check_tag_decl PROTO((tree));
extern void shadow_tag PROTO((tree));
extern tree groktypename PROTO((tree));
@@ -2932,7 +2933,8 @@ extern tree get_temp_name PROTO((tree,
extern tree get_temp_regvar PROTO((tree, tree));
extern void finish_anon_union PROTO((tree));
extern tree finish_table PROTO((tree, tree, tree, int));
-extern void finish_builtin_type PROTO((tree, char *, tree *, int, tree));
+extern void finish_builtin_type PROTO((tree, const char *,
+ tree *, int, tree));
extern tree coerce_new_type PROTO((tree));
extern tree coerce_delete_type PROTO((tree));
extern void comdat_linkage PROTO((tree));
@@ -2968,14 +2970,15 @@ extern tree handle_class_head PROTO((t
extern tree lookup_arg_dependent PROTO((tree, tree, tree));
/* in errfn.c */
-extern void cp_error ();
-extern void cp_error_at ();
-extern void cp_warning ();
-extern void cp_warning_at ();
-extern void cp_pedwarn ();
-extern void cp_pedwarn_at ();
-extern void cp_compiler_error ();
-extern void cp_sprintf ();
+/* The cp_* functions aren't suitable for ATTRIBUTE_PRINTF. */
+extern void cp_error PVPROTO((const char *, ...));
+extern void cp_error_at PVPROTO((const char *, ...));
+extern void cp_warning PVPROTO((const char *, ...));
+extern void cp_warning_at PVPROTO((const char *, ...));
+extern void cp_pedwarn PVPROTO((const char *, ...));
+extern void cp_pedwarn_at PVPROTO((const char *, ...));
+extern void cp_compiler_error PVPROTO((const char *, ...));
+extern void cp_sprintf PVPROTO((const char *, ...));
/* in error.c */
extern void init_error PROTO((void));
@@ -3045,7 +3048,7 @@ extern tree build_vec_delete PROTO((tr
/* in input.c */
/* in lex.c */
-extern char *file_name_nondirectory PROTO((char *));
+extern char *file_name_nondirectory PROTO((const char *));
extern tree make_pointer_declarator PROTO((tree, tree));
extern tree make_reference_declarator PROTO((tree, tree));
extern tree make_call_declarator PROTO((tree, tree, tree, tree));
@@ -3053,7 +3056,6 @@ extern void set_quals_and_spec PROTO((
extern char *operator_name_string PROTO((tree));
extern void lang_init PROTO((void));
extern void lang_finish PROTO((void));
-extern void init_filename_times PROTO((void));
#if 0
extern void reinit_lang_specific PROTO((void));
#endif
@@ -3085,8 +3087,9 @@ extern tree build_lang_field_decl PROTO
extern void copy_lang_decl PROTO((tree));
extern tree make_lang_type PROTO((enum tree_code));
extern void dump_time_statistics PROTO((void));
-/* extern void compiler_error PROTO((char *, HOST_WIDE_INT, HOST_WIDE_INT)); */
-extern void yyerror PROTO((char *));
+extern void compiler_error PVPROTO((const char *, ...))
+ ATTRIBUTE_PRINTF_1;
+extern void yyerror PROTO((const char *));
extern void clear_inline_text_obstack PROTO((void));
extern void maybe_snarf_defarg PROTO((void));
extern tree snarf_defarg PROTO((void));
@@ -3180,7 +3183,7 @@ extern int processing_template_parmlist;
/* in repo.c */
extern void repo_template_used PROTO((tree));
extern void repo_template_instantiated PROTO((tree, int));
-extern void init_repo PROTO((char*));
+extern void init_repo PROTO((const char *));
extern void finish_repo PROTO((void));
/* in rtti.c */
@@ -3376,7 +3379,6 @@ extern tree make_temp_vec PROTO((int))
extern tree build_ptr_wrapper PROTO((void *));
extern tree build_expr_ptr_wrapper PROTO((void *));
extern tree build_int_wrapper PROTO((int));
-extern tree build_srcloc PROTO((char *, int));
extern tree build_srcloc_here PROTO((void));
extern int varargs_function_p PROTO((tree));
extern int really_overloaded_fn PROTO((tree));
@@ -3433,8 +3435,8 @@ extern tree build_object_ref PROTO((tr
extern tree build_component_ref_1 PROTO((tree, tree, int));
extern tree build_component_ref PROTO((tree, tree, tree, int));
extern tree build_x_component_ref PROTO((tree, tree, tree, int));
-extern tree build_x_indirect_ref PROTO((tree, char *));
-extern tree build_indirect_ref PROTO((tree, char *));
+extern tree build_x_indirect_ref PROTO((tree, const char *));
+extern tree build_indirect_ref PROTO((tree, const char *));
extern tree build_array_ref PROTO((tree, tree));
extern tree build_x_function_call PROTO((tree, tree, tree));
extern tree get_member_function_from_ptrfunc PROTO((tree *, tree));
@@ -3445,7 +3447,7 @@ extern tree convert_arguments PROTO((t
extern tree build_x_binary_op PROTO((enum tree_code, tree, tree));
extern tree build_binary_op PROTO((enum tree_code, tree, tree, int));
extern tree build_binary_op_nodefault PROTO((enum tree_code, tree, tree, enum tree_code));
-extern tree build_component_addr PROTO((tree, tree, char *));
+extern tree build_component_addr PROTO((tree, tree, const char *));
extern tree build_x_unary_op PROTO((enum tree_code, tree));
extern tree build_unary_op PROTO((enum tree_code, tree, int));
extern tree unary_complex_lvalue PROTO((enum tree_code, tree));
@@ -3460,8 +3462,7 @@ extern tree build_const_cast PROTO((tr
extern tree build_c_cast PROTO((tree, tree));
extern tree build_x_modify_expr PROTO((tree, enum tree_code, tree));
extern tree build_modify_expr PROTO((tree, enum tree_code, tree));
-extern void warn_for_assignment PROTO((char *, char *, char *, tree, int, int));
-extern tree convert_for_initialization PROTO((tree, tree, tree, int, char *, tree, int));
+extern tree convert_for_initialization PROTO((tree, tree, tree, int, const char *, tree, int));
extern void c_expand_asm_operands PROTO((tree, tree, tree, tree, int, char *, int));
extern void c_expand_return PROTO((tree));
extern tree c_expand_start_case PROTO((tree));
@@ -3480,7 +3481,7 @@ extern tree pfn_from_ptrmemfunc
/* in typeck2.c */
extern tree error_not_base_type PROTO((tree, tree));
extern tree binfo_or_else PROTO((tree, tree));
-extern void readonly_error PROTO((tree, char *, int));
+extern void readonly_error PROTO((tree, const char *, int));
extern void abstract_virtuals_error PROTO((tree, tree));
extern void signature_error PROTO((tree, tree));
extern void incomplete_type_error PROTO((tree, tree));
@@ -3495,18 +3496,18 @@ extern tree build_m_component_ref PROTO
extern tree build_functional_cast PROTO((tree, tree));
extern char *enum_name_string PROTO((tree, tree));
extern void report_case_error PROTO((int, tree, tree, tree));
-extern void check_for_new_type PROTO((char *,flagged_type_tree));
+extern void check_for_new_type PROTO((const char *, flagged_type_tree));
extern tree initializer_constant_valid_p PROTO((tree, tree));
/* in xref.c */
-extern void GNU_xref_begin PROTO((char *));
+extern void GNU_xref_begin PROTO((const char *));
extern void GNU_xref_end PROTO((int));
-extern void GNU_xref_file PROTO((char *));
+extern void GNU_xref_file PROTO((const char *));
extern void GNU_xref_start_scope PROTO((HOST_WIDE_INT));
extern void GNU_xref_end_scope PROTO((HOST_WIDE_INT, HOST_WIDE_INT, int, int));
-extern void GNU_xref_ref PROTO((tree, char *));
+extern void GNU_xref_ref PROTO((tree, const char *));
extern void GNU_xref_decl PROTO((tree, tree));
-extern void GNU_xref_call PROTO((tree, char *));
+extern void GNU_xref_call PROTO((tree, const char *));
extern void GNU_xref_function PROTO((tree, tree));
extern void GNU_xref_assign PROTO((tree));
extern void GNU_xref_hier PROTO((tree, tree, int, int, int));
More information about the Gcc-patches
mailing list