Commit Graph

566 Commits

Author SHA1 Message Date
Zack Weinberg
4dd7201eac c-common.c, [...]: Remove all references to obstack functions obsoleted by GC...
* c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
	c-typeck.c, objc/objc-act.c: Remove all references to obstack
	functions obsoleted by GC, such as push_obstacks_nochange,
	end_temporary_allocation, savealloc, saveable_tree_cons, etc.
	and code which existed only to decide whether or not to call
	them.  Remove now-unused NESTED argument from start_function;
	all callers changed.  Do not change behavior based on ggc_p.
	The use of the ixp_obstack in c-iterate.c and the util_obstack
	in objc/objc-act.c remain; these are not obsoleted by garbage
	collection.
	* c-tree.h: Update prototype for start_function.

	* c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.

From-SVN: r31611
2000-01-25 17:13:14 +00:00
Kaveh R. Ghazi
6e090c767a c-common.c: PROTO -> PARAMS.
* c-common.c: PROTO -> PARAMS.
        * c-common.h: Likewise.
        * c-decl.c: Likewise.
        * c-iterate.c: Likewise.
        * c-lang.c: Likewise.
        * c-lex.c: Likewise.
        * c-lex.h: Likewise.
        * c-parse.in: Likewise.
        * c-pragma.c: Likewise.
        * c-pragma.h: Likewise.
        * c-tree.h: Likewise.
        * c-typeck.c: Likewise.
        * objc/objc-act.c: Likewise.
        * objc/objc-act.h: Likewise.

From-SVN: r31362
2000-01-12 22:47:13 +00:00
Zack Weinberg
cb3ca04ee1 c-decl.c (finish_enum): Simplify code to determine minimum and maximum values of the enum...
2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>

	* c-decl.c (finish_enum): Simplify code to determine minimum and
	maximum values of the enum, and calculate the type.  Remove check
	for FUNCTION_DECLs in the values list, which cannot happen.  Replace
	the DECL_INITIAL of each enumeration constant with a copy converted
	to the enumeration type.  When updating variant types, don't bother
	updating the type itself.

	* c-typeck.c (build_binary_op): Simplify conditional expressions
	when weeding out spurious signed-unsigned warnings.  Add new
	spurious warning category: if the unsigned quantity is an enum
	and its maximum value fits in signed_type(result_type).  Update
	commentary.
	(build_conditional_expr): Warn here if one alternative is signed
	and the other is unsigned.

From-SVN: r31244
2000-01-05 19:26:23 +00:00
Geoff Keating
a157febd0c c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
* c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
(init_attributes): Add A_NO_LIMIT_STACK.
(decl_attributes): Handle A_NO_LIMIT_STACK.
* c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
* explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
Handle stack bounds checking.
* flags.h (flag_stack_check): Use the word 'probe' rather than
'check', because the flag doesn't actually cause any checking to
be done.
* function.c (expand_function_start): Set
current_function_limit_stack.
* function.h (struct function): Add limit_stack.
(current_function_limit_stack): Define.
* invoke.texi (Code Gen Options): Document new options.
* rtl.h: Declare stack_limit_rtx.
* toplev.c (stack_limit_rtx): New variable.
(decode_f_option): Handle new options -fstack-limit-register=REG,
-fstack-limit-symbol=IDENT, -fno-stack-limit.
(main): Add stack_limit_rtx as GC root.
* tree.h (DECL_NO_LIMIT_STACK): New macro.
(struct tree_decl): New member no_limit_stack.

* config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
stack_limit_rtx.
* config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
(conditional_trap+1): Get new mnemonic correct.
(conditional_trap+2): New pattern for DImode traps.

* config/m68k/m68k.c (output_function_prologue): Handle
stack_limit_rtx.
* config/m68k/m68k.md (trap): New insn.
(conditional_trap): New insn.
* md.texi (Standard Names): Document `trap' and
`conditional_trap'.
* optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
so a cc0 setter doesn't get emitted at some random place in the
function.

* config/i960/i960.md (trap): New insn.
(conditional_trap): New expander.
(conditional_trap+1, conditional_trap+2): New insns for signed
and unsigned cases.
* config/i960/i960.c (i960_function_prologue): Use
STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.

Co-Authored-By: Greg McGary <gkm@gnu.org>

From-SVN: r30771
1999-12-04 03:00:04 +00:00
Kaveh R. Ghazi
913d08334a c-common.c (check_format_info): Don't call a variadic function with a non-literal format string.
* c-common.c (check_format_info): Don't call a variadic function
	with a non-literal format string.

	* c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.

	* c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
	pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
	Likewise.

	* cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
	Likewise.

	* collect2.c (collect_wait): Likewise.

	* dbxout.c (dbxout_type): Likewise.

	* gcc.c (do_spec_1): Likewise.

	* genemit.c (gen_insn, gen_expand): Likewise.

	* genrecog.c (write_switch, write_subroutine): Likewise.

	* mips-tfile.c (catch_signal, botch): Likewise.

	* print-rtl.c (print_rtx): Likewise.

	* toplev.c (default_print_error_function, report_error_function,
	_fatal_insn): Likewise.

From-SVN: r30666
1999-11-25 16:58:32 +00:00
Richard Henderson
efd67b425a * c-decl.c (duplicate_decls): Copy DECL_MODE too.
From-SVN: r30377
1999-11-03 10:11:23 -08:00
Mark Mitchell
2af0ac2840 tree.h (BLOCK_TYPE_TAGS): Remove.
* tree.h (BLOCK_TYPE_TAGS): Remove.
	(BLOCK_END_NOTE): Likewise.
	(BLOCK_LIVE_RANGE_FLAG): Likewise.
	(BLOCK_LIVE_RANGE_START): Likewise.
	(BLOCK_LIVE_RANGE_END): Likewise.
	(tree_block): Remove live_range_flag, live_range_var_flag, and
	type_tags.  Remove end_note, live_range_start, and live_range_end.
	(remember_end_note): Remove prototype.
	* tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
	* c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
	remember_end_note.
	* ggc-common.c (ggc_mark_tree_children): Don't mark
	BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
	* integrate.c (adjust_copied_decl_tree): Remove.
	* print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
	* stmt.c (last_block_end_note): Remove.
	(init_stmt): Don't add a GC root for it.
	(expand_fixup): Don't set it.
	(remember_end_note): Remove.
	(expand_end_bindings): Don't set last_block_end_note.

	* ch-tree.h (remember_end_note): Remove prototype.
	* decl.c (poplevel): Don't call remember_end_note.

	* decl.c (poplevel): Don't set BLOCK_TYPE_TAGS.  Don't call
	remember_end_note.

	* com.c (poplevel): Don't call remember_end_note.

	* decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
	remember_end_note.

From-SVN: r30188
1999-10-26 08:34:46 +00:00
Bernd Schmidt
e3d2508d72 c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
* c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
        (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
        if that tests TREE_PERMANENT.

From-SVN: r30068
1999-10-18 02:40:20 -06:00
Alastair J. Houghton
ffc3b0f915 c-parse.in (component_decl): Support anonymous struct/union.
* c-parse.in (component_decl): Support anonymous struct/union.
        (%expect): Update.
        * c-parse.y: Regenerate.
        * c-parse.c: Likewise.
        * objc/objc-parse.y: Likewise.
        * objc/objc-parse.c: Likewise.
        * c-decl.c (finish_struct): Don't sort the fields.
        (field_decl_cmp): Delete unused function.

Co-Authored-By: Mumit Khan <khan@xraylith.wisc.edu>

From-SVN: r30016
1999-10-15 02:42:02 -06:00
Jason Merrill
07b983cd71 checked in wrong version
From-SVN: r29892
1999-10-10 15:23:38 -04:00
Jason Merrill
6fbfac9226 expr.c (expand_expr, [...]): Set TREE_USED sooner.
* expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.

	* c-decl.c (finish_struct): Use simpler method of
	removing elements of a singly-linked list.

From-SVN: r29860
1999-10-07 20:10:09 -04:00
Richard Henderson
0f695c379e * c-decl.c (ggc_p): Enable.
From-SVN: r29851
1999-10-06 23:57:07 -07:00
Bernd Schmidt
d9d5c9de1c Use lookup table to get register sizes in dwarf2 eh
From-SVN: r29730
1999-09-30 13:40:41 +00:00
Dirk Zoller
b843d2101e c-tree.h (warn_float_equal): Declare.
* c-tree.h (warn_float_equal): Declare.
        * c-decl.c (warn_float_equal): Define.
        (c_decode_option): Recognize -W[no-]float-equal.
        * c-typeck.c (build_binary_op): Conditionally warn
        about equality tests of floating point types.
        * toplev.c (documented_lan_options): Add -W[no-]float-equal.

From-SVN: r29722
1999-09-30 00:19:54 -06:00
Bernd Schmidt
d25cf6335e c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined, call it.
* c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
	call it.
	* reg-stack.c (straighten_stack): Copy hard reg set with
	COPY_HARD_REG_SET.

From-SVN: r29694
1999-09-28 13:43:34 +00:00
Bernd Schmidt
26db82d823 Allow to distinguish between three classes of builtin functions
From-SVN: r29653
1999-09-24 10:07:04 +00:00
Jason Merrill
12a39b1264 toplev.c (documented_lang_options): Add -fshort-wchar.
* toplev.c (documented_lang_options): Add -fshort-wchar.
	* c-decl.c (c_decode_option): Likewise.
	(init_decl_processing): If -fshort-wchar, use 'short unsigned int'
	for wchar_t.
	* c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
	* gcc.c (default_compilers): If -fshort-wchar,
	override __WCHAR_TYPE__.
	* tm.texi (C Dialect Options): Add -fshort-wchar.

From-SVN: r29638
1999-09-23 17:03:53 -04:00
Nick Clifton
03d32d1a08 Add comment saying that lang_decode_options should not complain about
unrecognised options.

From-SVN: r29522
1999-09-20 14:26:59 +00:00
Bernd Schmidt
81b3411cdf Move declarations and building code for common tree nodes to tree.[ch]
From-SVN: r29266
1999-09-10 10:36:02 +00:00
Richard Henderson
f4e5c65b06 c-decl.c (finish_function): When processing a nested function...
* c-decl.c (finish_function): When processing a nested function,
        push and pop GC context around rest_of_compilation.

From-SVN: r29255
1999-09-09 20:16:49 -07:00
Mark Mitchell
96603b4c5a ggc.h (lang_cleanup_tree): Remove.
* ggc.h (lang_cleanup_tree): Remove.
	* gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
	* ggc-callbacks.c (lang_cleanup_tree): Remove.

	* c-decl.c (finish_struct): Use ggc_alloc to allocate
	TYPE_LANG_SPECIFIC when garbage collecting.
	(lang_cleanup_tree): Remove.

From-SVN: r29242
1999-09-09 21:41:38 +00:00
Kaveh R. Ghazi
dbec3d5b8f * c-decl.c (mark_binding_level): Make static to match prototype.
From-SVN: r29219
1999-09-09 00:22:07 +00:00
Kaveh R. Ghazi
e1b6684cec gansidecl.h (__attribute__, [...]): Delete.
* gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
	ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
	ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
	ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.

	* c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.

	* cccp.c (pcfinclude): Likewise.

	* global.c (allocno_compare): Likewise.

	* haifa-sched.c (rank_for_schedule): Likewise.

	* local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.

	* reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.

	* stupid.c (stupid_reg_compare): Likewise.

	* tree.c (_obstack_allocated_p): Likewise.

	* varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.

From-SVN: r29208
1999-09-08 15:44:18 +00:00
Richard Henderson
c530479e15 c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
* c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
        (self_promoting_type_p): Delete.
        (self_promoting_args_p): Move ...
        * c-common.c: ... here.
        (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
        (simple_type_promotes_to): New.
        * builtins.c (lang_type_promotes_to): New.
        (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
        * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
        * c-common.h: ... here.
        (self_promoting_args_p, simple_type_promotes_to): Declare.
        * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
        (grokdeclarator): Likewise.
        * tree.h (lang_type_promotes_to): Declare.

        * cp-tree.h (C_PROMOTING_INTEGER_TYPE_P): Delete.
        * typeck.c (self_promoting_args_p): Delete.

        * gcc.dg/va-arg-1.c: New.

From-SVN: r29180
1999-09-07 21:51:16 -07:00
Jeff Law
c5c7673583 Merge in gcc2-ss-010999
From-SVN: r29150
1999-09-06 23:49:18 -06:00
Bernd Schmidt
1526a0606b Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
* Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
	(c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
	$(out_object_file)): Depend on ggc.h.
	* c-common.c: Include "ggc.h".
	(combine_strings): If doing GC, use ggc_alloc_string.
	* c-decl.c: Include "ggc.h".
	(ggc_p): Define with value 0.
	(mark_binding_level): New function.
	(init_decl_processing): Add GC roots.
	(mark_c_function_context): New function.
	(lang_mark_false_label_stack): New function.
	(lang_mark_tree): New function.
	(lang_cleanup_tree): New function.
	* c-lang.c: Include "ggc.h".
	(lang_init): Call c_parse_init.
	* c-lex.c: Include "ggc.h".
	(check_linenum): If doing GC, don't copy filenames to permanent
	obstack.
	* c-parse.in: Include "ggc.h".
	(c_parse_init): New function.
	* c-tree.h (c_parse_init, mark_c_function_context): Declare.
	* objc/Make-lang.in (objc-parse.o): Depend on ggc.h.

	* except.c (mark_eh_state): Mark more state.
	* function.c (mark_function_state): Likewise.
	* ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
	(ggc_alloc_string) [GGC_DUMP]: Fix typo.
	* toplev.c (mark_file_stack): New function.
	(compile_file): If doing GC, use ggc_alloc_string on input filename.
	(main): Add root for input_file_stack.

	* i386.c: Include "ggc.h".
	(ix86_mark_machine_status): New function.
	(override_options): Set mark_machine_status.

From-SVN: r29143
1999-09-06 21:28:22 +00:00
Bernd Schmidt
e2ecd91c7b c-decl.c (struct language_function): Renamed from struct c_function.
* c-decl.c (struct language_function): Renamed from struct c_function.
	Delete elt NEXT.
	(c_function_chain): Delete.
	(push_c_function_context): New arg F.  Don't warn about nested
	functions here.  Fill LANGUAGE elt of F.  Delete code to update
	c_function_chain.  Don't call push_function_context.
	(pop_c_function_context): New arg F.  Restore from there instead of
	from c_function_chain.  Don't call pop_function_context.  Clear out
	LANGUAGE field of F when done.
	* c-lang.c: Include "function.h"
	(lang_init): Initialize save_lang_status and restore_lang_status.
	* c-parse.in (nested_function, nested_function_notype): Warn about
	nested functions.  Call push_function_context/pop_function_context
	instead of the _c_ variants.
	* c-tree.h (push_c_function_context, pop_c_function_context): Update
	prototype.
	* Makefile.in (c-lang.o): Update dependencies.

	* emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
	regno_pointer_flag, regno_pointer_align.
	(gen_reg_rtx): Use xrealloc to enlarge them.
	(free_emit_status): New function.
	* function.c (mark_machine_status, mark_lang_status): New variables.
	(assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
	in some bits from assign_stack_local.  All callers changed to use new
	name.
	(assign_stack_local): Just call assign_stack_local_1.
	(free_after_compilation): New function.
	(put_reg_into_stack): Simplify to always call assign_stack_local_1.
	(trampoline_address): Likewise.
	(assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
	(prepare_function_start): Explicitly clear some more variables.
	* function.h (struct function): New elt can_garbage_collect.
	(mark_machine_status, mark_lang_status): Declare variables.
	(free_after_compilation, free_emit_status, free_varasm_status,
	init_varasm_status): Declare functions.
	* toplev.c (rest_of_compilation): Call free_after_compilation when
	done with the current function.
	* varasm.c (free_varasm_status): New function.

From-SVN: r29117
1999-09-05 01:06:48 +00:00
Bernd Schmidt
49ad7cfa7a Include function.h in most files.
Include function.h in most files.  Remove most of the global variables
duplicated in function.h.  Add accessor macros for them which access
current_function.  Delete INLINE_HEADER rtx and related code, replace
with code using struct function to store inlining related data.

From-SVN: r28626
1999-08-09 14:00:21 +00:00
Richard Henderson
246833ac17 expr.h (PROMOTE_PROTOTYPES): Move ...
* expr.h (PROMOTE_PROTOTYPES): Move ...
        * defaults.h: ... to here.
        * c-decl.c: Include defaults.h instead of expr.h.
        * c-typeck.c: Include defaults.h.

From-SVN: r28433
1999-08-02 17:58:44 -07:00
Jakub Jelinek
7d473569a2 Jakub Jelinek <jj@ultra.linux.cz>
* c-decl.c (get_parm_info, store_parm_decls): Change all uses of
        PROMOTE_PROTOTYPES, so that it tests it as a C expression.
        Ensure expr.h is included.
        * c-typecheck.c (convert_arguments): Ditto.

        * expr.h: Supply default for PROMOTE_PROTOTYPES (0).

From-SVN: r28420
1999-08-02 16:17:06 -07:00
Richard Henderson
d3707adb79 builtins.c (expand_builtin_saveregs): Remove static, remove exp and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
* builtins.c (expand_builtin_saveregs): Remove static, remove exp
        and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
        (expand_builtin_next_arg): Accept ARGLIST not EXP.
        (stabilize_va_list): New function.
        (std_expand_builtin_va_start): New function.
        (expand_builtin_va_start): New function.
        (get_varargs_alias_set): New function.
        (std_expand_builtin_va_arg): New function.
        (expand_builtin_va_arg): New function.
        (expand_builtin_va_end): New function.
        (expand_builtin_va_copy): New function.
        (expand_builtin): Call them.
        * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
        __builtin_{varargs_start,stdarg_start,end,copy}.
        (build_va_arg): New function.
        * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
        (build_va_arg): Declare.
        * c-decl.c (ptr_type_node, va_list_type_node): New.
        * c-parse.gperf (__builtin_va_arg): New.
        * c-parse.in (VA_ARG): New token.
        (unary_expr): Recognize it.
        * expr.c (expand_expr): Expand VA_ARG_EXPR.
        * expr.h (std_expand_builtin_va_start): Declare.
        (std_expand_builtin_va_arg): Declare.
        (expand_builtin_va_arg): Declare.
        (get_varargs_alias_set): Declare.
        * tree.def (VA_ARG_EXPR): New.
        * tree.h (BUILT_IN_VARARGS_START): New.
        (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
        (ptr_type_node, va_list_type_node): Declare.
        * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
        * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
        * m88k.h, m88k.c: Likewise.
        * mn10300.h, mn10300.c: Likewise.
        * pa.h, pa.c: Likewise.
        * rs6000.h, rs6000.c: Likewise.
        * sh.h, sh.c: Likewise.
        * sparc.h, sparc.c: Likewise.

        * emit-rtl.c (operand_subword): Copy alias set.
        (change_address): Likewise.

From-SVN: r28243
1999-07-25 18:21:03 -07:00
Bernd Schmidt
7f4edbcba6 c-common.h: New file.
* c-common.h: New file.
	* c-common.c (permanent_obstack): Delete unused declaration.
	(c_global_trees): New array.
	(c_common_nodes_and_builtins): New function; split off common code
	from init_decl_processing in both c-decl.c and cp/decl.c.
	* c-tree.h: Delete lots of declarations of tree nodes; replaced by
	c_global_trees and accessor macros defined in c-common.h.
	Include c-common.h.
	* c-decl.c: Delete definitions for tree nodes that were replaced by
	c_global_trees.
	(init_decl_processing): Build void_list_node.
	Call c_common_nodes_and_builtins; delete code to generate the common
	builtins here.

	* objc/objc-act.c (build_module_descriptor): Rename variable
	void_list_node to avoid clash with c-common.h.

	* cp/cp-tree.h: Delete lots of declarations of tree nodes; replaced by
	c_global_trees and accessor macros defined in c-common.h.
	(cp_tree_index): New enumeration.
	(cp_global_trees): Declare new array.  Add accessor macros for it, and
	delete declarations of tree nodes replaced by it.
	(builtin_function): Delete macro, add declaration for new function.
	Include c-common.h.
	* cp/decl.c: Delete definitions for tree nodes that were replaced by
	cp_global_trees and c_global_trees.
	(init_decl_processing): Call c_common_nodes_and_builtins; delete code
	to generate the common builtins here.
	(builtin_function): New function.
	* cp/decl2.c (abort_fndecl): Delete declaration.
	* cp/except.c (expand_builtin_return_address): Delete declaration.
	(builtin_return_address_fndecl): Delete variable.
	(const_ptr_type_node): Delete declaration.
	* cp/lex.c (cons_up_default_function): Delete declaration of
	void_list_node.
	* cp/parse.y (void_list_node): Delete declaration.
	* cp/rtti.c (type_info_type_node, tinfo_fn_id, tinfo_fn_type):
	Delete variables.
	(const_string_type_node): Delete declaration.
	* cp/search.c (abort_fndecl): Delete declaration.

	* Makefile.in: Update dependencies.
	* objc/Make-lang.in: Likewise.
	* cp/Makefile.in: Likewise.

From-SVN: r28188
1999-07-20 10:41:10 +00:00
Gavin Romig-Koch
835f9b4dad For gcc:
* c-decl.c (widest_integer_literal_type_node,
	widest_unsigned_literal_type) : New.
	(init_decl_processing): Handle/use the two new types.
	* c-common.c (type_for_size,type_for_mode) : Same.
	* c-lex.c (yylex) : Same.
	* c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
	Same.
	* c-tree.h (widest_integer_literal_type_node,
	widest_unsigned_literal_type) : New.
For gcc/cp:
	* cp-tree.h (widest_integer_literal_type_node,
	widest_unsigned_literal_type) : New.
	* decl.c (widest_integer_literal_type_node,
	widest_unsigned_literal_type) : New.
	(init_decl_processing): Handle/use the two new types.
	* lex.c (real_yylex): Same.
	* typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
	Same.

From-SVN: r27923
1999-07-02 10:30:01 +00:00
Stan Cox
007aaed01e c-decl.c (c_decode_option, [...]): Recognize -Wno-main so we can avoid warnings.
* c-decl.c (c_decode_option, start_decl, start_function,
	finish_function) : Recognize -Wno-main so we can avoid warnings.

From-SVN: r26376
1999-04-12 14:05:29 +00:00
Kaveh R. Ghazi
5d5993dd31 bitmap.c (bitmap_print): Qualify a char* with the `const' keyword.
* bitmap.c (bitmap_print): Qualify a char* with the `const' keyword.
        * bitmap.h (bitmap_print): Likewise.
        * c-decl.c (builtin_function, grokdeclarator, grokfield): Likewise.
        * c-lang.c (build_objc_string): Likewise.
        * c-lex.c (yyerror, extend_token_buffer): Likewise.  Don't include
        limits.h or ctype.h.  Remove unused variable `p'.
        * c-lex.h (yyerror): Qualify a char* with the `const' keyword.
        * c-pragma.c (handle_pragma_token): Likewise.
        * c-pragma.h (handle_pragma_token): Likewise.
        * c-tree.h (build_objc_string, builtin_function, grokfield,
        build_indirect_ref, lvalue_or_else, readonly_warning, error_init,
        pedwarn_init): Likewise.
        * c-typeck.c (convert_for_assignment, warn_for_assignment,
        push_string, warning_init, incomplete_type_error,
        build_indirect_ref, lvalue_or_else, readonly_warning,
        build_c_cast, spelling, push_member_name, print_spelling,
        error_init, pedwarn_init, start_init): Likewise.
        * objc/objc-act.c (build_objc_string): Likewise.
        * print-tree.c (print_node_brief, print_node): Likewise.
        * tree.h (lvalue_or_else, print_node, print_node_brief): Likewise.

From-SVN: r25296
1999-02-18 20:38:48 +00:00
Zack Weinberg
f64d823442 flags.h: Declare flag_no_ident.
�
1999-01-31 17:52 -0500  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
	* flags.h: Declare flag_no_ident.
	* toplev.c: Define flag_no_ident.  Process -f(no-)ident here.
	* c-decl.c: Don't define flag_no_ident.  Don't process
          -f(no-)ident switches here.
	* ch/decl.c: Likewise.
	* cp/decl2.c: Likewise.
	* c-tree.h: Don't declare flag_no_ident.
	* ch/ch-tree.h: Likewise.
	* cp/cp-tree.h: Likewise.
	* config/elfos.h (ASM_FILE_END): Output final .ident directive
          only if !flag_no_ident.
	* config/ptx4.h: Likewise.
	* config/svr4.h: Likewise.
	* config/alpha/elf.h: Likewise.
	* config/arm/linux-elf.h: Likewise.
	* config/i386/sco5.h: Likewise.
	* config/i860/fx2800.h: Likewise.
	* config/mips/gnu.h: Likewise.
	* config/i386/osfrose.h: Likewise.
	* gcc.c (C specs): Map -Qn to -fno-ident.
	* ch/lang-specs.h: Likewise.
	* cp/lang-specs.h: Likewise.
	* f/lang-specs.h: Likewise.
	* objc/lang-specs.h: Likewise.
	* java/lang-specs.h: Likewise.

From-SVN: r24940
1999-01-31 17:46:23 +00:00
Jeffrey A Law
ab87f8c8d1 Merge in gcc2 snapshot 19980929. See gcc/ChangeLog and gcc/FSFChangeLog for
details.

From-SVN: r24879
1999-01-26 18:43:17 -07:00
Kaveh R. Ghazi
db838bb85b c-decl.c (duplicate_decls): If `warn_traditional'...
* c-decl.c (duplicate_decls): If `warn_traditional', warn when
        a non-static function declaration follows a static one.
        * invoke.texi (-Wtraditional): Document the extra check now done
        by this flag.

From-SVN: r24703
1999-01-16 16:43:26 +00:00
Dave Brolley
5d7da2c6d9 c-lang.c: (parse_options,parse_in): Added.
Wed Dec  9 15:29:26 1998  Dave Brolley  <brolley@cygnus.com>
	* c-lang.c: (parse_options,parse_in): Added.
	(lang_init_options): Initialized cpplib here.
	* c-decl.c (parse_options,cpp_initialized): Removed.
	(c_decode_option): Move initialization of cpplib to
	lang_init_options.

From-SVN: r24219
1998-12-09 07:47:28 -05:00
Richard Henderson
6271b19158 c-decl.c (flag_isoc9x): Default off.
* c-decl.c (flag_isoc9x): Default off.
        (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x.
        * cccp.c (print_help, main): Likewise.
        * gcc.c (default_compilers): Update for -std=gnu*.

From-SVN: r24186
1998-12-08 02:26:36 -08:00
Zack Weinberg
c50bca0894 cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM so it'll work on non-ASCII platforms.
1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
	* cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
          so it'll work on non-ASCII platforms.  Always consider $ an
          identifier character.  Take no arguments.
	  (cpp_reader_init): Call initialize_char_syntax with no
          arguments.
	  (cpp_start_read): Don't call initialize_char_syntax again.
          Clear is_idchar['$'] and is_idstart['$'] if not
          opts->dollars_in_ident.
	* cpplib.h (struct cpp_reader): Replace void *data element by
          cpp_options *opts.  Rearrange elements to make gdb printout
          less annoying (put buffer stack at end).
	  (CPP_OPTIONS): Get rid of now-unnecessary cast.
	* cppmain.c: s/data/opts/ when initializing cpp_reader
          structure.
	* c-decl.c: Likewise.
	* objc/objc-act.c: Likewise.
	* fix-header.c: Likewise.

From-SVN: r24154
1998-12-07 09:15:29 -05:00
Ulrich Drepper
6f4d72224e c-common.c (declare_function_name): Declare predefinied variable `__func__'.
* c-common.c (declare_function_name): Declare predefinied variable
        `__func__'.
        * c-decl.c (flag_isoc9x): Set to 1 by default.
        (c_decode_option): Handle -std= option.  Remove -flang-isoc9x.
        (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
        * c-parse.in: Allow constructors in ISO C 9x.
        Rewrite designator list handling.
        Allow [*] parameters.
        Don't warn about comma at end of enum definition for ISO C 9x.
        * cccp.c (c9x): New variable.
        (rest_extension): New variable.
        (print_help): Document new -std= option.
        (main): Recognize -std= option.  Set c9x appropriately.
        (create_definition): Recognize ISO C 9x vararg macros.
        * gcc.c (default_compilers): Adjust specs for -std options.
        (option_map): Add --std.
        (display_help): Document -std.
        * toplev.c (documented_lang_options): Add -std and remove
        -flang-isoc9x.
        * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
        or REAL_VALUE_HTOF based on base of the constants.
        * fold-const.c (real_hex_to_f): New function.  Replacement function
        for hex FP conversion if REAL_ARITHMETIC is not defined.
        * real.c (asctoeg): Add handling of hex FP constants.
        * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
        real_hex_to_f.

Co-Authored-By: Richard Henderson <rth@cygnus.com>
Co-Authored-By: Stephen L Moshier <moshier@world.std.com>

From-SVN: r24049
1998-12-01 13:05:17 -08:00
Mark Mitchell
3932261a55 invoke.texi: Document -flang-isoc9x.
* invoke.texi: Document -flang-isoc9x.
	* Makefile.in (OBJS): Add splay-tree.o.
	(c-common.o): Depend on rtl.h.
	(splay-tree.o): List dependencies and provide build rule.
	* rtl.h (record_alias_subset): New function.
	* alias.c: Include splay-tree.h.
	(alias_set_entry): New type.
	(CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
	(DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
	(mems_in_disjoin_alias_sets_p): New function.
	(alias_set_compare): Likewise.
	(insert_subset_children): Likewise.
	(get_alias_set_entry): Likewise.
	* tree.h (TYPE_RESTRICT): New macro.
	(TYPE_UNQUALIFIED): New manifest constant.
	(TYPE_QUAL_CONST): Likewise
	(TYPE_QUAL_VOLATILE): Likewise.
	(TYPE_QUAL_RESTRICT): Likewise.
	(tree_type): Add restrict_flag.  Reduce count of free bits.
	(DECL_POINTER_ALIAS_SET): New macro.
	(DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
	(tree_decl): Add pointer_alias_set.
	(build_qualified_type): New function.
	(build_type_variant): Define in terms of build_qualified_type.
	* tree.c (set_type_quals): New function.
	(make_node): Initializae DECL_POINTER_ALIAS_SET.
	(build_type_attribute_variant): Use build_qualified_type and
	set_type_quals.
	(build_type_variant): Rename, and modify, to become...
	(build_qualified_type): New function.
	(build_complex_type): Use set_type_quals.
	* c-tree.h (C_TYPE_OBJECT_P): New macro.
	(C_TYPE_FUNCTION_P): Likewise.
	(C_TYPE_INCOMPLETE_P): Likewise.
	(C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
	(c_apply_type_quals_to_decl): New function.
	(c_build_qualified_type): New function.
	(c_build_type_variant): Define in terms of c_build_qualified_type.
	(flag_isoc9x): Declare.
	* c-typeck.c (qualify_type): Use c_build_qualified_type.
	(common_type): Change to use TYPE_QUALS.
	(comptypes): Likewise.
	(convert_for_assignment): Likewise.
	* c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
	* c-decl.c (flag_isoc9x): Define.
	(c_decode_option): Handle -flang-isoc9x.
	(grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
	c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
	* c-lex.c (init_lex): Deal with restrict.
	(init_lex): Don't treat restrict as a reserved word in
	-traditional mode, or without -flang-isoc9x.
	* c-lex.h (rid): Add RID_RESTRICT.
	* c-parse.gperf (restrict, __restrict, __restrict__): Make
	equivalent to RID_RESTRICT.
	* c-parse.in (TYPE_QUAL): Update comment.
	* c-common.c: Include rtl.h.
	(c_find_base_decl): New function.
	(c_build_type_variant): Rename, and modify, to become ...
	(c_build_qualified_type): New function.
	(c_apply_type_quals_to_decl): Likewise.
	(c_get_alias_set): For INDIRECT_REFs, check to see if we can find
	a particular alias set for the reference.
	* toplev.c (documented_lang_options): Add -flang-isoc9x.

From-SVN: r23212
1998-10-21 09:53:40 +00:00
Kaveh R. Ghazi
0ca3fb0a16 New warning, `missing-noreturn':
* c-decl.c (warn_missing_noreturn): New global variable.
        (c_decode_option): Check for new flags -W{no-}missing-noreturn.
        (finish_function): Implement missing noreturn warning.
        * c-tree.h (warn_missing_noreturn): Declare extern.
        * invoke.texi: Document new flags.
        * toplev.c (documented_lang_options): Add description.

From-SVN: r23197
1998-10-20 07:32:08 +00:00
Kaveh R. Ghazi
c84e271261 Warning fixes:
* Makefile.in (gencheck.o): Depend on gansidecl.h.
	* c-common.c (print_char_table): Add missing initializers.
	(scan_char_table): Likewise.
	(time_char_table): Likewise.
	* c-decl.c (c_decode_option): Mark parameter `argc' with
	ATTRIBUTE_UNUSED.
	(declare_parm_level): Mark parameter `definition_flag' with
	ATTRIBUTE_UNUSED.
	* c-lex.c (readescape): Use `(unsigned)1' in shift.
	(yylex): Likewise.  Cast `sizeof' to an (int) when comparing
	against one.
	* calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
	callers changed.
	(emit_call_1): Mark parameters `fndecl' and `funtype' with
	ATTRIBUTE_UNUSED.
	(expand_call): Cast result of MIN() to (unsigned int) when
	comparing against an unsigned value.
	* cccp.c (pcfinclude): Remove unused parameter `limit'.  All
	callers changed.
	(make_definition): Remove unused parameter `op'.  All callers
	changed.
	(create_definition): Cast REST_EXTENSION_LENGTH to (long) when
	comparing against the result of pointer arithmetic.
	* config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
	when comparing against one.
	* dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
 	HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
 	one.
	(output_die): Move variable `i' into the scope in which it is
	used.  Change its type to `unsigned'.
	(output_die): Cast the result of `strlen' to (int) when passing it
	to ASM_OUTPUT_ASCII().
	(output_pubnames): Likewise.
	(output_line_info): Likewise.
	* emit-rtl.c (global_rtl): Add missing initializers.
	* explow.c (promote_mode): Mark parameter `for_call' with
	ATTRIBUTE_UNUSED.
	* expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
 	`unsigned HOST_WIDE_INT' when comparing against one.
	(synth_mult): Change type of variable `cost' to int.
	(emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
	* expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
	when comparing against one.
	(get_inner_reference): Change variable `alignment' to unsigned.
	(expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
	int) when comparing against one.
	(expand_builtin_setjmp): Change type of variable `i' to size_t.
	* fold-const.c (div_and_round_double): Cast BASE to
	(HOST_WIDE_INT) when comparing against one.
	* gencheck.c: Include gansidecl.h.
	(main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
	* optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
	`tcode' with ATTRIBUTE_UNUSED.
	* real.c (edivm): Cast constant value to (unsigned long) in
	expression compared against an unsigned value.
	* stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
	comparing against one.
	(expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
	when comparing against one.
	* stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
	(unsigned int) when comparing against one.  Likewise for
	GET_MODE_BITSIZE.
	(smallest_mode_for_size): Likewise.
	(save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
	(restore_storage_status): Likewise.
	* toplev.c (debug_args): Add missing initializer.
	(f_options): Spelling correction.  Add missing initializers.
	(documented_lang_options): Likewise.
	(debug_end_source_file): Mark parameter `lineno' with
	ATTRIBUTE_UNUSED.
	* tree.c (valid_machine_attribute): Mark parameters `attr_args',
	`decl' and `type' with ATTRIBUTE_UNUSED.
	* varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
	when comparing against one.
	(assemble_variable): Mark parameter `top_level' with
	ATTRIBUTE_UNUSED.
	(assemble_external_libcall): Mark parameter `fun' with
	ATTRIBUTE_UNUSED.
	(output_constant_pool): Mark parameters `fnname' and `fndecl' with
	ATTRIBUTE_UNUSED.

From-SVN: r23054
1998-10-13 15:25:25 +00:00
Ken Raeburn
7d384cc0b3 Fine-grained control of -fcheck-memory-usage with new no_check_memory_usage attribute.
Fine-grained control of -fcheck-memory-usage with new no_check_memory_usage
attribute.  Misc minor bugfixes and tests for it too.

From-SVN: r22983
1998-10-11 02:21:54 +00:00
Jeff Law
21a9616b39 c-common.c (type_for_mode): Only return TItype nodes when HOST_BITS_PER_WIDE_INT is >= 64 bits.
* c-common.c (type_for_mode): Only return TItype nodes when
        HOST_BITS_PER_WIDE_INT is >= 64 bits.
        * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
        when HOST_BITS_PER_WIDE_INT is >= 64 bits.
        (init_decl_processing): Only create TItype nodes when
        HOST_BITS_PER_WIDE_INT is >= 64 bits.
        * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
        when HOST_BITS_PER_WIDE_INT is >= 64 bits.

From-SVN: r22912
1998-10-07 22:37:30 -06:00
Nick Clifton
3a846e6e06 Add invocation of SET_DEFAULT_DECL_ATTRIBUTES, if defined.
From-SVN: r22709
1998-10-01 10:44:46 +00:00
Richard Henderson
710384268d tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.
* tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
	(BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
	(BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
	(BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
	* c-decl.c (init_decl_processing): Update accordingly.
	* expr.c (expand_builtin): Likewise.
	* cp/decl.c (init_decl_processing): Likewise.
	* rtl.h (global_rtl): Add cfa entry.
	(virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
	(LAST_VIRTUAL_REGISTER): Update.
	* emit-rtl.c (global_rtl): Add cfa entry.
	(init_emit): Initialize it.
	* function.c (cfa_offset): New.
	(instantiate_virtual_regs): Initialize it.
	(instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
	(expand_function_end): Call expand_eh_return.
	* tm.texi (ARG_POINTER_CFA_OFFSET): New.
	* except.c (current_function_eh_stub_label): Kill.
	(current_function_eh_old_stub_label): Likwise; update all references.
	(expand_builtin_set_return_addr_reg): Kill.
	(expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
	(expand_builtin_set_eh_regs): Kill.
	(eh_regs): Produce a third reg for the actual handler address.
	(eh_return_context, eh_return_stack_adjust): New.
	(eh_return_handler, eh_return_stub_label): New.
	(init_eh_for_function): Initialize them.
	(expand_builtin_eh_return, expand_eh_return): New.
	* except.h: Update prototypes.
	* flow.c (find_basic_blocks_1): Update references to the stub label.
	* function.h (struct function): Kill stub label elements.
	* libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
	register number is one that would be in the previous window.
	Provide a dummy definition for non-windowed targets.
	(get_reg_addr): New function.
	(get_reg, put_reg, copy_reg): Use it.
	(__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
	generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
	* alpha.c (alpha_eh_epilogue_sp_ofs): New.
	(alpha_init_expanders): Initialize it.
	(alpha_expand_epilogue): Use it.
	* alpha.h: Declare it.
	* alpha.md (eh_epilogue): New.
	* m68h.h (ARG_POINTER_CFA_OFFSET): New.
	* sparc.h (ARG_POINTER_CFA_OFFSET): New.

From-SVN: r22436
1998-09-15 12:19:12 -07:00
Mark Mitchell
02e24c7ab0 tree.h (DECL_ORIGIN): New macro.
* tree.h (DECL_ORIGIN): New macro.
	* integrate.c (copy_and_set_decl_abstract_origin): New function.
	(copy_decl_list): Use it.
	(integrate_parm_decls): Likewise.
	(integrate_decl_tree): Likewise.
	* dwarf2out.c (decl_ultimate_origin): Simplify.
	* dwarfout.c (decl_ultimate_origin): Likewise.
	* c-decl.c (duplicate_decls): Use DECL_ORIGIN.
	(pushdecl): Likewise.

From-SVN: r22380
1998-09-10 10:46:00 +00:00
Jason Merrill
d9cf7c8245 c-common.c (combine_strings): Also set TREE_READONLY.
* c-common.c (combine_strings): Also set TREE_READONLY.
	Change warn_write_strings to flag_const_strings.
	* c-decl.c, c-tree.h: Likewise.
cp/
	* tree.c (lvalue_type): Fix for arrays.
	* typeck.c (string_conv_p): New fn.
	(convert_for_assignment): Use it.
	(build_unary_op): Use lvalue_type.
	* call.c (standard_conversion, convert_like): Use string_conv_p.
	(add_function_candidate): Use lvalue_type.
	* cvt.c (convert_to_reference): Likewise.
	* decl2.c (lang_decode_option): Ignore -traditional.
	* decl.c (init_decl_processing): flag_writable_strings inhibits
	flag_const_strings.
	* lang-options.h (lang_options): Add fconst-strings to the list
	of valid options.
	* decl2.c (lang_f_options, lang_decode_option): Likewise.

From-SVN: r21928
1998-08-23 22:08:45 -04:00
Jeffrey A Law
def9b0064b * From Graham
* tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
        to itype.
        * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.

From-SVN: r21810
1998-08-17 14:26:47 -06:00
Kaveh R. Ghazi
804a4e13f8 c-decl.c (init_decl_processing): Remove unneeded &.
* c-decl.c (init_decl_processing): Remove unneeded &.
        * alpha.h (alpha_initialize_trampoline): Provide prototype.
        * except.c (set_exception_lang_code, set_exception_version_code):
        Change parameter from `short' to `int' to avoid using a gcc
        extension.
        * except.h (set_exception_lang_code, set_exception_version_code):
        Likewise for prototypes.
        * flow.c (count_reg_references): Remove unused variables `regno'
        and `i'.
        * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
        * prefix.c (translate_name): Cast the result of `alloca'.
        * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.

Co-Authored-By: Jeffrey A Law <law@cygnus.com>

From-SVN: r21781
1998-08-17 03:08:32 -06:00
Ken Raeburn
07417085a1 Function entry/exit profiling instrumentation:
* expr.h (profile_function_entry_libfunc, profile_function_exit_libfunc):
Declare new variables.
* optabs.c: Define them here.
(init_optabs): Initialize them.
* tree.h (struct tree_decl): New flag no_instrument_function_entry_exit.
(DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
* c-decl.c (duplicate_decls): Merge it.
* c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
(init_attributes): Use it for "no_instrument_function".
(decl_attributes): Handle it, for functions that have not yet been compiled.
Set decl flag.
* flags.h (flag_instrument_function_entry_exit): Declare new variable.
* toplev.c (flag_instrument_function_entry_exit): Define it here.
(f_options): New option "instrument-functions".
* function.h (struct function): New field instrument_entry_exit.
* function.c (current_function_instrument_entry_exit): New variable.
(push_function_context_to, pop_function_context_from): Save and restore.
(expand_function_start): Set current_ variable, maybe emit return label and
entry profile call.
(expand_function_end): Maybe emit exit profile call.
Testsuite:
* gcc.c-torture/special/eeprof-1.c: New test, for -finstrument-functions.
* gcc.c-torture/special/special.exp: Run it.

From-SVN: r21495
1998-07-30 10:38:22 +00:00
Vladimir N. Makarov
795add948b toplev.c (lang_options): Add -Wlong-long, -Wno-long-long options.
* toplev.c (lang_options): Add -Wlong-long, -Wno-long-long
	options.
	* c-decl.c (warn_long_long): Define.
	(c_decode_option): Parse -Wlong-long, -Wno-long-long options.
	(grokdeclarator): Add flag `warn_long_long' as guard for
	warning "ANSI C does not support `long long'".
	* invoke.texi: Add description of options -Wlong-long,
	-Wno-long-long.
	* gcc.1: The same as above.
	* cp-tree.h (warn_long_long): Define.
	* decl.c (grokdeclarator): Add flag `warn_long_long' as guard for
	warning "ANSI C++ does not support `long long'".
	* decl2.c (warn_long_long): Define.
	(lang_decode_option): Parse -Wlong-long, -Wno-long-long options.

From-SVN: r21007
1998-07-08 12:16:05 +00:00
Jason Merrill
4a870dba91 c-decl.c: Add warn_multichar.
* c-decl.c: Add warn_multichar.
        (c_decode_option): Handle -Wno-multichar.
        * c-lex.c (yylex): Check it.
        * c-tree.h: Declare it.
        * toplev.c (lang_options): Add it.
        * invoke.texi: Document it.

From-SVN: r20968
1998-07-06 15:53:23 -06:00
Andreas Schwab
03369c9399 c-decl.c (grokdeclarator): Don't warn about implicit int in `typedef foo = bar'.
* c-decl.c (grokdeclarator): Don't warn about implicit int in
	`typedef foo = bar'.

From-SVN: r20863
1998-07-01 02:00:35 +00:00
Jeff Law
9ec36da574 * Merge from gcc2 June 9, 1998 snapshot. See ChangeLog.13 for
details.

From-SVN: r20808
1998-06-29 15:40:49 -06:00
Mark Mitchell
41472af877 invoke.texi (-fstrict-aliasing): Document.
* invoke.texi (-fstrict-aliasing): Document.
	* rtl.texi (MEM_ALIAS_SET): Document.
	* flags.h (flag_strict_aliasing): Declare.
	* toplev.c (flag_strict_aliasing): Define.
	(f_options): Add -strict-aliasing.
	(main): Set flag_strict_aliasing if -O2 or higher.
	* tree.h (tree_type): Add alias_set field.
	(TYPE_ALIAS_SET): New macro.
	(TYPE_ALIAS_SET_KNOWN_P): Likewise.
	(get_alias_set): Declare.
	* tree.c (lang_get_alias_set): Define.
	(make_node): Initialize TYPE_ALIAS_SET.
	(get_alias_set): New function.
	* print-tree.c (print_node): Dump the alias set for a type.
	* c-tree.h (c_get_alias_set): Declare.
	* c-common.c (c_get_alias_set): New function.
	* c-decl.c (init_decl_processing): Set lang_get_alias_set.
	* expr.c (protect_from_queue): Propogage alias sets.
	(expand_assignment): Calculate alias set for new MEMs.
	(expand_expr): Likewise.
	* function.c (put_var_into_stack): Likewise.
	(put_reg_into_stack): Likewise.
	(gen_mem_addressof): Likewise.
	(assign_parms): Likewise.
	* stmt.c (expand_decl): Likewise.
	* varasm.c (make_decl_rtl): Eliminate redundant clearing of
	DECL_RTL.  Calculate alias set for new MEMs.
	* rtl.def (REG): Add dummy operand.
	(MEM): Add extra operand to store the MEM_ALIAS_SET.
	* rtl.h (MEM_ALIAS_SET): New macro.
	(gen_rtx_MEM): Declare.
	* emit-rtl.c (gen_rtx_MEM): New function.
	* gengenrtl.c (sepcial_rtx): Make MEMs special.
	* alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): New macro.
	(DIFFERENT_ALIAS_SETS_P): Likewise.
	(canon_rtx): Propogate the alias set to the new MEM.
	(true_dependence): Check the alias sets.
	(anti_dependence): Likewise.
	(output_dependence): Likewise.
	* explow.c (stabilize): Progoate alias sets.
	* integrate.c (copy_rtx_and_substitute): Likewise.
	* final.c (alter_subreg): Make sure not to leave MEM_IN_STRUCT_P
	in an unpredictable state.  Propogate alias sets.
	* reload1.c (reload): Clear MEM_ALIAS_SET for new MEMs about which
	we have no alias information.

From-SVN: r20719
1998-06-25 15:14:41 +00:00
Jeffrey A Law
11346e893f c-decl.c (duplicate_decls): Avoid setting TREE_ASM_WRITTEN for duplicate declarations of a function.
* c-decl.c (duplicate_decls): Avoid setting TREE_ASM_WRITTEN for
        duplicate declarations of a function.

From-SVN: r20569
1998-06-18 18:05:02 -06:00
John Carr
e0cd077072 haifa-sched.c (haifa_classify_insn): TRAP_IF is risky.
* haifa-sched.c (haifa_classify_insn): TRAP_IF is risky.
	(sched_analyze_2): Allow scheduling TRAP_IF.
	* reorg.c (mark_referenced_resources): Examine operands of TRAP_IF.
	* rtl.h (TRAP_CODE): New macro.
	* rtl.def (TRAP_IF): Change second operand type to rtx.
	* optabs.c (gen_cond_trap): New function.
	(init_traps): New function.
	(init_optabs): Call init_traps.
	* expr.h: Declare gen_cond_trap.
	* jump.c (jump_optimize): Optimize jumps to and around traps.
	* sparc.md: Define trap instructions.
	* rs6000.md: Define trap instructions.
	* rs6000.c (print_operand): New code 'V' for trap condition.
	(trap_comparison_operator): New function.
	* m88k.md: Update use of TRAP_IF.
	* tree.h (enum built_in_function): New function code BUILT_IN_TRAP.
	* c-decl.c (init_decl_processing): New builtin __builtin_trap.
	* expr.c (expand_builtin): Handle BUILT_IN_TRAP.
	* expr.c (expand_builtin): Error if __builtin_longjmp second argument
	is not 1.

From-SVN: r20543
1998-06-17 16:14:09 +00:00
Jim Wilson
3bd89472d1 Fix merging error with formerly cygnus local change.
* c-decl.c (shadow_tag_warned): Use specs not declspecs in for loop.

From-SVN: r20511
1998-06-15 06:22:59 -07:00
Graham Stott
b3fbc9ad49 * c-decl.c (grokdeclarator): Remove unused variable "last".
From-SVN: r20422
1998-06-10 16:36:37 -06:00
Graham Stott
e80716de42 * c-decl.c (start_decl): Correct test for -Wmain.
From-SVN: r20421
1998-06-10 16:29:04 -06:00
Jeffrey A Law
07fb7f791d * decl.c (init_decl_processing): Fix typo.
From-SVN: r20412
1998-06-10 04:44:38 -06:00
Dave Brolley
a0d85b7572 Integrate cpplib into the C and C++ front ends.
Wed Jun 10 13:07:02 1998  Dave Brolley  <brolley@cygnus.com>
	* objc/objc-act.c: Add cpplib declarations.
	(lang_decode_option): Initialize cpplib if necessary.
	(lang_decode_option): New argc/argv interface.
	* tree.h (lang_decode_option): New argc/argv interface.
	* toplev.c (lang_options): Add cpp options.
	(main): New interface for lang_decode_option.
	* gcc.c (default_compilers): Don't call cpp for a cpplib-enabled C compiler
	unless -E, -M or -MM is specified.
	* cpplib.h (cpp_handle_option): New function.
	* cpplib.c (cpp_handle_option): New function.
	(cpp_handle_options): Now calls cpp_handle_option.
	* c-tree.h (c_decode_option): New argc/argv interface.
	* c-lex.c (init_parse): cpplib now initialized in c_decode_option.
	* c-lang.c (lang_decode_option): New argc/argv interface.
	* c-decl.c: Add cpplib declarations.
	(c_decode_option): New argc/argv interface.
	(c_decode_option): Call cpp_handle_option.
	(c_decode_option): Now returns number of strings processed.

From-SVN: r20407
1998-06-10 06:12:36 -04:00
Andrew MacLeod
a1622f838f [multiple changes]
Thu Jun  8 14:16:15 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
	* eh-common.h: Remove NEW_EH_MODEL compile time flag, and replace with
	flag_new_exceptions runtime flag.
	(struct old_exception_table): New struct which represents what
	the exception table looks like without the new model.
	(NEW_EH_RUNTIME): New value used as a tag in the exception table to
	flag that this is a new style table.
	* except.h: Remove compile time flag NEW_EH_MODEL.
	(expand_builtin_eh_stub_old): New prototype.
	* tree.h (enum built_in_function): Add BUILT_IN_EH_STUB_OLD.
	* expr.c (expand_builtin): New builtin func BUILT_IN_EH_STUB_OLD.
	* c-decl.c (init_decl_processing): Add new builtin function
	__builtin_eh_stub_old.
	* final.c (final_scan_insn): Replace compile time flag NEW_EH_MODEL.
	* flags.h (flag_new_exceptions): New runtime flag.
	* toplev.c (flag_new_exceptions): Initialize default to 0,
	-fnew-exceptions sets to 1.
	* except.c (output_exception_table_entry): Output New style exception
	identifier into table, and replace compile time flag NEW_EH_MODEL
	with runtime flag flag_new_exceptions.
	(output_exception_table): Replace compile time flag NEW_EH_MODEL.
	(expand_builtin_eh_stub_old): Duplicates original functionality of
	expand_builtin_eh_stub.
	(expand_builtin_eh_stub): Replace compile time flag NEW_EH_MODEL.
	* libgcc2.c (find_exception_handler): Remove NEW_EH_MODEL #ifdefs.
	(old_find_exception_handler): New func, same as find_exception_handler
	except it works on the old style exception table.
	(__throw): Replace NEW_EH_MODEL. Detect new model based on presence
	of identifier in the exception table, and call appropriate routines.
1998-06-08  Andrew MacLeod  <amacleod@cygnus.com>
	* except.c (init_exception_processing): Remove NEW_EH_MODEL compile
	time flag.  Call __cp_eh_info instead of __cp_exception_info.
	* exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag.
	(__cp_exception_info): Return offset into cp_eh_info structure to
	match what use to be the start of this structure.
	(__cp_eh_info): New function to return a pointer to cp_eh_info struct.
	(__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL
	compile time flag.
	(__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call
	__cp_eh_info instead of __cp_exception_info.

From-SVN: r20336
1998-06-08 12:43:28 +00:00
Kaveh R. Ghazi
d6f4ec5199 Warning fixes:
* Makefile.in (c-lang.o): Depend on c-tree.h, c-lex.h and toplev.h.
	(c-lex.o): Depend on output.h.
	(c-common.o): Likewise.
	(stmt.o): Likewise.
	(calls.o): Likewise.
	(integrate.o): Depend on toplev.h.
	(regclass.o): Depend on output.h.
	(final.o): Depend on reload.h.
	* c-common.c: Include output.h.
	(check_format_info): Remove unused variable `integral_format'.
	* c-decl.c (print_lang_decl): Mark parameters `file', `node' and
	`indent' with ATTRIBUTE_UNUSED.
	(print_lang_type): Likewise.
	(maybe_build_cleanup): Likewise for parameter `decl'.
	(copy_lang_decl): Likewise for parameter `node'.
	* c-lang.c: Include c-tree.h, c-lex.h and toplev.h.
	(lang_print_xnode): Mark parameters `file', `node' and `indent'
 	with ATTRIBUTE_UNUSED.
	(lookup_interface): Likewise for parameter `arg'.
	(is_class_name): Likewise.
	(maybe_objc_check_decl): Likewise for parameter `decl'.
	(maybe_objc_comptypes): Likewise for parameters `lhs', `rhs' and
	`reflexive'.
	(maybe_objc_method_name): Likewise for parameter `decl'.
	(build_objc_string): Likewise for parameters `len' and `str'.
	* c-lex.c: Include output.h.
	* c-lex.h (position_after_white_space): Correct typo in prototype.
	* c-tree.h (finish_file, c_expand_start_cond, c_expand_start_else,
 	c_expand_end_cond, init_iterators): Add prototypes.
	* caller-save.c (set_reg_live): Mark parameters `reg' and `setter'
	with ATTRIBUTE_UNUSED.
	* calls.c: Include output.h.
	* cccp.c (pipe_closed): Mark parameter `signo' with
 	ATTRIBUTE_UNUSED.
	* combine.c: Move inclusion of expr.h to after insn-config.h.
	* iris6.h (ASM_IDENTIFY_GCC, ASM_IDENTIFY_LANGUAGE): Don't define
	as empty, rather define as ((void)0).
	* sparc.c (sparc_check_64): Add braces around ambiguous `else'.
	Add parentheses around assignment used as truth value.
	* cplus-dem.c (squangle_mop_up): Change return type to void.
	(internal_cplus_demangle): Remove unused parameter `options'.
	All callers changed.
	(cplus_demangle_opname): Remove function wide variable `int i' and
 	replace with `size_t i' at each location where it is used.
	(cplus_demangle_opname): change type of `i' from int to size_t.
	* cppexp.c (right_shift): Mark parameter `pfile' with
	ATTRIBUTE_UNUSED.
	* cpphash.c (cpp_lookup): Likewise.
	(cpp_hash_cleanup): Likewise.
	* cpplib.c (parse_name): Add a prototype and make it static.
	(null_underflow): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
	(null_cleanup): Likewise for parameters `pbuf' and `pfile'.
	(macro_cleanup): Likewise for parameter `pfile'.
	(file_cleanup): Likewise.
	* cpplib.h (cpp_reader_init, cpp_options_init, cpp_start_read,
 	cpp_read_check_assertion, skip_rest_of_line): Add prototypes.
	* crtstuff.c (force_to_data, __CTOR_LIST__, force_to_data,
	__DTOR_END__, __FRAME_END__): Mark with ATTRIBUTE_UNUSED.
	* cse.c (cse_check_loop_start): Mark parameter `set' with
 	ATTRIBUTE_UNUSED.
	* dbxout.c (flag_minimal_debug, have_used_extensions,
	source_label_number): Move inside macro wrapper check against
	defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO).
	* dwarf2out.c (gen_entry_point_die): Hide prototype and definition.
	* except.h (doing_eh): Provide prototype.
	* expr.c: Move inclusion of expr.h to after insn-config.h.
	* final.c: Include reload.h.
	(shorten_branches): Cast the first argument of bzero to char *.
	* fix-header.c (cpp_print_containing_files): Mark parameter
 	`pfile' with ATTRIBUTE_UNUSED.
	(cpp_fatal): Likewise.
	* flow.c (find_basic_blocks_1): Cast the first argument of bzero
	to char *.
	* genattrtab.c (make_length_attrs): Change the type of variable
	`i' from int to size_t.
	(zero_fn): Mark parameter `exp' with ATTRIBUTE_UNUSED.
	(one_fn): Likewise.
	* genextract.c (main): When generating insn-extract.c, mark
	variable `junk' with ATTRIBUTE_UNUSED.
	* gengenrtl.c (gencode): When generating genrtl.c, cast the first
	argument of bzero to char*.
	* integrate.c: Include toplev.h.
	* libgcc2.c: Wrap `struct exception_table' and
	`find_exception_handler' in macro DWARF2_UNWIND_INFO.
	* objc/Make-lang.in (objc-act.o): Depend on toplev.h.
	* objc/objc-act.c: Include toplev.h.
	(lang_print_xnode): Mark parameters `file', `node' and `indent'
	with ATTRIBUTE_UNUSED.
	(finish_protocol): Likewise for parameter `protocol'.
	* output.h (declare_weak): Add prototype.
	(decode_reg_name): Don't wrap with TREE_CODE macro.
	(assemble_alias): Add prototype.
	* regclass.c: Include output.h.
	* reload.h (reloads_conflict): Add prototype.
	* rtl.h (print_rtl_single, mark_elimiation, reg_class_subset_p,
	output_func_start_profiler): Add prototypes.
	* rtlanal.c (reg_set_p_1): Mark parameters `x' and `pat' with
 	ATTRIBUTE_UNUSED.
	* scan-decls.c: Include scan.h.
	* scan.h (recognized_function, recognized_extern): Add prototypes.
	* stmt.c: Include output.h.
	* toplev.c (error_for_asm, warning_for_asm): Remove prototypes.
	(output_lang_identify): Hide prototype and definition.
	(float_signal): Mark parameter `signo' with ATTRIBUTE_UNUSED.
	(pipe_closed): Likewise.
	* toplev.h (count_error, strip_off_ending, error_for_asm,
 	warning_for_asm): Add prototypes.

From-SVN: r19712
1998-05-13 12:40:39 +00:00
Jeff Law
38e012594e typo typo fixes fixes
From-SVN: r19601
1998-05-06 15:09:07 -06:00
Robert Lipe
5f6da3024b toplev.h: New file.
Wed May  6 06:35:38 1998  Robert Lipe  <robertl@dgii.com>
        * toplev.h: New file.   Protypes for functions in toplev.c.
        * tree.h, rtl.h: Deleted protos for functions in toplev.c.
        * c-common.c, c-convert.c, c-decl.c, c-iterate.c, c-lex.c,
        c-parse.in, c-parse.y, c-pragma.c, c-typeck.c, calls.c,
        convert.c, dwarf2out.c, except.c, expr.c, final.c, fold-const.c,
        function.c, hash.c, profile.c, real.c, reg-stack.c, regclass.c,
        reload.c, reload1.c, stmt.c, stor-layout.c, tlink.c, tree.c,
        varasm.c: include it.

From-SVN: r19563
1998-05-06 04:45:47 +00:00
Jeff Law
f5963e6170 * Check in merge from gcc2. See ChangeLog.12 for details.
From-SVN: r19553
1998-05-05 17:18:02 -06:00
Jeffrey A Law
a6d7e15639 c-common.c (type_for_mode): Handle TI types.
* c-common.c (type_for_mode): Handle TI types.
        * c-decl.c (intTI_type_node, unsigned_int_TI_type_node): Define.
        (init_decl_processing): Handle TI types.
        * c-tree.h (intTI_type_node, unsigned_int_TI_type_node): Declare.

From-SVN: r19355
1998-04-21 07:25:56 -06:00
Jeff Law
e5e809f419 * Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12
for details.

        * haifa-sched.c: Mirror recent changes from gcc2.

From-SVN: r18984
1998-04-04 06:32:39 -07:00
Kaveh R. Ghazi
670ee92097 Major cutover to using system.h:
* Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o,
        c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o,
        caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o,
        dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o,
        expr.o, final.o, flow.o, function.o, getpwd.o, global.o,
        integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o,
        prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o,
        reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o,
        rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o,
        tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend
        on system.h.
        * alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c,
        c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c,
        caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c,
        dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c,
        expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c,
        integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c,
        prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c,
        reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c,
        rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c,
        stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c,
        xcoffout.c: Include system.h.  Organize include ordering so
        that stdarg/varargs comes before other system headers.  Remove
        spurious casts of functions assured of a prototype in system.h.

From-SVN: r18726
1998-03-20 14:58:42 +00:00
Manfred Hollstein
f8344bea51 c-decl (finish_struct): Change type of min_align to unsigned.
a
gcc/ChangeLog:
	* c-decl (finish_struct): Change type of min_align to unsigned.
	* cplus-dem.c (demangle_function_name): Change type of variable i to size_t;
	remove unused variable len.
	* dwarf2out.c (reg_save): Add explicit cast of -1 to unsigned and a
	comment indicating this is proper behaviour.
	(reg_loc_descriptor): Remove redundant comparison of unsigned variable
	reg >= 0.
	(based_loc_descr): Likewise.
	* enquire.c (bitpattern): Change type of variable i to unsigned.
	* final.c (output_asm_insn): Don't cast insn_noperands to unsigned.
	* flow.c (life_analysis): Change type of variable i to size_t;
	remove unused variable insn.
	* gcc.c (translate_options): Change type of variables optlen, arglen and
	complen to size_t.
	(input_filename_length): Change type to size_t.
	(do_spec_1): Change type of variable bufsize to size_t.
	(main): Change type of variables i and j to size_t;
 	remove subblock local definition of variable i.
	(lookup_compiler): Change type of second argument to size_t;
	change type of variable i to size_t.
	* genemit.c (output_init_mov_optab): Change type of variable i to size_t.
	* genopinit.c (get_insn): Change type of variable pindex to size_t.
	* genrecog.c (add_to_sequence): Change type of variable i to size_t.
	* global.c (global_alloc): Change type of variable i to size_t.
	* regclass.c (init_reg_sets): Change type of variables i and j to unsigned.
	* stmt.c (expand_end_bindings): Change type of variable i to size_t.
	(expand_end_case): Change type of variable count to size_t.
	* toplev.c (main): Change type of variable j to size_t.
	(set_target_switch): Change type of variable j to size_t.
	(print_switch_values): Change type of variable j to size_t;
	remove unused variable flags.
	* varasm.c (assemble_variable): Change type of variable align to size_t.
	(const_hash_rtx): Change type of variable i to size_t.
gcc/cp/ChangeLog:
Sun Mar  8 17:13:38 1998  Manfred Hollstein  <manfred@s-direktnet.de>
	* decl2.c (lang_decode_option): Change j's type to size_t.
	* tree.c (layout_vbasetypes): record_align and desired_align are of
	type unsigned int; const_size and nonvirtual_const_size likewise.

From-SVN: r18491
1998-03-12 00:02:52 +00:00
Brendan Kehoe
d9525bec09 tree.h (merge_machine_{type,decl}_attributes): Declare.
./ChangeLog:	* tree.h (merge_machine_{type,decl}_attributes): Declare.
	(split_specs_attrs, strip_attrs): Add prototypes.
	* tree.c (merge_machine_{type,decl}_attributes): New functions.
	* c-decl.c (duplicate_decls): Call merge_machine_decl_attributes.
	Update olddecl's attributes too.
	* c-common.c (strip_attrs): New function.
	* c-typeck.c (common_type): Call merge_machine_type_attributes.
	* varasm.c (make_function_rtl): New target macro REDO_SECTION_INFO_P.
	(make_decl_rtl): Likewise.
	* c-decl.c (shadow_tag_warned): Call split_specs_attrs.
./cp/ChangeLog:	* decl.c (duplicate_decls): Call merge_machine_decl_attributes.
	Update olddecl's attributes too.
	(strip_attrs): Remove function.
	* typeck.c (common_type): Call merge_machine_type_attributes.

From-SVN: r18065
1998-02-18 05:38:57 -05:00
Robert Lipe
ccd043a956 c-common.c: Include <stdlib.h> and <string.h>/<strings.h>.
* c-common.c: Include <stdlib.h> and <string.h>/<strings.h>.
        * calls.c (expand_call): Remove unused variables funtree,
        n_regs, and tmpmode.
        * dbxout.c, except.c: Include <string.h>/<strings.h>.
        * explow.c: (plus_constant_for_output_wide) Removed unused
        variable all_constant.
        * c-decl.c, genattr.c, genattrtab.c, getconfig.c, genemit.c
        genextract.c, genflags.c, genopinit.c genoutput.c, genpeep.c,
        genrecog.c, global.c, integrate.c , stupid.c : Include
        <stdlib.h>.
        * genextract.c: (walk_rtx) Remove unused variable link.
        * genrecog.c: (concat) Remove unreferenced static function.
        * prefix.c: Include <string.h>/<strings.h>, <stdlib.h>
        * stmt.c: Include <stdlib.h>.
        (expand_asm_operands): Remove unused variable val1.
        (expand_return): Remove unused variable block.
        (pushcase): Remove unused variables l and n.
        (pushcaserange): Likewise.
        * unroll.c (unroll_loop): Remove unused variable temp.

From-SVN: r17766
1998-02-07 15:55:54 -07:00
Greg McGary
6553db017b * c-decl.c (pushdecl): Set DECL_ORIGINAL_TYPE once only.
From-SVN: r17765
1998-02-07 15:44:35 -07:00
J"orn Rennecke
f8dac6eb3f expr.c (get_inner_reference): Use sbitsizetype for type sizes.
* expr.c (get_inner_reference): Use sbitsizetype for type sizes.
        * fold-const.c (size_int): Replace with
        (size_int_wide).
        (make_bit_field_ref): Use bitsize_int for bit position.
        * stor-layout.c (sizetype): Delete.
        (sizetype_tab, sbitsizetype, ubitsizetype): Declare.
        (layout_record, layout_union, layout_type):
        Use bitsize_int for bit size.
        (set_sizetype): New function.
        (make_signed_type, make_unsigned_type): Use it.
        * c-decl.c (init_decl_processing): Likewise.
        * tree.h (size_int): Don't delcare, #define.
        (size_int_wide, sizetype_tab, sbitsize, ubitsize): Declare.
        (set_sizetype): Declare.
        (bitsize_int, size_int_2, BITS_PER_UNIT_LOG, sizetype, bitsizetype):
        Define.
        * c-typeck.c (c_sizeof, c_sizeof_nowarn, c_size_in_bytes):
        Convert result to sizetype.
        (really_start_incremental_init, push_init_level):
        Set type of constructor_bit_index to sbitsizetype.
        (push_init_level): Use unsigned arithmetic to determine padding.
        (output_init_element): Likewise.

From-SVN: r17577
1998-02-01 04:47:59 -07:00
J"orn Rennecke
2a851b5ccf Patch from Joern to fix dwarf1 bug: emit debug info for types defined in
parameter lists.
	* c-decl.c (grokdeclarator): Get parameter tags from
	last_function_parm_tags.
	* dwarfout.c (output_formal_types): Set TREE_ASM_WRITTEN before
	traversing the parameter types.
	(output_type): No early exit for FUNCTION_TYPE / METHOD_TYPE context.

From-SVN: r17490
1998-01-26 10:13:41 -08:00
Richard Henderson
6c174fc0e6 c-decl.c (init_decl_processing): Provide proper fallback symbol for __builtin_memset.
* c-decl.c (init_decl_processing): Provide proper fallback symbol
for __builtin_memset.
* expr.c (expand_builtin) [MEMSET]: Arg 3 type code is INTEGER_TYPE
not INTEGER_CST.  Assert arg 3 is a constant.
* alpha.c (mode_width_operand): Accept 64-bit modes.
(mode_mask_operand): Likewise.
(print_operand): Likewise for 'M' and 'U' codes.
(alpha_expand_unaligned_load): New function.
(alpha_expand_unaligned_store): Likewise.
(alpha_expand_unaligned_load_words): Likewise.
(alpha_expand_unaligned_store_words): Likewise.
(alpha_expand_block_move): Likewise.
(alpha_expand_block_clear): Likewise.
* alpha.h (MOVE_RATIO): New define.
* alpha.md (extxl, ext*h, ins*l, mskxl): Name them.
(insql, insxh, mskxh, extv, extzv, insv, movstrqi, clrstrqi): New.
* alpha.h (ASM_OUTPUT_LOOP_ALIGN, ASM_OUTPUT_ALIGN_CODE): Set to 3.
(CONSTANT_ALIGNMENT, DATA_ALIGNMENT): Disable.

From-SVN: r17278
1998-01-01 20:48:04 -08:00
Nick Clifton
d300e55140 c-pragma.c (handle_pragma_token): Generate warning messages about unknown pragmas if warn_unknown_pragmas is set.
* c-pragma.c (handle_pragma_token): Generate warning messages
        about unknown pragmas if warn_unknown_pragmas is set.
        * c-decl.c (c_decode_option): Parse -Wunknown-pragmas command
        line option to set variable: warn_unknown_pragmas.

From-SVN: r17168
1997-12-21 08:24:48 -07:00
Kaveh R. Ghazi
1d300e19b6 bitmap.c (bitmap_clear): Ensure `inline' is at the beginning of the declaration.
* bitmap.c (bitmap_clear): Ensure `inline' is at the beginning
        of the declaration.
        * c-decl.c (finish_decl): Use parentheses around && within ||.
        * rtl.c: Include stdlib.h.
        (read_skip_spaces): Add parentheses around assignments used as
        truth values.
        (read_rtx): Initialize list_rtx.
        * cppexp.c (parse_number): Use || when operands are truth values.
        * alias.c (find_base_value): Add default case.
        (memrefs_conflict): Likewise.
        * combine.c (sets_function_arg_p): Likewise.
        * genemit.c (gen_exp): Likewise.
        * local-alloc.c (contains_replace_regs): Likewise.
        * rtlanal.c (jmp_uses_reg_or_mem): Likewise.
        * fold-const.c (fold_convert): Use "&&" for truth values.
        (fold): Add default case.
        * sdbout.c (sdbout_field_types): Fix typo in declaration.
        (sdbout_one_type): Add default case.
        * alpha.c (alpha_sa_mask): Prototype only if OPEN_VMS.
        (some_operand): Add default case.
        (input_operand): Likewise.
        (signed_comparison_operator): Likewise.
        (divmod_operator): Likewise.
        (alpha_set_memflags_1): Likewise.
        * reload1.c (reload_cse_simplify_operands): Ensure function
        always returns a value.
        * scan-decls.c (scan_decls): Likewise.
        * c-lex.c (skip_white_space): Fix typo in declaraion.
        * c-typeck.c (comp_target_types): Add parentheses around assignment
        used as truth value.
        (print_spelling): Likewise.
        (constructor_implicit, constructor_result): Remove unused variables.
        * collect2.c (scan_library): Protect prototype with
        #ifdef SCAN_LIBRARIES.
        * emit-rtl.c (find_line_note): Fix typo in declaration.
        * final.c (asm_insn_count): Protect prototype with
        #ifdef HAVE_ATTR_length.
        * flow.c (find_auto_inc): Protect prototype with #ifdef AUTO_INC_DEC.
        (try_pre_increment_1, try_pre_increment): Likewise.
        * regclass.c (auto_inc_dec_reg_p): Protect prototype with
        #ifdef FORBIDDEN_INC_DEC_CLASSES.  Make return type explicit.
        * gcov-io.h (__store_long, __write_long, __read_long): Fix
        unsigned/signed comparisons.
        * gcov.c (read_files): Remove unused "first_type" variable.
        (scan _for_source_files): Initialize s_ptr.
        (function_summary): Eliminate "%lf" formatting, use %ld for
        longs.
        (output_data): Initialize branch_probs and last_line_num.
        Eliminate "%lf" formatting, use "%ld" for longs.

Co-Authored-By: Jeffrey A Law <law@cygnus.com>

From-SVN: r17158
1997-12-20 04:31:54 -07:00
Jeff Law
956d69504d Merge from gcc-2.8
From-SVN: r16987
1997-12-06 17:31:01 -07:00
Jeff Law
e9a25f70a0 Update mainline egcs to gcc2 snapshot 971021.
From-SVN: r16278
1997-11-02 14:19:36 -07:00
Mike Stump
5c19a35643 c-decl.c (start_struct): Ensure that structs with forward declarations are in fact packed when...
* c-decl.c (start_struct): Ensure that structs with forward
        declarations are in fact packed when -fpack-struct is given.

        * stor-layout.c (layout_record): Ignore STRUCTURE_SIZE_BOUNDARY if
        we are packing a structure.  This allows a structure with only
        bytes to be aligned on a byte boundary and have no padding on a
        m68k.

From-SVN: r15939
1997-10-16 15:45:24 -06:00
Jason Merrill
2f3ca9e7f4 c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size.
* c-decl.c (init_decl_processing): Add __builtin_dwarf_reg_size.
	* tree.h (built_in_function): Likewise.
	* expr.c (expand_builtin): Likewise.
	* except.h: Likewise.
	* dwarf2out.c (expand_builtin_dwarf_reg_size): New fn.
	* libgcc2.c (copy_reg): New fn.
	(__throw): Use it.

From-SVN: r15750
1997-09-27 14:16:15 -04:00
Paul Eggert
407cb092e3 c-typeck.c (build_binary_op): Warn about comparing signed vs unsigned if...
* c-typeck.c (build_binary_op): Warn about comparing signed vs
        unsigned if -W is specified and -Wno-sign-compare is not.
        * c-decl.c (warn_sign_compare): Initialize to -1.
        (c_decode_option): -Wall no longer implies -Wsign-compare.

From-SVN: r15739
1997-09-26 21:46:35 -06:00
Jason Merrill
0021b564f4 dwarf2 EH support
From-SVN: r15255
1997-09-10 14:00:28 -04:00
Jeffrey A Law
63e7fe9ba4 pa.md (reload_peepholes): Make sure operand is a REG before examining REGNO.
* pa.md (reload_peepholes): Make sure operand is a REG before
        examining REGNO.  Allow general registers too.
Fixes sporatic c-torture failure.

Remove last change to fold-const.c and c-decl.c

From-SVN: r15000
1997-08-29 16:14:07 -06:00
Doug Evans
3dedc65a1f c-decl.c (grokdeclarator): If array index or size calculations overflow, issue an error.
* c-decl.c (grokdeclarator): If array index or size calculations
        overflow, issue an error.
        * fold-const.c (int_const_binop): New static function.
        (const_binop, size_binop): Call it.
Brought over from the fsf.

From-SVN: r14967
1997-08-27 10:58:02 -06:00
Jeff Law
861bb6c1b0 Initial revision
From-SVN: r14764
1997-08-11 09:56:58 -06:00
Richard Kenner
293facbcd4 parmlist_tags_warning): Only suppress warning on union if anonymous.
From-SVN: r14638
1997-08-02 19:06:27 -04:00
Richard Kenner
18989c57d3 (init_decl_processing): Add __builtin_aggregate_incoming_address.
From-SVN: r14609
1997-08-02 13:15:09 -04:00
Doug Evans
bb8eaf4acd c-decl.c (duplicate_decls): Set DECL_ABSTRACT_ORIGIN to olddecl if inline function and not new definition.
* c-decl.c (duplicate_decls): Set DECL_ABSTRACT_ORIGIN to olddecl
	if inline function and not new definition.

From-SVN: r14480
1997-07-19 02:16:12 +00:00
Richard Kenner
79479f9000 (complete_array_type): Remove obsolete references to change_main_variant.
From-SVN: r14197
1997-06-09 18:40:58 -04:00
Jason Merrill
52a18c1031 x
From-SVN: r13979
1997-04-25 01:32:46 +00:00
Richard Kenner
dab9b3bf3d (c_decode_option): Ignore -Wundef, -Wno-undef.
From-SVN: r13875
1997-04-13 12:47:53 -04:00
Doug Evans
ae998c9a69 * c-decl.c (grokdeclarator): Pedwarn qualified void function return type.
From-SVN: r13802
1997-03-25 21:39:09 +00:00
Richard Kenner
d71f83ca54 (start_function): Fix improper installation of last change.
From-SVN: r13581
1997-02-02 07:15:44 -05:00
Richard Kenner
a01dce9a42 Fix editing error in last change.
From-SVN: r13537
1997-01-19 22:18:33 -05:00
Richard Kenner
b8705e613b (start_decl): Add code for -Wmain.
(c_decode_option): Add -fhosted, -ffreestanding, and -Wmain.

From-SVN: r13517
1997-01-19 15:04:35 -05:00
Richard Kenner
dd103803e2 (poplevel): Don't call output_inline_function if DECL_SAVED_INSNS is
not set.

From-SVN: r13224
1996-12-07 17:35:03 -05:00
Jason Merrill
88dad22845 x
From-SVN: r13209
1996-11-20 20:36:53 +00:00
Jason Merrill
d2872d37e9 x
From-SVN: r13208
1996-11-20 00:10:51 +00:00
Richard Kenner
720283f2eb (grokdeclarator): Generate a warning if -Wimplicit, unless a warning
was already generated by -Wreturn-type.

From-SVN: r13135
1996-11-12 14:17:33 -05:00
Richard Kenner
c6d4074117 (field_decl_cmp): Use `const void *' arguments.
From-SVN: r13130
1996-11-12 14:03:00 -05:00
Richard Kenner
39b3bed7fe (dollars_in_ident): DOLLARS_IN_IDENTIFIERS is now Boolean.
(c_decode_option): -fdollars-in-identifiers is now independent of -ansi,
of -traditional, and of DOLLARS_IN_IDENTIFIERS.

From-SVN: r12930
1996-10-09 16:19:45 -04:00
Michael Meissner
9787ad71f1 Allow short to be size_t
From-SVN: r12853
1996-09-27 17:49:57 +00:00
Richard Kenner
1507aa7422 (finish_struct): Check PCC_BITFIELD_TYPE_MATTERS value.
(finish_struct): Check PCC_BITFIELD_TYPE_MATTERS value.  arbitrary
expression.

From-SVN: r12828
1996-09-23 22:50:55 -04:00
Richard Kenner
d20ae480d1 (pushdecl): Check new declaration actually conflicts before warning about implicit external vs.
(pushdecl): Check new declaration actually conflicts before warning
about implicit external vs. static declarations.

From-SVN: r12772
1996-09-22 11:37:08 -04:00
Richard Kenner
9590fa7214 (finish_struct): If pedantic, also warn if struct/union has no named
members.

From-SVN: r12612
1996-08-11 17:46:05 -04:00
Mike Stump
0f41302f47 formatting tweaks
From-SVN: r12390
1996-07-03 22:07:53 +00:00
Richard Kenner
b71e9de07c (init_decl_processing): Register __builtin_memset and memset as
builtin functions.

From-SVN: r12362
1996-06-28 14:32:39 -04:00
Jim Wilson
e6f379d049 (grokdeclarator): Call pop_obstacks after creating
TYPE_DECL.

From-SVN: r12178
1996-06-06 12:15:24 -07:00
Jason Merrill
f537695d63 (start_decl): Always set DECL_COMMON on statics.
From-SVN: r12158
1996-06-04 23:42:33 +00:00
Richard Kenner
02eb6e9022 (start_struct): Set TYPE_PACKED from flag_pack_struct.
(start_enum): Likewise but from flag_short_enums.
(finish_enum): Test TYPE_PACKED, not flag_short_enums.

From-SVN: r12140
1996-06-03 07:57:03 -04:00
Richard Kenner
b423779d2d Add prototypes for all static functions.
From-SVN: r12041
1996-05-19 12:21:45 -04:00
Jason Merrill
2786cbadc7 -fno-common change
From-SVN: r11940
1996-05-06 18:36:48 +00:00
Richard Kenner
0500d6f9b2 (clear_limbo_values): New function.
(pushdecl): Call it for function body blocks.

From-SVN: r11828
1996-04-16 17:32:49 -04:00
Richard Kenner
f500253d32 (finish_enum): Don't crash if no type can represent all enumeration values.
From-SVN: r11771
1996-04-14 19:01:38 -04:00
Richard Kenner
cd4aafd57b (finish_function): Always warn if main doesn't return int.
From-SVN: r11674
1996-04-08 14:44:21 -04:00
Richard Kenner
0ecef3cf11 (duplicate_decl): If making decl non-external, copy context from old
to new.

From-SVN: r11439
1996-03-05 07:51:14 -05:00
Jason Merrill
d51f93635d warn_sign_compare
From-SVN: r11298
1996-02-19 10:22:57 +00:00
Richard Kenner
e3b776dcc4 (finish_decl): TREE_ASM_WRITTEN says if duplicate_decls modified declaration to...
(finish_decl): TREE_ASM_WRITTEN says if duplicate_decls modified
declaration to match an outside file scope declaration.

From-SVN: r11264
1996-02-13 17:47:16 -05:00
Per Bothner
8ee15cd7f5 Changes to distinguish typedef from original type in debug output.
* c-decl.c (pushdecl):  Set DECL_ORIGINAL_TYPE for typedef origin.

From-SVN: r11215
1996-02-12 12:03:24 -08:00
Paul Eggert
d787aad9e5 (finish_struct): Fix typo in transparent union warning that led to core dump.
From-SVN: r11161
1996-02-02 17:42:40 +00:00
Richard Kenner
091480e549 (init_decl_processing): Add definitions for __builtin_setjmp and
__builtin_longjmp.

From-SVN: r11113
1996-01-27 07:58:08 -05:00
Richard Kenner
5cfac96e55 (finish_incomplete_decl): Warn if completing an array that wasn't declared extern.
(finish_incomplete_decl): Warn if completing an array that wasn't
declared extern.  Simplify test for whether completion is needed.

From-SVN: r11003
1996-01-15 20:05:06 -05:00
Richard Kenner
ed244fc2cd (finish_struct): Warn if field with enumeral type is narrower than
values of that type.

From-SVN: r10928
1996-01-01 09:30:37 -05:00
Richard Kenner
64d60f91a6 (finish_struct): Set DECL_C_BIT_FIELD when set DECL_BIT_FIELD.
From-SVN: r10857
1995-12-24 18:14:33 -05:00
Jason Merrill
57883245f3 (finish_struct): Don't mess with the type of bitfields.
From-SVN: r10673
1995-12-04 23:56:00 +00:00
Jim Wilson
bf44f7de98 (duplicate_decls): Add new paramter different_binding_level.
Lots of changes to use new new parameter.
(pushdecl): Delete variable declared_global.  New variable
different_binding_level and code to set it.  Move extern/static
warning before duplicate_decls call.  Don't let global typedefs
conflict with nested extern declarations.  Move oldglobal test
inside code for setting IDENTIFIER_LIMBO_VALUE.
(lookup_name_current_level_global): Delete.

From-SVN: r10618
1995-11-29 10:55:34 -08:00
Richard Kenner
c16b611ef9 (pushdecl): Don't test TREE_PUBLIC when deciding whether to register a
duplicate decl in the current block.

From-SVN: r10528
1995-10-27 05:45:42 -04:00
Richard Kenner
692ce0fd55 (redeclaration_error_message): For TYPE_DECLs, return 0 if
TYPE_MAIN_VARIANT of old type is same as new type.

From-SVN: r10311
1995-09-11 18:41:44 -04:00
Richard Kenner
1604422ce4 (finish_struct): If transparent_union attribute specified, validate it
once we finish laying the union out.

From-SVN: r10293
1995-08-29 19:15:47 -04:00
Richard Kenner
c3fac86651 (field_decl_cmp): Rewritten to make sure that a null name always sorts
low against other names.

From-SVN: r10137
1995-07-14 19:22:57 -04:00
Richard Kenner
940d9d638b Update FSF address.
From-SVN: r9959
1995-06-15 07:33:25 -04:00
Richard Kenner
5730cf6948 (start_function): New parameter for attributes.
From-SVN: r9943
1995-06-14 08:07:24 -04:00
Richard Kenner
92d6875bdd (c_decode_option, case "-Wall"): Don't set extra_warnings.
From-SVN: r9919
1995-06-10 08:58:39 -04:00
Richard Kenner
8615176a9a (start_decl): Set DECL_COMMON before calling decl_attributes.
From-SVN: r9895
1995-06-06 18:39:24 -04:00
Richard Kenner
f4fa7423c3 (duplicate_decls): Don't clear DECL_CONTEXT of new decl if it is a
function.

From-SVN: r9893
1995-06-06 18:21:02 -04:00
Richard Kenner
2c69f2538b (finish_decl_top_level): Removed; no longer used.
From-SVN: r9765
1995-05-22 17:03:30 -04:00
Richard Kenner
efffbf71b1 (shadow_tag_warned): Don't warn about useless keyword if in system
header file.

From-SVN: r9755
1995-05-20 07:04:26 -04:00
Richard Kenner
ddd5a7c180 Fix typos in comments.
From-SVN: r9711
1995-05-16 08:14:26 -04:00
Jason Merrill
daefd78b4c Update weak symbol support
From-SVN: r9697
1995-05-16 01:02:59 +00:00
Richard Kenner
005979f2d6 (push_parm_decl): Pass any attributes to decl_attributes.
From-SVN: r9639
1995-05-12 07:09:47 -04:00
Richard Kenner
9a381dd472 (grokdeclarator): Use PARM_FLAG to see if should make PARM_DECL.
From-SVN: r9627
1995-05-11 19:26:45 -04:00
Richard Kenner
5be1df77c9 (finish_struct): Properly update DECL_PACKED.
From-SVN: r9625
1995-05-11 18:43:43 -04:00
Richard Kenner
0df0f84cb5 (finish_decl_top_level): New function.
From-SVN: r9499
1995-04-26 19:17:42 -04:00
Richard Kenner
10861e9a23 (finish_struct): Add ATTRIBUTES argument, call decl_attributes and set DECL_PACKED from TYPE_PACKED.
(finish_struct): Add ATTRIBUTES argument, call decl_attributes and set
DECL_PACKED from TYPE_PACKED.
(finish_enum): Add ATTRIBUTES argument, call decl_attributes, and make enum
narrow if TYPE_PACKED.

From-SVN: r9486
1995-04-26 17:24:01 -04:00
Richard Kenner
ccafc85b7f (init_decl_processing): Don't give builtin__constant_p an argument
type.

From-SVN: r9474
1995-04-26 12:28:49 -04:00
Jim Wilson
be0f1cf296 (pushdecl): Don't test DECL_EXTERNAL when deciding whether
to register a duplicate decl in the current block.

From-SVN: r9465
1995-04-25 16:11:10 -07:00
Richard Kenner
daa6d5ffc0 (start_decl): New args for attributes; call decl_attributes.
From-SVN: r9444
1995-04-25 16:06:42 -04:00
Richard Kenner
f5ec002697 (duplicate_decls): Don't look at TYPE_ACTUAL_ARG_TYPES if it is not
set.

From-SVN: r9439
1995-04-25 13:30:35 -04:00
Jim Wilson
6272a44980 (poplevel): Do output inline function if
DECL_ABSTRACT_ORIGIN points to itself.

From-SVN: r9359
1995-04-11 10:41:27 -07:00
Richard Kenner
7665dfd47b (start_function): Handle new parameter ATTRIBUTES.
From-SVN: r9147
1995-03-09 21:31:02 -05:00
Doug Evans
cd681d1f89 Undo this patch, breaks libobjc builds.
* c-decl.c (pushdecl): When have a duplicate decl, and it is global,
	delete lookup_name name in test for return.
	(redeclaration_error_message): When newdecl is a block level
	declaration, use lookup_name_current_level instead of DECL_CONTEXT.

From-SVN: r9123
1995-03-05 23:27:16 +00:00
Per Bothner
6f09c35cde Remove Feb 13's FUNCTION_NEEDS_STATIC_CHAIN changes.
From-SVN: r9107
1995-03-01 19:40:59 -08:00
Jim Wilson
4d53757da9 (pushdecl): When have a duplicate decl, and it is global,
delete lookup_name name in test for return.
(redeclaration_error_message): When newdecl is a block level
declaration, use lookup_name_current_level instead of DECL_CONTEXT.

From-SVN: r9072
1995-02-24 18:21:37 -08:00
Richard Kenner
4b4e340710 (grokdeclarator): Added code to support machine attributes.
(duplicate_decls): Pass DECL_MACHINE_ATTRIBUTES to descendent typedef;
make duplicate typedefs that are identical generate a warning if they
are both in system header files.
(redeclaration_error_message): Make duplicate typedefs that are
identical not an error if they are both in system header files.

From-SVN: r8994
1995-02-21 17:56:58 -05:00
Per Bothner
290c7d58f7 * c-decl.c (grokdeclarator): Maybe set FUNCTION_NEEDS_STATIC_CHAIN.
From-SVN: r8937
1995-02-13 12:54:47 -08:00
Richard Kenner
c40f7b333a (grokdeclarator): Use NAME, not IDENTIFIER_POINTER of DECLARATOR for
error messages; DECLARATOR might be null.

From-SVN: r8907
1995-02-11 15:16:04 -05:00
Jason Merrill
f444e553bf Set boolean_*, pedantic_lvalues
From-SVN: r8766
1995-01-17 21:43:40 +00:00
Jason Merrill
2c5f4139a9 __attribute__ ((constructor))
From-SVN: r8747
1995-01-14 01:09:01 +00:00
Jim Wilson
4fc7cf69ba (duplicate_decls): Push to permanent obstack before
creating new function types.

From-SVN: r8717
1995-01-03 12:30:52 -08:00
Richard Kenner
e14417facf Include output.h.
From-SVN: r8712
1994-12-30 07:59:51 -05:00
Richard Kenner
732149f9d5 (init_decl_processing): Implement built-in functions fabsf, sqrtf,
sinf, cosf, fabsl, sqrtl, sinl, cosl.

From-SVN: r8619
1994-12-06 19:11:19 -05:00
Jim Wilson
15317f8925 (finish_decl): Use DECL_CONTEXT instead of
current_binding_level to identify file-scope variables.

From-SVN: r8565
1994-11-28 15:03:16 -08:00
Richard Kenner
e3c56d1b51 (duplicate_decls): Properly merge decls with differing DECL_CONTEXT.
From-SVN: r8428
1994-11-11 17:53:39 -05:00
Richard Kenner
5415b705f4 (start_function): Save immediate_size_expand and initialize it to zero
in case nested function.

From-SVN: r8302
1994-10-18 15:42:11 -04:00
Richard Earnshaw
a784882b53 (shadow_label): Emit an error if the label is already
declared at this label scope.

From-SVN: r8191
1994-10-01 10:58:44 +00:00
Jason Merrill
29226a190a (min_precision): Move to c-common.c
From-SVN: r8021
1994-09-02 23:40:51 +00:00
Richard Kenner
5ce574f2c6 Fix typo in last change.
From-SVN: r7901
1994-08-12 09:10:54 -04:00
Richard Kenner
8e5e53da6c (duplicate_decls): Suppress -Wredundant-decls warning if we have
already given an error.

From-SVN: r7900
1994-08-12 07:52:04 -04:00
Richard Kenner
3861b61380 (finish_decl): Preserve initialializer if iterator.
From-SVN: r7829
1994-07-29 19:26:59 -04:00
Richard Kenner
34322499be (finish_struct): Don't look at alignment of error_mark_node.
From-SVN: r7804
1994-07-28 08:07:05 -04:00
Jim Wilson
6fc7c517d5 (start_function): If old_decl is NULL, then set it to the implicit decl if any.
(start_function): If old_decl is NULL, then set it to
the implicit decl if any.  Delete superfluous test from warn missing
prototypes code.  For warn missing declarations code, only warn if
previous decl is implicit.

From-SVN: r7787
1994-07-21 14:55:22 -07:00
Jim Wilson
93f623faa9 (pushdecl): Don't call lookup_name_current_level_global when traditional.
(pushdecl): Don't call lookup_name_current_level_global
when traditional.  When doing checks against
IDENTIFIER_LIMBO_VALUE, also do check against
INDENTIFIER_GLOBAL_VALUE when traditional.

From-SVN: r7756
1994-07-12 18:37:25 -07:00
Richard Kenner
a98b1078b7 (finish_decl): Put RTL and other stuff in permanent_obstack if DECL
is.

From-SVN: r7679
1994-07-08 12:02:05 -04:00
Jim Wilson
1d00bef819 (duplicate_decls): When make void* match char*, set
DECL_IN_SYSTEM_HEADER.

From-SVN: r7645
1994-07-02 16:09:49 -07:00
Richard Kenner
5c8902bb1a (lang_decode_option): Set warn_bad_function_cast for
-Wbad-function-cast.

From-SVN: r7561
1994-06-24 16:17:01 -04:00
Richard Kenner
014aa47e1e (clear_binding_level): Add missing fields in initializer.
(c_decode_option): Correct misspelling of -fno-dollars-in-identifiers.

From-SVN: r7539
1994-06-23 17:39:11 -04:00
Richard Kenner
de953b38a3 (min_precision): New function.
(finish_enum): Rewrite code to determine precision required for enumeral type.

From-SVN: r7471
1994-06-14 17:55:38 -04:00
Richard Kenner
59116212bf (finish_enum): Handle VALUES being an ERROR_MARK.
From-SVN: r7303
1994-05-16 08:25:28 -04:00
Jason Merrill
37105bebb4 (copy_lang_decl): No-op function that will never
actually be called.

From-SVN: r7294
1994-05-14 01:56:51 +00:00
Jim Wilson
e32fe22499 (pushdecl): Use lookup_name_current_level_global instead of lookup_name for extern references.
(pushdecl): Use lookup_name_current_level_global instead
of lookup_name for extern references.  Don't return duplicate decl
if it came from the global binding level, and there exists a
conflicting decl in an intervening block.
(lookup_name_current_level_global); New function.

From-SVN: r7189
1994-05-02 13:48:11 -07:00
Richard Kenner
5db1a3c46e (grokdeclarator): Never warn about `long long' in system header.
From-SVN: r7158
1994-04-25 18:47:21 -04:00
Richard Kenner
72f5a12bcb (finish_decl): Redo last change.
From-SVN: r7156
1994-04-25 16:47:30 -04:00
Richard Kenner
2af6a433d9 (duplicate_decls): Always warn when const declaration follows
non-const one for variables.

From-SVN: r7076
1994-04-18 17:56:01 -04:00
Richard Kenner
3c4afaa5f8 (finish_decl): If asmspec_tree, clear DECL_BUILT_IN for function and
DECL_RTL always.

From-SVN: r7048
1994-04-16 16:38:20 -04:00
Jim Wilson
db57d41371 (finish_decl): Don't preserve initializer if it is error_mark_node.
From-SVN: r7033
1994-04-11 10:42:41 -07:00
Richard Kenner
678566a5af (duplicate_decls, pushdecl, builtin_function): Use DECL_FUNCTION_CODE
instead of DECL_SET_FUNCTION_CODE.

From-SVN: r7025
1994-04-11 06:20:41 -04:00
Richard Kenner
46b1c39385 (duplicate_decls): Put new type in same obstack as old ones, or
permanent is old ones in different obstacks.

From-SVN: r7001
1994-04-09 08:25:26 -04:00
Jim Wilson
7e44eda6c2 (finish_decl): Correct typo in use of tree_int_cst_sgn.
From-SVN: r6989
1994-04-06 12:35:10 -07:00
Richard Kenner
1474fe4665 (warn_missing_declarations): New variable.
(c_decode_option): -Wmissing-declarations.
(start_function): Actually do the checking.

From-SVN: r6981
1994-04-06 07:31:44 -04:00
Richard Kenner
6cc902a1c4 (push_parm_decl): Move decl of unused variable OLDDECL into #if 0
block.

From-SVN: r6872
1994-03-25 13:55:59 -05:00
Jim Wilson
8d0aed4706 (init_decl_processing): Change builtin_next_arg type so
that it accepts any parameter instead of none.

From-SVN: r6853
1994-03-23 14:15:56 -08:00
Jim Wilson
a1a77352f6 (duplicate_decls): When pedantic, warn when any static
declaraction follows a non-static.

From-SVN: r6840
1994-03-21 14:07:03 -08:00
Richard Kenner
1ff1a2d220 (grokdeclarator): Use signed version of `sizetype' for type of array
index.

From-SVN: r6822
1994-03-19 06:29:25 -05:00
Jim Wilson
7dcf01c29c (pushdecl): Call lookup_name for external references.
Delete code to check external references against global
declarations.
(redeclaration_error_message): If newdecl has block scope, then
return string only if olddecl has the same scope.

From-SVN: r6807
1994-03-17 15:45:04 -08:00
Richard Kenner
0a43d68083 (grokdeclarator): Convert to sizetype when manipulating size of array
and use care to avoid mixed-type operations.

From-SVN: r6787
1994-03-14 08:47:18 -05:00
Richard Kenner
6aa10371a5 (finish_{decl,struct,enum}): Call tree_int_cst_sgn.
From-SVN: r6775
1994-03-14 05:08:06 -05:00
Richard Kenner
7d49f92a42 (finish_decl): When preserving an initializer, ensure its type is on a
good obstack.

From-SVN: r6742
1994-03-11 07:21:22 -05:00
Jim Wilson
3e755d23ce (finish_decl): When saving/discarding initializers,
don't check TREE_PERMANENT and TREE_STATIC.
(finish_decl, finish_function): Pass new argument to
permanent_allocation.

From-SVN: r6722
1994-03-08 12:49:11 -08:00
Richard Kenner
739d15ab17 (finish_decl, finish_function): Issue warning for large objects, if
requested.

From-SVN: r6653
1994-02-27 15:19:57 -05:00
Richard Kenner
b8e605ab2c (store_parm_decls): Initialize some vars.
From-SVN: r6637
1994-02-27 10:43:17 -05:00
Doug Evans
1e50b042c4 (duplicate_decls): Merge section name into new decl.
From-SVN: r6583
1994-02-17 22:49:29 +00:00
Richard Kenner
11433f425c (grokdeclarator): `volatile' function warning corrected to read
`noreturn' function warning.

From-SVN: r6457
1994-02-01 11:21:23 -05:00
Richard Kenner
c470260b41 (grokdeclarator): Properly validate __complex__ and create the various
kinds of complex integer types.

From-SVN: r6311
1993-12-25 07:52:49 -05:00
Mike Stump
2c0d84d608 cp-decl.c (flag_conserve_space): New language specific flag to tell the compiler to use .common when possible.
* cp-decl.c (flag_conserve_space): New language specific flag to
	tell the compiler to use .common when possible.  Reduces the size of
	.o files.
	* cp-decl.c (duplicate_decls): Copy DECL_COMMON from the olddecl.
	* cp-decl.c (start_decl): Set DECL_COMMON appropriately.
	* cp-decl.c (finish_decl): Use flag_conserve_space, instead of
	flag_no_common.
	* cp-decl2.c (flag_conserve_space, lang_f_options): New flag.
	* toplev.c (lang_options): New -fconserve-space flag.
	* tree.h (DECL_COMMON): New flag.
	* tree.h (tree_decl): New common_flag.
	* varasm.c (assemble_variable): Use DECL_COMMON to help determine if
	an object can be put in .common.
	* c-decl.c (start_decl): Set DECL_COMMON to 1..

From-SVN: r6244
1993-12-16 00:15:21 +00:00
Richard Stallman
0e5eedfeb0 (finish_function): Pass new arg to expand_function_end.
Don't call expand_end_bindings here.

From-SVN: r6140
1993-11-23 06:19:09 +00:00
Richard Stallman
cbee980e82 (finish_enum): Undo previous change.
From-SVN: r5997
1993-11-04 19:39:42 +00:00
Richard Stallman
5c28da2454 (finish_enum): Always make an enum signed if it will fit.
From-SVN: r5996
1993-11-04 19:38:34 +00:00
Richard Stallman
708e813b0c (finish_function): If rest_of_compilation set DECL_INITIAL
to null, leave it null.

From-SVN: r5943
1993-10-30 08:33:30 +00:00
Richard Stallman
b4d4e33ddd (finish_decl): After preserve_initializer call, set
TREE_PERMANENT bit in initializer.

From-SVN: r5800
1993-10-19 03:19:18 +00:00
Richard Stallman
70efc776c8 (finish_decl): Error if block-scope static var has incomplete type.
(complete_array_type): Correctly set MAXINDEX to one less than array size.

From-SVN: r5672
1993-10-08 04:59:33 +00:00
Richard Stallman
20bf3fac14 (complete_array_type): Correctly set MAXINDEX to one less than array size.
From-SVN: r5670
1993-10-08 01:49:18 +00:00
Richard Kenner
561d994ff6 (init_decl_processing): Call init_function_format_info.
From-SVN: r5606
1993-10-05 15:13:36 -04:00
Richard Stallman
7e4849dad4 (init_decl_processing): Use signed_type and unsigned_type
to set signed_wchar_type_node and unsigned_wchar_type_node.

From-SVN: r5504
1993-09-28 02:01:48 +00:00
Richard Stallman
55b4742bf3 (flag_allow_single_precision): New variable.
(c_decode_option): Handle -fallow-single-precision.

From-SVN: r5425
1993-09-23 02:04:32 +00:00
Richard Stallman
ecd4cee03c (complete_array_type): Handle TREE_PURPOSE of array constructor elements.
From-SVN: r5316
1993-09-13 20:17:48 +00:00
Richard Stallman
75b4643788 (build_enumerator): Choose type properly for wide constants.
(finish_enum): Always set type of the enumerators to the enum type.

From-SVN: r5271
1993-09-07 12:26:20 +00:00
Richard Stallman
eaf2e788fd (grokdeclarator): For PARM_DECLs, only call
c_build_type_variant is constp or volatilep is true.

From-SVN: r5263
1993-09-05 22:35:15 +00:00
Richard Kenner
25a1019f18 (build_enumerator): Apply default conversion to constant-expression.
From-SVN: r5258
1993-09-03 19:02:27 -04:00
Jim Wilson
549a367ad6 (finish_decl): For static const variables, preserve
initializers instead of discarding them.

From-SVN: r5245
1993-09-01 15:59:32 -07:00
Richard Kenner
18192b41d2 (struct c_function): Remove unneeded enum_next_value.
(push_c_function_context, pop_c_function_context): Don't save it.

From-SVN: r5230
1993-08-31 06:25:38 -04:00
Richard Kenner
fd48df3e75 (get_parm_info...
(get_parm_info, store_parm_decls): If PROMOTE_PROTOTYPE, promote all
integral types shorter than int, including short enums.

From-SVN: r5228
1993-08-30 16:13:42 -04:00
Michael Meissner
6e026f481e Do not report -Wnested-extern errors for __FUNCTION__/__PRETTY_FUNCTION__.
From-SVN: r5146
1993-08-12 21:14:02 +00:00
Doug Evans
6706083e3a c-decl.c (init_decl_processing): Make long long available to | use for SIZE_TYPE and PTRDIFF_TYPE.
* c-decl.c (init_decl_processing): Make long long available to
|       use for SIZE_TYPE and PTRDIFF_TYPE.

From-SVN: r5101
1993-08-07 19:50:59 +00:00
Richard Stallman
f3b4fb6ec8 (finish_decl): Allow file-scope static incomplete array.
From-SVN: r5094
1993-08-07 08:48:29 +00:00
Richard Stallman
61df2ee2d5 (finish_struct): No pedwarn for field with enum type if size matches int.
(grokdeclarator): No error for void type for extern or global var.

(grokdeclarator): Warn here for volatile fn returning non-void type.
(start_function): Not here.

(grokdeclarator): Don't pass on const and volatile
fron function value type to function type.

From-SVN: r5084
1993-08-06 01:11:37 +00:00
Richard Stallman
1c5334be7d Fix typo in last change.
From-SVN: r5036
1993-07-29 02:33:32 +00:00
Richard Stallman
6df4a7b923 (start_function): Warn if volatile fn returns non-void.
From-SVN: r5022
1993-07-28 17:45:51 +00:00
Bill Cox
27d433a267 Fix print_lang_decl and print_lang_type function headers.
From-SVN: r4988
1993-07-26 18:09:09 +00:00
Jim Wilson
6f65afb0df (insert_block): Correct typo in comment.
From-SVN: r4869
1993-07-06 15:23:54 -07:00
Richard Stallman
ec820a12da (duplicate_decls): Don't warn for non-extern var decl
following an extern one (for -Wredundant-decls).

From-SVN: r4856
1993-07-06 06:12:49 +00:00
Richard Kenner
47df02623a (poplevel): Start new function context when writing inline function.
From-SVN: r4755
1993-06-26 11:21:20 -04:00
Richard Kenner
a34731a692 (init_decl_processing): When making SIZETYPE, start with name in SIZE_TYPE.
(init_decl_processing): When making SIZETYPE, start with name in
SIZE_TYPE.  If -traditional, use a signed version of that type, if it
is unsigned.

From-SVN: r4752
1993-06-26 11:15:29 -04:00
Richard Stallman
a419ff54d6 (c_decode_option): Handle -fdollars-in-identifiers.
From-SVN: r4728
1993-06-25 18:01:20 +00:00
Richard Stallman
f537a5c50f (grokdeclarator): Avoid the use of macros for ..._TYPE
nodes in cases where a parameter's type is error_mark_node.

From-SVN: r4708
1993-06-22 06:07:19 +00:00
Richard Stallman
eda115ddc4 (finish_decl): Don't modify DECL_INITIAL of a PARM_DECL.
From-SVN: r4662
1993-06-11 17:32:08 +00:00
Richard Stallman
a2469305ae (pushdecl): Copy DECL_FRAME_SIZE for inline function decls.
From-SVN: r4639
1993-06-05 20:32:28 +00:00
Richard Stallman
d575f110ff (finish_decl): If type is laid out, but decl is not, call layout_decl.
From-SVN: r4572
1993-05-26 04:22:32 +00:00
Richard Stallman
f4e5900810 (complete_array_type): Delete the code to call change_main_variant.
From-SVN: r4446
1993-05-14 04:36:34 +00:00
Richard Stallman
e1fe03e98f (complete_array_type): Call change_main_variant.
(complete_array_type): Make maxindex -1 for empty constructor.

From-SVN: r4417
1993-05-11 04:37:41 +00:00
Jim Wilson
50e658546e (grokdeclarator, ARRAY_REF case): Build array type, and
then build the variant array type.

From-SVN: r4314
1993-05-03 17:10:51 -07:00
Richard Kenner
32831d4b72 (pushdecl): Don't make a copy of type of error_mark_node.
From-SVN: r4238
1993-04-26 18:47:48 -04:00
Richard Kenner
e09d75bd97 (init_decl_processing): Last arg to __builtin_apply is size_t, not int.
From-SVN: r4214
1993-04-25 12:59:28 -04:00
Richard Kenner
773edaeff2 (shadow_tag_warned): Let warned have three values, so that a mere warning doesn't prevent a pedwarn.
(shadow_tag_warned): Let warned have three values, so that a mere
warning doesn't prevent a pedwarn.  Don't skip the error call at the
end on accounted of warned.

From-SVN: r4203
1993-04-23 19:27:20 -04:00