1. 26 Oct, 2004 1 commit
  2. 25 Oct, 2004 1 commit
    • c-common.h: Remove RID_ID. · 3a3589b4
      [gcc/ChangeLog]
      2004-10-25  David Ayers  <d.ayers@inode.at>
      
      	* c-common.h: Remove RID_ID.
      	* c-parse.in: Remove OBJECTNAME and references to RID_ID.
      	(typespec_reserved_attr): Add rule for TYPENAME
      	non_empty_protocolrefs.
      	(yylexname): Remove special handling of RID_ID.
      
      [gcc/objc/ChangeLog]
      2004-10-25  Ziemowit Laski  <zlaski@apple.com>
      	    David Ayers  <d.ayers@inode.at>
      
      	* objc-act.c (objc_comptypes): Use IS_PROTOCOL_QUALIFIED_UNTYPED
      	instead of IS_PROTOCOL_QUALIFIED_ID; add comparisons for:
      	'Class <Protocol> != id <Protocol>'; 'Class <Protocol> != <class> *';
      	'Class <Protocol> == id' and 'Class <Protocol> == Class'.
      	(objc_is_id): Add test for 'super'.
      	(objc_finish_message_expr): Allow for messaging of 'Class <Proto>'
      	receivers; if class methods are not found in protocol lists, search
      	for instance methods therein and warn if one is found.  Look in
      	global hash tables for suitable method as a last resort when messaging
      	'id <Proto>', 'Class <Proto>' and invalid receiver types.
      	(objc_add_method): Insert instance methods listed in protocols into
      	the global class method hash table.
      	* objc-act.h (IS_PROTOCOL_QUALIFIED_ID): Rename to
      	IS_PROTOCOL_QUALIFIED_UNTYPED and allow for 'Class <Proto>' in
      	addition to 'id <Proto>'.
      
      [gcc/testsuite/ChangeLog]
      2004-10-25  David Ayers  <d.ayers@inode.at>
      	    Ziemowit Laski  <zlaski@apple.com>
      
      	* objc.dg/call-super-2.m: Add messages to 'Class <Proto>'; update
      	diagnostics when messaging 'id <Proto>'.
      	* objc.dg/class-protocol-1.m: New test.
      	* objc.dg/desig-init-1.m: Add message to an invalid receiver using
      	a non-existent method signature.
      	* objc.dg/method-5.m, objc.dg/method-6.m, objc.dg/proto-hier-1.m:
      	Update diagnostics when messaging with non-existent method signature.
      	* objc.dg/proto-hier-2.m: Adjust wording of diagnostic.
      	* objc.dg/proto-lossage-1.m, objc.dg/proto-lossage-4.m: Messages to
      	invalid receivers are now resolved as if messaging 'id'; remove
      	extraneous diagnostics.
      
      From-SVN: r89562
      Ziemowit Laski committed
  3. 21 Oct, 2004 1 commit
    • re PR objc/17923 (const-str-[34].m fails on the mainline (next runtime)) · 943db347
      2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
      
              PR objc/17923
              * tree.c (staticp): A CONST_DECL has static storage if either
              TREE_STATIC or DECL_EXTERNAL is set.
              * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can
              have null names.
      
      2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
      
              PR objc/17923
              * objc-act.c (objc_build_string_object): Create a CONST_DECL
              for the NeXT runtime case.
      
      2004-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
      
              PR objc/17923
              * objc.dg/const-str-7.m: New test.
      
      From-SVN: r89384
      Andrew Pinski committed
  4. 02 Oct, 2004 1 commit
  5. 24 Sep, 2004 2 commits
    • objc-act.c (init_objc_symtab, [...]): When initializing 'long' fields, ensure… · 14214f09
      objc-act.c (init_objc_symtab, [...]): When initializing 'long' fields, ensure that the initializer value is also 'long'.
      
      [gcc/objc/ChangeLog]
      2004-09-24  Ziemowit Laski  <zlaski@apple.com>
      
      	* objc-act.c (init_objc_symtab, init_module_descriptor,
      	build_shared_structure_initializer): When initializing 'long'
      	fields, ensure that the initializer value is also 'long'.
      
      From-SVN: r88079
      Ziemowit Laski committed
    • objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION throughout. · dd3017e4
      objc:
      	* objc-act.c: Change annotate_with_locus to SET_EXPR_LOCATION
      	throughout.
      	(objc_init): Only set input_line to 0 #ifndef USE_MAPPED_LOCATION.
      	(build_selector_translation_table): Use %J in diagnostic
      	instead of diddling input_line.  Fix spelling.
      testsuite:
      	* objc.dg/proto-lossage-4.m: Use long instead of int to avoid
      	extra diagnostics on targets with 64-bit pointers.
      	* objc.dg/selector-1.m: Adjust dg-warning regexp.
      
      From-SVN: r88072
      Zack Weinberg committed
  6. 22 Sep, 2004 1 commit
  7. 18 Sep, 2004 1 commit
  8. 17 Sep, 2004 1 commit
    • alias.c (find_base_decl): Remove unreachable case '3' block. · 6615c446
      2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
      	    Zack Weinberg  <zack@codesourcery.com>
      
      	* alias.c (find_base_decl): Remove unreachable case '3' block.
      	* expr.c (safe_from_p): Abort if passed a type.
      	* tree-gimple.c (recalculate_side_effects): Abort if passed
      	anything other than an expression.
      	* tree-ssa-pre.c (phi_translate): Return expr immediately if
      	is_gimple_min_invariant is true for it.  Reorder cases for clarity.
      	Abort on un-handled tree classes.
      	(valid_in_set): Likewise.
      	* tree.c (tree_code_class_strings): New static data.
      
      	* tree.h (enum tree_code_class): New.
      	(tree_code_class_strings): Declare.
      	(TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
      	(REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
      	(STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
      	(TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
      	(checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.
      
      	* tree.def, c-common.def, objc/objc-tree.def: Use
      	tree_code_class enumeration constants instead of code letters.
      
      	* alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
      	* c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
      	* emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
      	* langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
      	* tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
      	* tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
      	* tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
      	* tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
      	* tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
      	* tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
      	* tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
      	* config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
      	* config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
      	Update to match.
      
      	* LANGUAGES: Add note about change.
      
      ada:
      	* ada-tree.def: Use tree_code_class enumeration constants
      	instead of code letters.
      	* ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
      	Update for new tree-class enumeration constants.
      
      cp:
      	* cp-tree.def: Use tree_code_class enumeration constants
      	instead of code letters.
      	* call.c, class.c, cp-gimplify.c, cp-lang.c, cxx-pretty-print.c
      	* mangle.c, pt.c, semantics.c, tree.c, typeck.c:
      	Update for new tree-class enumeration constants.
      
      fortran:
      	* f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
      	enumeration constants.
      
      java:
      	* java-tree.def: Use tree_code_class enumeration constants
      	instead of code letters.
      	* java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
      	new tree-class enumeration constants.
      
      treelang:
      	* treetree.c: Update for new tree-class enumeration constants.
      
      From-SVN: r87675
      Jeffrey D. Oldham committed
  9. 09 Sep, 2004 1 commit
    • c-tree.h (enum c_declarator_kind, [...]): New. · f8893e47
      	* c-tree.h (enum c_declarator_kind, struct c_arg_info, struct
      	c_declarator, struct c_type_name, struct c_parm): New.
      	(build_array_declarator, set_array_declarator_inner,
      	get_parm_info, grokfield, groktypename, grokparm, push_parm_decl,
      	start_function, start_decl, build_c_parm, build_attrs_declarator,
      	build_function_declarator, make_pointer_declarator, c_cast_expr,
      	store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes.
      	(build_id_declarator): New.
      	* c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new
      	structures.
      	* c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES,
      	ARG_INFO_OTHERS): Remove.
      	(build_id_declarator): New.
      	(build_array_declarator, set_array_declarator_inner, groktypename,
      	start_decl, grokparm, push_parm_decl, grokparms, get_parm_info,
      	grokfield, start_function, store_parm_decls_newstyle,
      	store_parm_decls_oldstyle, store_parm_decls,
      	build_c_parm, build_attrs_declarator, build_function_declarator,
      	make_pointer_declarator, grokdeclarator): Update to new
      	structures.
      	* c-parse.in (%union): Add arginfotype, dtrtype, typenametype and
      	parmtype.
      	(declarator, notype_declarator, after_type_declarator,
      	parm_declarator, parm_declarator_starttypename,
      	parm_declarator_nostarttypename, array_declarator, typename,
      	absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1,
      	absdcl_maybe_attribute, parm, firstparm, parms, parmlist,
      	parmlist_1, parmlist_2, parmlist_or_identifiers,
      	parmlist_or_identifiers_1): Use these types.
      	(primary, after_type_declarator, parm_declarator_starttypename,
      	notype_declarator, component_decl, component_declarator,
      	component_notype_declarator, typename, absdcl,
      	absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1,
      	parmlist_2, parmlist_or_identifiers_1): Update to new structures.
      
      objc:
      	* objc-act.c (objc_start_function, really_start_method,
      	objc_get_parm_info, start_method_def): Update to new arg_info
      	structures.
      
      From-SVN: r87217
      Joseph Myers committed
  10. 08 Sep, 2004 1 commit
    • Makefile.in (c-parse.o): Depend on $(C_COMMON_H). · 6408ef33
      [gcc/ChangeLog]
      2004-09-07  Ziemowit Laski  <zlaski@apple.com>
      
      	* Makefile.in (c-parse.o): Depend on $(C_COMMON_H).
      	* c-parse.in: Include c-common.h instead of objc-act.h.
      	(ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator,
      	myparms, myparm): Remove %type declarations.
      	(methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual,
      	objc_typename, objc_try_catch_stmt, optellipsis): Add %type
      	declarations.
      	(objc_inherit_code, objc_public_flag): Remove.
      	(typespec_nonreserved_nonattr): Call
      	objc_get_protocol_qualified_type() instead of get_static_reference()
      	and get_protocol_reference().
      	(stmt_nocomp): Call grokparm() on @catch parameter.
      	(objcdef): Move semantic action to objc_finish_implementation().
      	(classdef): Move semantic action to objc_start_class_interface(),
      	objc_continue_interface(), objc_finish_interface(),
      	objc_start_class_implementation(), objc_continue_implementation(),
      	objc_start_category_interface() and
      	objc_start_category_implementation().
      	(protocoldef): Move semantic actions to objc_start_protocol() and
      	objc_finish_interface().
      	(ivar_decl_list): Remove nonterminal.
      	(visibility_spec): Move semantic actions to objc_set_visibility().
      	(ivar_decls): Remove assignment to $$.
      	(ivar_decl): Rephrase in terms of component_decl; call
      	objc_add_instance_variable().
      	(ivars, ivar_declarator): Remove nonterminals.
      	(opt_semi): New nonterminal.
      	(methodtype): Remove semantic actions.
      	(methoddef): Move semantic actions to objc_set_method_type(),
      	objc_start_method_definition() and objc_finish_method_definition().
      	(methodproto): Move semantic actions to objc_set_method_type() and
      	objc_add_method_declaration().
      	(methoddecl): Use objc_typename instead of typename; move semantic
      	actions to objc_build_method_signature().
      	(optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals.
      	(optparmlist): Express in terms of optparms and optellipsis.
      	(optparms, optellipsis, objc_qual, objc_quals, objc_typename): New
      	nonterminals.
      	(keyworddecl): Use objc_typename instead of typename.
      	(rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF
      	and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse().
      
      [gcc/objc/ChangeLog]
      2004-09-07  Ziemowit Laski  <zlaski@apple.com>
      
      	* Make-lang.in (objc/objc-parse.o): Depend on $(C_COMMON_H) instead of
      	objc/objc-act.h.
      	(objc/objc-act.o): Depend on $(HASHTAB_H).
      	* objc-act.c: Include hashtab.h; in ObjC++ mode, include cp-tree.h and
      	objcp-decl.h instead of c-tree.h.
      	(build_module_descriptor, get_class_ivars, synth_id_with_class_suffix,
      	error_with_ivar, gen_method_decl, gen_declaration, setup_string_decl,
      	build_protocol_template): Adjust prototypes.
      	(build_module_initializer_routine, start_class, continue_class,
      	finish_class, start_method_def, objc_start_function, start_protocol,
      	build_method_decl, objc_add_method, add_instance_variable,
      	build_ivar_reference, is_ivar, is_private, get_super_receiver,
      	build_selector_table_decl, objc_push_parm, objc_get_parm_info,
      	gen_type_name, gen_type_name_0, start_var_decl, finish_var_decl,
      	create_field_decl): New prototypes.
      	(objc_expand_function_end, comp_method_with_proto, objc_expr_last,
      	gen_declaration_1, gen_declarator, is_complex_decl, adorn_decl,
      	define_decl, create_builtin_decl, gen_declspecs): Remove prototypes.
      	(TYPE_ID): Rename to OBJECT_TYPEDEF_NAME.
      	(CLASS_TYPEDEF_NAME): New.
      	(TAG_EXECCLASS): Change from a global variable to a #define.
      	(TAG_RETURN_STRUCT): Delete.
      	(TAG_GNUINIT): New, holds '__objc_gnu_init' name.
      	(objc_inherit_code, objc_public_flag): New, moved from c-parse.in.
      	(string_descriptor): New struct.
      	(string_htab): New hash table.
      	(string_hash, string_eq): New prototypes.
      	(generate_struct_by_value_array): Call create_field_decl() instead of
      	create_builtin_decl().
      	(objc_init): Do not initialize objc_ellipsis_node or TAG_EXECCLASS;
      	In ObjC++ mode, call cxx_init() instead of c_objc_common_init().
      	(objc_finish_file): In ObjC++, call instantiate_pending_templates()
      	and cp_finish_file().
      	(define_decl, get_static_reference, get_protocol_reference,
      	create_builtin_decl): Remove functions.
      	(objc_start_class_interface, objc_start_category_interface,
      	objc_start_protocol, objc_continue_interface, objc_finish_interface,
      	objc_start_class_implementation, objc_start_category_implementation,
      	objc_continue_implementation, objc_finish_implementation,
      	objc_set_visibility, objc_set_method_type,
      	objc_build_method_signature, objc_add_method_declaration,
      	objc_start_method_definition, objc_add_instance_variable,
      	objc_get_protocol_qualified_type, create_field_decl,
      	start_var_decl, finish_var_decl): New functions.
      	(setup_string_decl): Simplify since it is only called once.
      	(synth_module_prologue): Call build_class_template(); predefine 'id'
      	and 'Class' as typedefs; rename 'temp_type' to 'type'; disable debug
      	hooks for duration of function; fix GNU runtime messenger signatures
      	to correspond to reality; forward-declare '__objc_exec_class' for the
      	GNU runtime; call build_selector_table_decl(); in ObjC++ mode, generate
      	'extern "C" { ... }' wrappers around synthesized declarations; call
      	build_protocol_template() and build_category_template().
      	(string_hash, string_eq): New functions.
      	(objc_build_string_object): Check metaclass correctness only once;
      	store string literals in hash table.
      	(objc_build_constructor): Do not convert initializer elements;
      	adjust for ObjC++ impedance mismatch.
      	(build_objc_symtab_template): Call create_field_decl() instead of
      	create_builtin_decl().
      	(init_objc_symtab): Add missing conversion to initializer element.
      	(build_metadata_decl): Call start_var_decl() instead of define_decl().
      	(generate_objc_symtab_decl): Do not call build_category_template();
      	call start_var_decl() and finish_var_decl() instead of start_decl()
      	and finish_decl().
      	(build_module_descriptor): Call create_field_decl() instead of
      	grokfield(); call start_var_decl() and finish_var_decl() instead of
      	start_decl() and finish_decl(); always mark module descriptor as
      	used; move GNU runtime-specific functionality to
      	build_module_initializer_routine().
      	(build_module_initializer_routine): New function, broken off of
      	build_module_descriptor().
      	(objc_static_init_needed_p, objc_generate_static_init_call): New
      	functions.
      	(generate_static_references, generate_strings,
      	build_selector_translation_table, generate_descriptor_table,
      	generate_ivars_list, generate_dispatch_table, generate_category): Call
      	start_var_decl() and finish_var_decl() instead of start_decl() and
      	finish_decl(); build a type directly instead of via groktypename().
      	(build_selector_reference_decl, build_selector_table_decl,
      	build_class_reference_decl, build_protocol_reference,
      	generate_objc_image_info): Call start_var_decl() instead of
      	build_decl().
      	(build_selector_reference): For GNU runtime, do not call
      	build_selector_reference_decl().
      	(build_selector, build_typed_selector_reference): Always convert
      	result to the selector type.
      	(add_objc_string): Cast return value to 'char *'.
      	(build_method_prototype_template, build_selector_template,
      	build_method_template): Use actual selector type for fields
      	pointing to selectors.
      	(finish_objc): For GNU runtime, call
      	build_module_initializer_routine() after build_module_descriptor().
      	(generate_protocol_list, generate_shared_structures): Call
      	start_var_decl() and finish_var_decl() instead of start_decl() and
      	finish_decl(); build a type directly instead of via
      	groktypename().
      	(synth_id_with_class_suffix): Return a string.
      	(get_arg_type_list): For instance methods, use the instance type for
      	'self'; do not call groktypename_in_parm_context().
      	(build_objc_string_decl): Squash redeclaration errors in ObjC++.
      	(objc_is_class_name): Use OBJC_TYPE_NAME instead of TYPE_NAME;
      	handle RECORD_TYPEs in ObjC as well as ObjC++.
      	(objc_is_id): New function.
      	(objc_is_object_ptr): Return the canonical type node.
      	(objc_get_class_ivars): Simplify using get_class_ivars().
      	(get_class_ivars): Remove second parameter; create a fresh copy
      	of the ivar list for each call; do not check for existence of
      	super class.
      	(objc_eh_runtime_type): Mark #ifndef OBJCPLUS.
      	(objc_init_exceptions): When using SJLJ-style exceptions, require
      	the use of '-fobjc-exceptions' flag; do not require it for DWARF-style
      	exceptions.
      	(objc_build_exc_ptr, next_sjlj_build_try_catch_finally): Use
      	objc_object_type instead of objc_id_type.
      	(objc_begin_catch_clause): Convert the incoming PARM_DECL into
      	a VAR_DECL before placing it in the appropriate scope; do not
      	call define_decl(); adjust call to c_begin_compound_stmt();
      	use objc_object_type instead of objc_id_type.
      	(build_next_objc_exception_stuff): Call create_field_decl() instead
      	of create_builtin_decl(); construct type directly instead of calling
      	groktypename(); use OBJC_VOID_AT_END to mark end of function parameters.
      	(build_private_template): Adjust call to get_class_ivars(); build
      	a type directly instead of via groktypename().
      	(build_protocol_template, build_method_prototype_list_template,
      	build_method_prototype_template, build_category_template,
      	build_selector_template, build_class_template, build_super_template,
      	build_ivar_template, build_ivar_list_template,
      	build_method_list_template, build_method_template):
      	Call create_field_decl() instead of grokfield().
      	(objc_method_parm_type): Do not call groktypename().
      	(generate_descriptor_table): Call start_var_decl() and
      	finish_var_decl() instead of start_decl() and finish_decl().
      	(generate_method_descriptors, build_protocol_initializer,
      	generate_dispatch_tables, build_category_initializer,
      	build_shared_structure_initializer): Do not call groktypename().
      	(generate_protocols): Call start_var_decl() and finish_var_decl()
      	instead of start_decl() and finish_decl(); do not call groktypename().
      	(error_with_ivar): Remove last parameter.
      	(check_ivars): Do not iterate ovar CLASS_RAW_IVARS lists in addition
      	to CLASS_IVARS lists; adjust calls to error_with_ivar().
      	(generate_ivar_lists): Convert one of the initializer elements; do
      	not call groktypename().
      	(get_arg_type_list, start_method_def, gen_method_def): Account for
      	new representation of variable arguments and '...' in Objective-C
      	methods; add Objective-C++ impedance matching code.
      	(is_objc_type_qualifier): Remove function.
      	(adjust_type_for_id_default): Simplify; there is no longer a need to
      	wade through declspecs.
      	(lookup_interface, start_class, continue_class,
      	finish_class, start_method_def, start_protocol, build_method_decl,
      	objc_add_method, add_instance_variable, build_ivar_reference,
      	is_ivar, is_private, get_super_receiver, objc_build_finally_epilogue):
      	Make into static functions.
      	(receiver_is_class_object): Use new IS_CLASS() macro.
      	(objc_build_message_expr): Tweak ObjC++ message argument handling;
      	call objc_finish_message_expr() instead of finish_message_expr().
      	(finish_message_expr): Rename to objc_finish_message_expr(); use
      	OBJC_TYPE_NAME and OBJC_SET_TYPE_NAME macros instead of TYPE_NAME.
      	call gen_type_name() instead of gen_declaration(); call objc_is_id()
      	instead of using IS_ID and IS_CLASS; Use objc_class_name instead of
      	calling get_identifier("Class"); handle CONVERT_EXPRs in receiver.
      	(build_objc_method_call, warn_with_method): Do not call groktypename().
      	(build_ivar_reference): Call convert() instead of clobbering in a
      	type.
      	(hash_init): Initialize string_htab hash table.
      	(add_instance_variable): Simplify parameter list; do not call grokfield();
      	do not populate CLASS_IVARS list.
      	(start_class): Check for the existence of super class, if one was specified.
      	(continue_class): Use CLASS_RAW_IVARS rather than CLASS_IVARS; do not
      	call build_class_template(); adjust call to get_class_ivars(); call
      	build_decl(), pushdecl() and finish_decl() instead of define_decl().
      	(finish_class): Call build_decl(), pushdecl() and finish_decl() instead
      	of define_decl().
      	(add_protocols): Use PROTOCOL_BINFO_ELTS for the tree vector size.
      	(start_protocol): Do not call build_protocol_template(); use
      	PROTOCOL_BINFO_ELTS for the tree vector size.
      	(encode_type_qualifiers): Do not handle the 'const' qualifier here.
      	(encode_pointer): Encode 'const char *' as 'r*', for backwards
      	compatibility.
      	(encode_array): Use HOST_WIDE_INT_PRINT_DEC instead of "%ld".
      	(encode_type): Handle the 'const' qualifier here.
      	(objc_parmlist): New global variable, sued by objc_push_parm and
      	objc_get_parm_info().
      	(objc_push_parm, objc_get_parm_info): New functions.
      	(objc_expr_last): Remove function.
      	(synth_self_and_ucmd_args): For instance methods, use the instance
      	type for 'self'; call objc_push_parm() instead of push_parm_decl().
      	(start_method_def): Do not call push_scope(), declare_parm_level(),
      	pop_scope(), push_parm_decl(), store_parm_decls() or objc_expr_last();
      	just use objc_push_parm() and objc_get_parm_info().
      	(comp_method_with_proto): Remove function.
      	(objc_types_are_equivalent): Strip away indirections before comparing
      	underlying types.
      	(comp_proto_with_proto): Do not call groktypename(); types are no
      	longer in raw declspec format.
      	(objc_start_function): New function.
      	(really_start_method): Call comp_proto_with_proto() instead of
      	comp_method_with_proto(); call objc_start_function() instead of
      	hand-crafting a function declarator.
      	(continue_method_def, objc_expand_function_end): Remove functions.
      	(get_super_receiver): Call objc_get_current_scope() instead of
      	get_current_scope(); reference 'super_class' field (instead of
      	'class').
      	(finish_method_def): Rename to objc_finish_method_definition() and
      	add a function decl parameter; move method encoding call from
      	objc_expand_function_end().
      	(is_complex_decl, adorn_decl, gen_declarator, gen_declspecs,
      	gen_declaration_1): Remove functions.
      	(tmpbuf, RAW_DECLSPEC): Remove.
      	(gen_declaration): Remove second parameter; simplify to deal
      	with TYPE_P nodes instead of raw declspecs.
      	(gen_type_name, gen_type_name_0): New functions.
      	(gen_method_decl): Remove second parameter; call gen_type_name()
      	instead of gen_declaration_1().
      	(dump_interface): Adjust calls to gen_declaration() and
      	gen_method_decl(); do not allocate a separate string buffer.
      	(init_objc): Allocate a larger string buffer to accommodate
      	dump_interface(); adjust call to build_module_descriptor();
      	add call to build_module_initializer_routine() for the GNU
      	runtime.
      	(generate_classref_translation_entry): Do not call start_decl(); call
      	finish_var_decl() instead of finish_decl(); call convert() instead of
      	build_c_cast().
      	* objc-act.h (CLASS_OWN_IVARS): Remove accessor.
      	(CLASS_BINFO_ELTS): Reduce from 6 to 5, now that CLASS_OWN_IVARS is
      	gone.
      	(OCTI_GNU_INIT_DECL, GNU_INIT_decl): New.
      	(OCTI_ELLIPSIS_NODE, objc_ellipsis_node): Remove.
      	(OCTI_ID_ID, id_type, objc_id_id): Rename to OCTI_ID_NAME,
      	objc_object_type and objc_object_name, respectively.
      	(OCTI_CLS_REF, OCTI_CLASS_NAME, objc_class_reference,
      	objc_class_name): New.
      	(IS_CLASS): New macro.
      	(IS_ID, IS_SUPER): Robustify.
      	(OCTI_EXECCLASS_DECL, execclass_decl): New.
      	(finish_file, start_class, continue_class, finish_class,
      	start_method_def, continue_method_def, finish_method_def,
      	start_protocol, finish_protocol, objc_build_throw_stmt,
      	objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
      	objc_build_synchronized_epilogue, objc_build_try_prologue,
      	objc_build_try_epilogue, objc_build_catch_stmt, objc_build_catch_epilogue,
      	objc_build_finally_prologue, objc_build_finally_epilogue,
      	is_ivar, is_private, is_public, add_instance_variable, objc_add_method,
      	get_super_receiver, objc_clear_super_receiver, get_class_ivars_from_name,
      	get_class_reference, get_static_reference, get_object_reference,
      	build_message_expr, finish_message_expr, build_selector_expr,
      	build_ivar_reference, build_keyword_decl, build_method_decl,
      	build_protocol_expr, build_objc_string_object, objc_declare_alias,
      	objc_declare_class, objc_declare_protocols, objc_comptypes,
      	objc_check_decl, build_encode_expr): Remove prototypes.
      	(imp_count, cat_count): Make GGC-aware.
      	(OBJC_SET_TYPE_NAME): New macro.
      
      From-SVN: r87168
      Ziemowit Laski committed
  11. 03 Sep, 2004 1 commit
  12. 02 Sep, 2004 1 commit
    • c-parse.in (primary): Call objc_build_message_expr()... · 57a6af27
      [gcc/ChangeLog]
      2004-09-01  Ziemowit Laski  <zlaski@apple.com>
      
      	* c-parse.in (primary): Call objc_build_message_expr(),
      	objc_build_selector_expr(), objc_build_protocol_expr(),
      	objc_build_encode_expr() and objc_build_string_object() instead of
      	build_message_expr(), build_selector_expr(), build_protocol_expr(),
      	build_encode_expr() and build_objc_string_object(), respectively.
      	(component_decl_list2): Call objc_get_class_ivars() instead of
      	get_class_ivars_from_name().
      	(keyworddecl): Call objc_build_keyword_decl() instead of
      	build_keyword_decl().
      	(receiver): Call objc_get_class_reference() instead of
      	get_class_reference().
      	(reswords): Add blank line before @@ifobjc section, for clarity.
      
      [gcc/objc/ChangeLog]
      2004-09-01  Ziemowit Laski  <zlaski@apple.com>
      
      	* objc-act.c (objc_check_decl): Use OBJC_TYPE_NAME macro instead of
      	TYPE_NAME.
      	(build_objc_string_object): Rename to objc_build_string_object().
      	(get_class_reference): Rename to objc_get_class_reference().
      	(get_class_ivars_from_name): Rename to objc_get_class_ivars().
      	(next_sjlj_build_catch_list, get_super_receiver): Call
      	objc_get_class_reference() instead of get_class_reference().
      	(build_keyword_decl): Rename to objc_build_keyword_decl().
      	(build_message_expr): Rename to objc_build_message_expr().
      	(build_protocol_expr): Rename to objc_build_protocol_expr().
      	(build_selector_expr): Rename to objc_build_selector_expr().
      	(build_encode_expr): Rename to objc_build_encode_expr().
      	* objc-act.h (get_class_ivars_from_name): Rename prototype to
      	objc_get_class_ivars().
      	(get_class_reference): Rename prototype to objc_get_class_reference().
      	(build_message_expr): Rename prototype to objc_build_message_expr().
      	(build_selector_expr): Rename prototype to objc_build_selector_expr().
      	(build_keyword_decl): Rename prototype to objc_build_keyword_decl().
      	(build_protocol_expr): Rename prototype to objc_build_prototype_expr().
      	(build_objc_string_object): Rename prototype to
      	objc_build_string_object().
      
      From-SVN: r86950
      Ziemowit Laski committed
  13. 01 Sep, 2004 1 commit
    • c-common.h (lookup_interface): Remove prototype. · bc095846
      [gcc/ChangeLog]
      2004-09-01  Ziemowit Laski  <zlaski@apple.com>
      
      	* c-common.h (lookup_interface): Remove prototype.
      	(is_class_name): Rename to objc_is_class_name.
      	(lookup_objc_ivar): Rename to objc_lookup_ivar.
      	(get_current_scope): Rename to objc_get_current_scope.
      	* c-decl.c (get_current_scope): Rename to objc_get_current_scope.
      	* c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
      	(yylexname): Call objc_is_class_name() instead of is_class_name().
      	* c-typeck.c (build_external_ref): Call objc_lookup_ivar()
      	instead of lookup_objc_ivar().
      	* stub-objc.c (lookup_interface): Remove stub.
      	(is_class_name): Rename to objc_is_class_name.
      	(lookup_objc_ivar): Rename to objc_lookup_ivar.
      
      [gcc/objc/ChangeLog]
      2004-09-01  Ziemowit Laski  <zlaski@apple.com>
      
      	* objc-act.c (lookup_interface): Make function 'static' and add a
      	local prototype.
      	(objc_check_decl, get_class_reference, objc_declare_alias,
      	objc_declare_class, objc_is_object_ptr): Call objc_is_class_name()
      	instead of is_class_name().
      	(get_super_receiver, objc_clear_super_receiver): Call
      	objc_get_current_scope() instead of get_current_scope().
      	(is_class_name): Rename to objc_is_class_name.
      	(lookup_objc_ivar): Rename to objc_lookup_ivar.
      
      From-SVN: r86879
      Ziemowit Laski committed
  14. 28 Aug, 2004 1 commit
    • c-common.h: Update comments about ObjC/ObjC++ entry points. · e5a002e3
      [gcc/ChangeLog]
      2004-08-28  Ziemowit Laski  <zlaski@apple.com>
      
      	* c-common.h: Update comments about ObjC/ObjC++ entry points.
      	(objc_is_reserved_word): New prototype.
      	(get_current_scope, objc_mark_locals_volatile): Move prototypes to
      	separate section; these are call-backs.
      	* c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
      	ObjC/ObjC++ "@" keywords.
      	* c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
      	prototypes; they already live in c-common.h.
      	* stub-objc.c: Update copyright notice.
      	(objc_is_reserved_word): New stub.
      
      [gcc/cp/ChangeLog]
      2004-08-28  Ziemowit Laski  <zlaski@apple.com>
      
      	* Make-lang.in (CXX_OBJS): Split up into CXX_OBJS and
      	CXX_AND_OBJCXX_OBJS.
      	(CXX_C_OBJS): Include in CXX_AND_OBJCXX_OBJS instead of listing
      	separately on the link line.
      
      [gcc/objc/ChangeLog]
      2004-08-28  Ziemowit Laski  <zlaski@apple.com>
      
      	* objc-act.c (objc_is_reserved_word): New function.
      
      From-SVN: r86702
      Ziemowit Laski committed
  15. 25 Aug, 2004 1 commit
    • tree.h (build_int_cst): New, sign extended constant. · 7d60be94
      	* tree.h  (build_int_cst): New, sign extended constant.
      	(build_int_cstu): New, zero extended constant.
      	(build_int_cst_wide): Renamed from build_int_cst.
      	* tree.c (build_int_cst, build_int_cstu): New.
      	(build_int_cst_wide): Renamed from build_int_cst.
      	(make_vector_type, build_common_tree_nodes,
      	build_common_tree_nodes_2): Adjust build_int_cst calls.
      	* builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
      	expand_builtin_strpbrk, expand_builtin_fputs,
      	build_string_literal, expand_builtin_printf,
      	expand_builtin_sprintf, fold_builtin_classify_type,
      	fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
      	fold_builtin_toascii, fold_builtin_isdigit,
      	simplify_builtin_strstr, simplify_builtin_strpbrk,
      	fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
      	* c-common.c (start_fname_decls, fix_string_type, shorten_compare,
      	DEF_ATTR_INT): Likewise.
      	* c-decl.c (complete_array_type, check_bitfield_type_and_width):
      	Likewise.
      	* c-lex.c (interpret_integer, lex_charconst): Likewise.
      	* c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
      	* c-pretty-print.c (pp_c_integer_constant): Likewise.
      	* c-typeck.c (really_start_incremental_init, push_init_level,
      	set_nonincremental_init_from_string): Likewise.
      	* calls.c (load_register_parameters): Likewise.
      	convert.c (convert_to_pointer): Likewise.
      	coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
      	build_fn_info_type, build_fn_info_value, build_ctr_info_value,
      	build_gcov_info): Likewise.
      	* except.c (init_eh, assign_filter_values): Likewise.
      	* expmed.c (store_fixed_bit_field, extract_bit_field,
      	extract_fixed_bit_field, extract_split_bit_field, expand_shift,
      	expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
      	expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
      	* expr.c (convert_move, emit_group_load, emit_group_store,
      	expand_assignment, store_constructor, store_field,
      	expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
      	fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
      	invert_truthvalue, optimize_bit_field_compare,
      	decode_field_reference, all_ones_mask_p, constant_boolean_node,
      	fold_div_compare, fold, fold_read_from_constant_string,
      	fold_negate_const, fold_abs_const, fold_not_const, round_up,
      	round_down): Likewise.
      	* function.c (assign_parm_setup_block): Likewise.
      	* stmt.c (shift_return_value, expand_case, estimate_case_costs):
      	Likewise.
      	* stor-layout.c (layout_type, initialize_sizetypes,
      	set_min_and_max_values_for_integral_type): Likewise.
      	* tree-chrec.c (chrec_fold_multiply_poly_poly,
      	reset_evolution_in_loop): Likewise.
      	* tree-chrec.h (build_polynomial_chrec): Likewise.
      	* tree-complex.c (build_replicated_const): Likewise.
      	* tree-eh.c (honor_protect_cleanup_actions,
      	lower_try_finally_onedest, lower_try_finally_copy,
      	lower_try_finally_switch): Likewise.
      	* tree-mudflap.c (mf_build_string, mx_register_decls,
      	mudflap_register_call, mudflap_enqueue_constant): Likewise.
      	* tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
      	Likewise.
      	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
      	* tree-ssa-loop-niter.c (number_of_iterations_cond,
      	loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
      	Likewise.
      	* tree-ssa-loop-ivcanon.c (create_canonical_iv,
      	canonicalize_loop_induction_variables): Likewise.
      	* tree-vectorizer.c (vect_create_index_for_array_ref,
      	vect_transform_loop_bound, vect_compute_data_ref_alignment):
      	Likewise.
      
      	* config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
      	alpha_gimplify_va_arg_1): Likewise.
      	* config/arm/arm.c (arm_get_cookie_size): Likewise.
      	* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
      	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
      	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
      	* config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
      	mips_gimplify_va_arg_expr): Likewise.
      	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
      	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
      	add_compiler_branch_island): Likewise.
      	* config/s390/s390.c (s390_va_start): Likewise.
      	* config/sh/sh.c (sh_va_start): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
      	Likewise.
      	* config/xtensa/xtensa.c (xtensa_va_start,
      	xtensa_gimplify_va_arg_expr): Likewise.
      
      	* objc/objc-act.c (build_objc_string_object,
      	build_objc_symtab_template, init_def_list, init_objc_symtab,
      	init_module_descriptor, generate_static_references,
      	build_selector_translation_table, get_proto_encoding,
      	build_typed_selector_reference, build_selector_reference,
      	build_next_objc_exception_stuff,
      	build_method_prototype_list_template, generate_descriptor_table,
      	generate_protocols, build_protocol_initializer,
      	build_ivar_list_template, build_method_list_template,
      	build_ivar_list_initializer, generate_ivars_list,
      	generate_dispatch_table, generate_protocol_list,
      	build_category_initializer, build_shared_structure_initializer,
      	generate_shared_structures, handle_impent,
      	generate_objc_image_info): Likewise.
      
      2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
      
      	* cfglayout.c (duplicate_insn_chain): Remove references to
      	NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
      	* cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
      	* cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
      	* final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
      	and NOTE_INSN_LOOP_CONT.
      	* insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
      	* jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
      	and NOTE_INSN_LOOP_CONT.
      	* loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
      	check_dbra_loop, loop_dump_aux): Remove references to removed notes
      	and fields.
      	* reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
      	* unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
      	references to removed notes and fields.
      	(subtract_reg_term, ujump_to_loop_cont): Remove.
      
      From-SVN: r86544
      Nathan Sidwell committed
  16. 24 Aug, 2004 1 commit
    • c-decl.c (c_init_decl_processing): Adjust build_common_tree_nodes call. · 8c1d6d62
      	* c-decl.c (c_init_decl_processing): Adjust
      	build_common_tree_nodes call.
      	* expmed.c (const_mult_add_overflow_p): Use
      	build_distinct_type_copy.
      	* stor-layout.c (early_type_list): Remove.
      	(layout_type): Don't append to early_type_list.
      	(initialize_sizetypes): Add signed_p argument.
      	(set_sizetype): Overwrite the stub type nodes directly.
      	* tree.c (copy_node_stat): Clear a type's value cache here ...
      	(build_distinct_type): ... not here.
      	(build_common_tree_nodes): Add signed_sizetype argument. Adjust.
      	* tree.h (initialize_sizetypes): Add signed_p argument.
      	(build_common_tree_nodes): Likewise.
      
      	* ada/utils.c (gnat_init_decl_processing): Adjust
      	build_common_tree_nodes call.
      
      	* cp/decl.c (cxx_init_decl_processing): Adjust
      	build_common_tree_nodes call.
      
      	* fortran/f95-lang.c (gfc_init_decl_processing): Adjust
      	build_common_tree_nodes call.
      
      	* java/decl.c (java_init_decl_processing): Adjust
      	initialize_sizetypes call.
      
      	* objc/objc-act.c (get_static_reference): Use
      	build_variant_type_copy.
      	(get_protocol_reference): Likewise.
      	* objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
      
      	* treelang/treetree.c (treelang_init_decl_processing): Adjust
      	build_common_tree_nodes call.
      
      From-SVN: r86493
      Nathan Sidwell committed
  17. 17 Aug, 2004 1 commit
  18. 15 Aug, 2004 2 commits
    • Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h. · 9a4d6480
      [gcc/ChangeLog]
      2004-08-15  Ziemowit Laski  <zlaski@apple.com>
      
             * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
             (c-lang.o): Depend on c-objc-common.h.
             (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
             c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
             * c-lang.c: Include c-objc-common.h.
             (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
             LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
             LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
             LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
             LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
             LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
             LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
             LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
             LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
             LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
             LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
             LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
             LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
             LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
             LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
             LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
             LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
             LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
             LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
             LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
             LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
             LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
             LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
             LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
             Move to c-objc-common.h.
             * c-objc-common.c: Include c-objc-common.h.
             * c-objc-common.h: New file.
      
      [gcc/objc/ChangeLog]
      2004-08-15  Ziemowit Laski  <zlaski@apple.com>
      
             * Make-lang.in (objc/objc-lang.o): Depend on $(C_PRETTY_PRINT_H),
             $(DIAGNOSTIC_H), c-objc-common.h and gtype-objc.h, but not on toplev.h.
             (objc/objc-parse.o): Do not depend on gtype-objc.h.
             * objc-act.c: Do not include gtype-objc.h.
             (finish_file): Rename to objc_finish_file().
             * objc-act.h (finish_file): Update copyright notice; remove prototype.
             * objc-lang.c: Update copyright notice; include diagnostic.h,
             c-objc-common.h, c-pretty-print.h and gtype-objc.h; do not include
             toplev.h.
             (finish_file): New hook routine.
             (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
             LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
             LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
             LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
             LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
             LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
             LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
             LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
             LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
             LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
             LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
             LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
             LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
             LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
             LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
             LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
             LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
             LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
             LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
             LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
             LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
             LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
             LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
             LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
             Move to c-objc-common.h.
      
      From-SVN: r86037
      Ziemowit Laski committed
    • tree.h (build_int_cst): New. · 4a90aeeb
      .:	* tree.h (build_int_cst): New.
      	(build_int_2): Remove.
      	* tree.c (build_int_2): Remove.
      	(build_int_cst): New.
      	(make_vector_type, build_common_tree_nodes,
      	build_common_tree_nodes_2): Use build_int_cst.
      	* builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
      	expand_builtin_strpbrk, expand_builtin_fputs,
      	build_string_literal, expand_builtin_printf,
      	expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
      	fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
      	fold_builtin_isdigit, simplify_builtin_strstr,
      	simplify_builtin_strpbrk, fold_builtin_fputs,
      	simplify_builtin_sprintf): Use build_int_cst.
      	* c-common.c (start_fname_decls, fix_string_type,
      	c_common_nodes_and_builtins, c_init_attributes,
      	shorten_compare): Likewise.
      	* c-decl.c (complete_array_type,
      	check_bitfield_type_and_width): Likewise.
      	* c-lex.c (interpret_integer, lex_charconst): Likewise.
      	* c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
      	* c-pretty-print.c (pp_c_integer_constant): Likewise.
      	* c-typeck.c (really_start_incremental_init, push_init_level,
      	set_nonincremental_init_from_string): Likewise.
      	* calls.c (load_register_parameters): Likewise.
      	* convert.c (convert_to_pointer): Likewise.
      	* coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
      	build_fn_info_type, build_ctr_info_value, build_gcov_info):
      	Likewise.
      	* except.c (init_eh, assign_filter_values, assign_filter_values):
      	Likewise.
      	* expmed.c (store_fixed_bit_field, extract_bit_field,
      	extract_fixed_bit_field, extract_split_bit_field, expand_shift,
      	expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
      	expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
      	* expr.c (convert_move, emit_group_load, emit_group_store,
      	expand_assignment, store_constructor, store_field,
      	expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
      	* fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
      	invert_truthvalue, optimize_bit_field_compare,
      	decode_field_reference, all_ones_mask_p, constant_boolean_node,
      	fold_div_compare, fold, fold_read_from_constant_string,
      	fold_negate_const, fold_abs_const, fold_not_const): Likewise.
      	* function.c (assign_parm_setup_block): Likewise.
      	* stmt.c (shift_return_value, expand_end_case_type,
      	estimate_case_costs): Likewise.
      	* stor-layout.c (layout_type, initialize_sizetypes,
      	set_min_and_max_values_for_integral_type): Likewise.
      	* tree-chrec.c (chrec_fold_multiply_poly_poly,
      	reset_evolution_in_loop): Likewise.
      	* tree-chrec.h (build_polynomial_chrec): Likewise.
      	* tree-complex.c (build_replicated_const): Likewise.
      	* tree-eh.c (honor_protect_cleanup_actions,
      	lower_try_finally_onedest, lower_try_finally_copy,
      	lower_try_finally_switch): Likewise.
      	* tree-mudflap.c (mf_build_string, mx_register_decls,
      	mudflap_register_call, mudflap_enqueue_constant): Likewise.
      	* tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
      	Likewise.
      	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
      	* tree-ssa-loop-niter.c (number_of_iterations_cond,
      	loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
      	Likewise.
      
      	* config/alpha/alpha.c (alpha_initialize_trampoline,
      	alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
      	* config/arm/arm.c (arm_get_cookie_size): Likewise.
      	* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
      	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
      	* config/i860/i860.c (i860_va_start): Likewise.
      	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
      	* config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
      	mips_gimplify_va_arg_expr): Likewise.
      	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
      	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
      	add_compiler_branch_island): Likewise.
      	* config/s390/s390.c (s390_va_start): Likewise.
      	* config/sh/sh.c (sh_va_start): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
      	Likewise.
      	* config/xtensa/xtensa.c (xtensa_va_start,
      	xtensa_gimplify_va_arg_expr): Likewise.
      
      	* objc/objc-act.c (build_objc_string_object,
      	build_objc_symtab_template, init_def_list, init_objc_symtab,
      	init_module_descriptor, generate_static_references,
      	build_selector_translation_table, get_proto_encoding,
      	build_typed_selector_reference, build_selector_reference,
      	build_next_objc_exception_stuff,
      	build_method_prototype_list_template, generate_descriptor_table,
      	generate_protocols, build_protocol_initializer,
      	build_ivar_list_template, build_method_list_template,
      	build_ivar_list_initializer, generate_ivars_list,
      	generate_dispatch_table, generate_protocol_list,
      	build_category_initializer, build_shared_structure_initializer,
      	generate_shared_structures, handle_impent,
      	generate_objc_image_info): Use build_int_cst.
      ada:
      	* cuintp.c (UI_To_gnu): Use build_int_cst..
      	* trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
      	* utils.c (init_gigi_decls): Likewise.
      	* utils2.c (build_call_raise): Likewise.
      cp:
      	* call.c (convert_class_to_reference,
      	build_user_type_conversion_1, convert_like_real,
      	build_java_interface_fn_ref, build_special_member_call): Use
      	build_int_cst.
      	* class.c (build_vtbl_initializer): Likewise.
      	* cp-gimplify.c (cp_gimplify_expr): Likewise.
      	* cvt.c (cp_convert_to_pointer): Likewise.
      	* decl.c (cxx_init_decl_processing, complete_array_type): Likewise.
      	* decl2.c (start_static_initialization_or_destruction,
      	generate_ctor_or_dtor_function): Likewise.
      	* except.c (build_throw): Likewise.
      	* lex.c (cxx_init): Likewise.
      	* mangle.c (write_integer_cst): Likewise.
      	* rtti.c (build_headof, get_tinfo_decl_dynamic,
      	build_dynamic_cast_1, ptr_initializer, ptm_initializer,
      	get_pseudo_ti_init): Likewise.
      	* search.c (get_dynamic_cast_base_type): Likewise.
      	* tree.c (build_shared_int_cst): Likewise.
      fortran:
      	* trans-array.c (gfc_trans_array_constructor_value): Use
      	build_int_cst.
      	* trans-const.c (gfc_build_string_const,
      	gfc_init_constants, gfc_conv_mpz_to_tree,
      	gfc_conv_constant_to_tree): Likewise.
      	* trans-decl.c (gfc_get_symbol_decl): Likewise.
      	* trans-intrinsic.c (gfc_conv_intrinsic_ibits,
      	gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
      	* trans-io.c (add_case, set_error_locus, build_dt,
      	transfer_expr): Likewise.
      	* trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
      	gfc_trans_stop, gfc_trans_character_select): Likewise.
      	* trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
      	* trans.c (gfc_trans_runtime_check): Likewise.
      java:
      	* boehm.c (get_boehm_type_descriptor): Use build_int_cst.
      	* class.c (build_utf8_ref, build_static_field_ref,
      	make_field_value, make_method_value, get_dispatch_table,
      	make_class_data, emit_symbol_table, emit_catch_table): Likewise.
      	* constants.c (get_tag_node,  build_ref_from_constant_pool,
      	build_constants_constructor): Likewise.
      	* decl.c (java_init_decl_processing): Likewise.
      	* expr.c (build_java_array_length_access, build_newarray,
      	expand_java_multianewarray, expand_java_pushc, expand_iinc,
      	build_java_binop, build_field_ref, expand_java_add_case,
      	expand_java_call, build_known_method_ref, build_invokevirtual,
      	build_invokeinterface, build_jni_stub): Likewise.
      	* java-gimplify.c (java_gimplify_new_array_init): Likewise.
      	* jcf-parse.c (get_constant): Likewise.
      	* lex.c (do_java_lex): Likewise.
      	* parse.y (patch_binop, patch_unaryop, patch_cast,
      	build_null_of_type, patch_newarray): Likewise.
      	* resource.c (compile_resource_data): Likewise.
      	* typeck.c (build_prim_array_type): Likewise.
      
      From-SVN: r86022
      Nathan Sidwell committed
  19. 05 Aug, 2004 2 commits
    • objc-act.c (build_objc_string_object): Mark the address expression as constant. · 21149a79
      2004-08-05  Andrew Pinski  <apinski@apple.com>
      
              * objc/objc-act.c (build_objc_string_object): Mark the address
              expression as constant.
      
      From-SVN: r85609
      Andrew Pinski committed
    • re PR c/14516 (-fleading-underscore does not work correctly for file static variables) · 0e6df31e
      2004-08-04  Geoffrey Keating  <geoffk@apple.com>
      
      	PR 14516
      	* c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
      	* c-common.h (make_rtl_for_local_static): Delete.
      	* c-decl.c (shadow_tag_warned): Clean up comment.
      	(finish_decl): Clean up spacing.  Use set_user_assembler_name when
      	appropriate.  Don't pass asmspec to rest_of_decl_compilation.
      	* c-semantics.c (make_rtl_for_local_static): Delete.
      	* expr.c (init_block_move_fn): Use set_user_assembler_name.
      	(init_block_clear_fn): Likewise.
      	* passes.c (rest_of_decl_compilation): Remove asmspec parameter,
      	expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
      	* toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
      	* tree.h (make_decl_rtl): Remove second parameter.
      	(set_user_assembler_name): New.
      	* varasm.c (set_user_assembler_name): New.
      	(make_decl_rtl): Remove second parameter.  Update callers in many
      	files.
      
      Index: cp/ChangeLog
      2004-08-04  Geoffrey Keating  <geoffk@apple.com>
      
      	* decl.c (make_rtl_for_nonlocal_decl): Set DECL_ASSEMBLER_NAME rather
      	than passing it as a parameter to rest_of_decl_compilation.
      	* decl2.c (grokfield): Use set_user_assembler_name.
      
      From-SVN: r85593
      Geoffrey Keating committed
  20. 28 Jul, 2004 1 commit
    • c-common.c (c_common_unsafe_for_reeval): Delete. · 9f63daea
      2004-07-28  Eric Christopher  <echristo@redhat.com>
      
      	* c-common.c (c_common_unsafe_for_reeval): Delete.
      	* c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
      	* c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
      	* calls.c (fix_unsafe_tree): Delete.
      	(expand_call): Delete code which used above.
      	* dojump.c (do_jump): Delete UNSAVE_EXPR case.
      	* expr.c (expand_expr_real_1): Ditto.
      	* fold-const.c (non_lvalue): Ditto.
      	* langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
      	(lhd_unsafe_for_reeval): Ditto.
      	* langhooks.c (lhd_unsafe_for_reeval): Ditto.
      	* langhooks.h (unsafe_for_reeval): Ditto.
      	(unsave_expr_now): Adjust comment.
      	* tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
      	(estimate_num_insns_1): Ditto.
      	* tree-pretty-print.c (dump_generic_node): Ditto.
      	* tree.c (expr_align): Ditto.
      	(unsave_expr): Delete.
      	(unsafe_for_reeval): Ditto.
      	* tree.h (unsafe_for_reeval, unsave_expr): Ditto.
      	* tree.def (UNSAVE_EXPR): Delete.
      	* objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
      
      2004-07-28  Eric Christopher  <echristo@redhat.com>
      
      	* cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
      
      2004-07-28  Eric Christopher  <echristo@redhat.com>
      
      	* lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
      	(java_unsafe_for_reeval): Ditto.
      
      From-SVN: r85276
      Eric Christopher committed
  21. 19 Jul, 2004 1 commit
    • c-tree.h (struct c_expr): Define. · 487a92fe
      	* c-tree.h (struct c_expr): Define.
      	(C_SET_EXP_ORIGINAL_CODE): Remove.
      	(parser_build_binary_op, build_compound_expr): Update prototypes.
      	* c-parse.in (%union): Add exprtype.
      	(FUNC_NAME): Mark as ttype.
      	(expr, expr_no_commas, cast_expr, unary_expr, primary): Change to
      	exprtype.
      	(expr): Update.  Define directly in terms of expr_no_commas
      	instead of using nonnull_exprlist.
      	(nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary,
      	offsetof_member_designator, typespec_nonreserved_nonattr, init,
      	initval, designator, component_declarator,
      	component_notype_declarator, enumerator, array_declarator,
      	condition, exexpr, switch_statement, stmt_nocomp, stmt,
      	nonnull_asm_operands, ivar_declarator, receiver): Update.  Don't
      	set C_EXP_ORIGINAL_CODE.  Use TREE_NO_WARNING for assignments
      	where appropriate.
      	* c-common.h (C_EXP_ORIGINAL_CODE): Remove.
      	* c-common.c (c_common_truthvalue_conversion): Don't check
      	C_EXP_ORIGINAL_CODE.
      	* c-typeck.c (parser_build_binary_op): Use c_expr structures.
      	Don't use C_EXP_ORIGINAL_CODE.
      	(default_conversion, default_function_array_conversion): Don't use
      	C_EXP_ORIGINAL_CODE.  Preserve TREE_NO_WARNING.
      	(internal_build_compound_expr): Merge into build_compound_expr.
      	(build_compound_expr): Take two operands instead of a TREE_LIST.
      	* objc/objc-act.c (get_super_receiver): Update calls to
      	build_compound_expr.
      
      cp:
      	* typeck.c (build_modify_expr, build_x_modify_expr): Set
      	TREE_NO_WARNING on assignments with an operator other than '='.
      
      testsuite:
      	* g++.dg/warn/Wparentheses-1.C, g++.dg/warn/Wparentheses-2.C,
      	gcc.dg/Wparentheses-10.c: New tests.
      	* gcc.dg/Wparentheses-5.c: Remove XFAILs.
      
      From-SVN: r84911
      Joseph Myers committed
  22. 11 Jul, 2004 1 commit
    • langhooks.h (estimate_num_insns, [...]): Remove hooks. · 9dcf6e73
      	* langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block,
      	maybe_build_cleanup, update_decl_after_saving): Remove hooks.
      	* langhooks.c (lhd_clear_binding_stack): Remove.
      	* langhooks-def.h (lhd_clear_binding_stack,
      	LANG_HOOKS_MAYBE_BUILD_CLEANUP,
      	LANG_HOOKS_UPDATE_DECL_AFTER_SAVING,
      	LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL,
      	LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
      	(LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing.
      	* system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
      	LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK,
      	LANG_HOOKS_MAYBE_BUILD_CLEANUP,
      	LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison.
      	* tree.h (poplevel): Don't declare.
      	* c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
      	LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
      	* objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK,
      	LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
      	Remove.
      
      ada:
      	* misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
      	LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
      
      cp:
      	* cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP, LANG_HOOKS_PUSHLEVEL,
      	LANG_HOOKS_POPLEVEL, LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): Remove.
      	* cp-tree.h (poplevel): Declare.
      	(set_block): Remove.
      	* decl.c (set_block): Remove.
      
      fortran:
      	* f95-lang.c (set_block): Remove.
      	(gfc_clear_binding_stack): New.
      	(LANG_HOOKS_CLEAR_BINDING_STACK): Define.
      	(struct binding_level): Remove block_created_by_back_end.
      	(clear_binding_level): Likewise.
      	(poplevel): Don't handle block_created_by_back_end.
      
      java:
      	* java-tree.h (set_block): Remove.
      	* lang.c (java_clear_binding_stack): New.
      	(LANG_HOOKS_CLEAR_BINDING_STACK): Define.
      	* decl.c (struct binding_level): Remove this_block.
      	(clear_binding_level): Likewise.
      	(poplevel): Don't handle this_block.
      	(set_block): Remove.
      
      treelang:
      	* treetree.c (set_block): Remove.
      	(struct binding_level): Remove block_created_by_back_end.
      	(clear_binding_level): Likewise.
      	(tree_code_create_function_initial,
      	tree_code_create_function_wrapup): Call pushlevel and poplevel
      	directly rather than through hooks.
      	(poplevel): Don't handle block_created_by_back_end.
      
      From-SVN: r84499
      Joseph Myers committed
  23. 09 Jul, 2004 1 commit
  24. 08 Jul, 2004 2 commits
    • c-decl.c (static_ctors, [...]): Make static. · 36c1b0de
      	* c-decl.c (static_ctors, static_dtors): Make static.
      	(pop_file_scope): Call c_common_write_pch and
      	cgraph_finalize_compilation_unit here.
      	(build_cdtor): Moved here from c-objc-common.c; simplify.
      	(c_write_global_declarations_1): Clarify comment.
      	(c_write_global_declarations): Close the external scope before
      	doing anything else.  Call build_cdtor, cgraph_optimize, and
      	mudflap_finish_file here.
      	* c-lang.c (finish_file): Don't call c_objc_common_finish_file.
      	Clarify comment.
      	* c-objc-common.c: No need to include cgraph.h.
      	(build_cdtor): Moved to c-decl.c.
      	(c_objc_common_finish_file): Delete.
      	* c-tree.h: Update to match.
      	* objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file.
      	(generate_static_references): Set TREE_USED before calling finish_decl.
      	Eliminate unnecessary dummy declaration.  Call rest_of_decl_compilation
      	on the static_instances_decl.
      
      From-SVN: r84307
      Zack Weinberg committed
    • re PR c/2511 (-pedantic not warning about bitfield overflow) · bc15d0ef
      2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
                  Neil Booth  <neil@daikokuya.co.uk>
      
      	PR c/2511
      	PR c/3325
      	* c-decl.c (finish_struct): Ensure bit-fields are given the
      	correct type.
      	* c-common.c (c_common_signed_or_unsigned_type): For C, require
      	the precision to match as well as the mode.
      	* expr.c (reduce_to_bit_field_precision): New function.
      	(expand_expr_real_1): Reduce expressions of bit-field type to
      	proper precision.
      	* langhooks.h (reduce_bit_field_operations): New hook.
      	* langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
      	Define.
      	* c-lang.c, objc/objc-lang.c
      	(LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
      	* objc/objc-act.c (check_ivars): Convert types to bit-field types
      	before checking.
      	* tree.c (build_nonstandard_integer_type): New function.
      	* tree.h (build_nonstandard_integer_type): New prototype.
      	* tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
      	conversions between integer and boolean types as useless.
      
      testsuite:
      	* gcc.c-torture/execute/bitfld-1.x: Remove.
      	* gcc.c-torture/execute/bitfld-3.c: New test.
      	* gcc.dg/bitfld-2.c: Remove XFAILs.
      
      Co-Authored-By: Neil Booth <neil@daikokuya.co.uk>
      
      From-SVN: r84279
      Joseph Myers committed
  25. 05 Jul, 2004 2 commits
    • langhooks.c: Don't include gt-langhooks.h. · 6de66680
      	* langhooks.c: Don't include gt-langhooks.h.
      	(var_labelno): Delete.
      	(lhd_set_decl_assembler_name): Do not append a distinguishing
      	number to file-scope internal-linkage declarations for the first
      	input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
      	the declaration itself (if at block scope), or its containing
      	TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
      	number.
      
      	* opts.c (cur_in_fname): New global.
      	* opts.h: Declare it.
      	* tree.c: Include opts.h.
      	(make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
      	DECL_UID equal to cur_in_fname.
      	(copy_node_stat): Do not change DECL_UID when copying a
      	TRANSLATION_UNIT_DECL.
      	(build_common_tree_nodes): Adjust next_decl_uid to reserve the
      	range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
      
      	* c-decl.c (c_static_assembler_name): Delete.
      	* c-tree.h (c_static_assembler_name): Delete prototype.
      	* c-lang.c, objc/objc-lang.c: Don't override
      	LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
      
      	* Makefile.in (tree.o): Update dependencies.
      	(GTFILES): Remove langhooks.c.
      
      cp:
      	* decl.c (cxx_init_decl_processing): Call
      	build_common_tree_nodes before creating the global NAMESPACE_DECL.
      
      From-SVN: r84123
      Zack Weinberg committed
    • c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1. · 95b4aca6
      	* c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1.
      	* dwarf2out.c (add_data_member_location_attribute): Check for
      	TREE_BINFO.
      	* tree.c (tree_node_kinds): Add "binfos".
      	(binfo_lang_slots): New.
      	(make_node_stat): Add TREE_BINFO.
      	(make_tree_binfo_stat): New.
      	(tree_node_structure): Add TREE_BINFO.
      	* tree.def (TREE_BINFO): New.
      	* tree.h (REC_OR_UNION_CHECK): Rename to ...
      	(RECORD_OR_UNION_CHECK): ... here.
      	(NOT_RECORD_OR_UNION_CHECK): New.
      	(TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO.
      	(TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for
      	RECORD_OR_UNION_CHECK.
      	(TYPE_BINFO): Use RECORD_OR_UNION_CHECK.
      	(TYPE_LANG_SLOT_1): New.
      	(BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS,
      	BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD,
      	BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust.
      	(BINFO_ELTS): Remove.
      	(BINFO_LANG_SLOT): New.
      	(struct tree_binfo): New.
      	(binfo_lang_slots): Declare.
      	(enum tree_node_structure_enum): Add TS_BINFO.
      	(union tree_node): Add binfo.
      	(make_tree_binfo_stat): Declare.
      	(make_tree_binfo): New.
      	(enum tree_node_kind): Add binfo_kind.
      
      	* cp/call.c (enforce_access): Expect TREE_BINFO.
      	* cp/class.c (binfo_ctor_vtable): Check TREE_BINFO.
      	* cp/cp-tree.h (RECORD_OR_UNION_TYPE_CHECK): Remove.
      	(BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF):
      	Adjust.
      	(BINFO_LANG_ELTS): Remove.
      	(BINFO_LANG_SLOTS): New.
      	(TYPE_RAISES_EXCEPTIONS, ENUM_TEMPLATE_INFO): Use TYPE_LANG_SLOT_1.
      	(CLASSTYPE_TEMPLATE_INFO): Adjust.
      	* cp/pt.c (tsubst): Split TREE_BINFO case from TREE_VEC case.
      	* cp/search.c (lookup_member): Check TREE_BINFO.
      	* cp/semantics.c (perform_or_defer_access_check): Likewise.
      	(check_accessibility_of_qualified_id): Check
      	deferred_access_no_check.
      	* cp/tree.c (make_binfo): Use make_tree_binfo.
      
      	* java/class.c (make_class): Use make_tree_binfo.
      	(set_super_info, add_interface_do): Likewise.
      	* java/java-tree.h (CLASS_HAS_SUPER_FLAG): Expect a BINFO.
      
      	* objc/objc-act.c (start_class, objc_declare_protocols,
      	start_protocols): Use TYPE_LANG_SLOT_1.
      	* objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename
      	to ...
      	(CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here.
      	(CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE,
      	CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS,
      	PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1.
      
      From-SVN: r84110
      Nathan Sidwell committed
  26. 01 Jul, 2004 1 commit
    • re PR c/1027 (slightly misleading printf format warning) · ede1a387
      	PR c/1027
      	* c-lang.c (c_initialize_diagnostics): Move from here ...
      	* c-objc-common.c: ... to here.  Include "c-pretty-print.h".
      	(c_tree_printer): Use pretty-printer to format %T.
      	* c-pretty-print.c (pp_c_specifier_qualifier_list): Include space
      	before '*' if not C++.
      	(pp_c_direct_abstract_declarator): Don't try to print array upper
      	bound for flexible array members.
      	* c-tree.h: Include "diagnostic.h".
      	(c_initialize_diagnostics): Declare.
      	* objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define.
      	* c-format.c (format_type_warning): New function.  Improve
      	diagnostics for incorrect format argument types.
      	(check_format_types): Use it.  Add two parameters.  Use the
      	TYPE_MAIN_VARIANT of wanted_type.
      	(check_format_info_main): Pass new parameters to
      	check_format_types.
      	(struct format_wanted_type): Update comment.
      
      testsuite:
      	* gcc.dg/Wswitch-enum.c, gcc.dg/Wswitch.c,
      	gcc.dg/format/branch-1.c, gcc.dg/format/diag-1.c,
      	gcc.dg/format/multattr-3.c, gcc.dg/format/xopen-1.c: Update
      	expected warning text.
      	* gcc.dg/format/diag-2.c: New test.
      
      From-SVN: r83965
      Joseph Myers committed
  27. 26 Jun, 2004 1 commit
    • c-common.c (c_safe_from_p, [...]): Deleted. · 350fae66
      2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
      
              * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted.
              * c-common.def (DECL_STMT): Remove.
              * c-common.h (DECL_STMT_DECL): Deleted.
              (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL.
              (c_safe_from_p, c_walk_subtrees): Deleted.
              * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR.
              * c-dump.c (c_dump_tree, case DECL_STMT): Deleted.
              * c-gimplify.c (gimplify_decl_stmt): Deleted.
              (gimplify_compound_literal_expr): Use DECL_EXPR_DECL
              and gimplify_and_add.
              (c_gimplify_expr, case DECL_EXPR): New case.
              (c_gimplify_expr, case DECL_STMT): Deleted.
              * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise.
              (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
              * expr.c (safe_from_p, case 's'): New case.
              * gimplify.c (gimplify_decl_expr): New function.
              (gimplify_expr, case DECL_EXPR): New case.
              * tree-inline.c (walk_tree): Walk into all fields of a type and
              decl only if they are in a DECL_EXPR.
              (mark_local_for_remap_r): Minor code cleanup.
              * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else.
              * tree.c (has_cleanups, case DECL_EXPR): New case.
              * tree.def (DECL_EXPR): New code.
              * tree.h (DECL_EXPR_DECL): New macro.
      
              * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
      
      From-SVN: r83721
      Richard Kenner committed
  28. 24 Jun, 2004 2 commits
    • c-decl.c (c_in_iteration_stmt, [...]): Remove. · 506e2710
      	* c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove.
      	(c_break_label, c_cont_label): New.
      	(start_function): Update initializations.
      	(c_push_function_context): Update saves.
      	(c_pop_function_context): Update restores.
      	* c-parse.in: Update expected conflicts.
      	(stmt_count, compstmt_count): Remove.  Remove all updates.
      	(if_prefix, simple_if, do_stmt_start): Remove.
      	(lineno_labeled_stmt): Remove.
      	(lineno_labels): New.
      	(c99_block_lineno_labeled_stmt): Use it.
      	(lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling
      	annotate_with_locus.
      	(select_or_iter_stmt): Replace by ...
      	(condition, if_statement_1, if_statement_2, if_statement,
      	start_break, start_continue, while_statement, do_statement,
      	for_cond_expr, for_incr_expr, for_statement, switch_statement): New.
      	(stmt): Split out ...
      	(stmt_nocomp): ... this.  Use c_finish_bc_stmt, c_finish_goto_label,
      	c_finish_goto_ptr.
      	* c-semantics.c (add_stmt): Don't add line numbers to labels.
      	* c-tree.h: Update prototypes.
      	(struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt;
      	add x_break_label, x_cont_label, x_switch_stack.
      	(c_switch_stack): Declare.
      	* c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New.
      	(c_finish_return): Return the statement.
      	(c_switch_stack): Rename from switch_stack; export.
      	(if_elt, if_stack, if_stack_space, if_stack_pointer): Remove.
      	(c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else,
      	c_finish_else): Remove.
      	(c_finish_if_stmt): Rewrite to perform the entire operation.
      	(c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt,
      	c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
      	c_finish_for_stmt_incr, c_finish_for_stmt): Remove.
      	(c_finish_loop): New.
      	(c_finish_bc_stmt): New.
      	(c_finish_expr_stmt): Return the statement.  Split out...
      	(c_process_expr_stmt): ... this.  Don't add locus to error marks.
      	* gimplify.c (gimplify_cond_expr): Accept NULL type statements.
      	* tree-gimple.c (is_gimple_stmt): Likewise.
      	* tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise.
      	(print_struct_decl): Delete empty compound statement.
      	* objc/objc-act.c (objc_build_throw_stmt): Return the statement.
      	* objc/objc-act.h: Update decl.
      
      From-SVN: r83620
      Richard Henderson committed
    • objc-act.c (build_objc_method_call): Save the lookup_object so we do not call it twice. · c6381771
      2004-06-24  Andrew Pinski  <apinski@apple.com>
      
              * objc-act.c (build_objc_method_call): Save the lookup_object
              so we do not call it twice.
      
      From-SVN: r83618
      Andrew Pinski committed
  29. 23 Jun, 2004 1 commit
    • tree.def (VTABLE_REF): Remove. · 0f59171d
              * tree.def (VTABLE_REF): Remove.
              (OBJ_TYPE_REF): New.
              (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'.
              * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF.
              * fold-const.c (non_lvalue): Likewise.
              * gimplify.c (gimplify_expr): Likewise.
              (gimplify_call_expr): Use is_gimple_call_addr.
              * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
              * langhooks.h (fold_obj_type_ref): New.
              * tree-gimple.c (is_gimple_call_addr): New.
              * tree-gimple.h (is_gimple_call_addr): Declare.
              * tree-inline.c (inlinable_function_p): Fix merge error.
              (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF.
              * tree-pretty-print.c (dump_generic_node): Likewise.
              (print_call_name): Handle OBJ_TYPE_REF.
              * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF.
              * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF.
              * tree.h (OBJ_TYPE_REF_EXPR): New.
              (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New.
              * doc/c-tree.texi (VTABLE_REF): Remove.
              * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF.
      cp/
              * class.c (build_vfn_ref): Take a pointer not object.  Build
              an OBJ_TYPE_REF.
              (cp_fold_obj_type_ref): New.
              * call.c (build_over_call): Update build_vfn_ref call.
              * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
              * cp-tree.h (cp_fold_obj_type_ref): Declare.
      testsuite/
              * g++.dg/opt/devirt1.C: New.
      
      From-SVN: r83531
      Richard Henderson committed
  30. 22 Jun, 2004 1 commit
    • alias.c (adjust_offset_for_component_ref): Use component_ref_field_offset. · 44de5aeb
      	* alias.c (adjust_offset_for_component_ref): Use
      	component_ref_field_offset.
      	* c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
      	* c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
      	(gimplify_decl_stmt): Call gimplify_type_sizes for type.
      	For decl, call gimplify_one_sizepos and use statement list.
      	(gimplify_compound_literal_expr): New arg PRE_P.
      	Add statement to PRE_P list and return DECL.
      	(c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
      	gimplify_compound_literal_expr.
      	* c-tree.h (getdecls): Deleted.
      	* c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
      	(build_array_ref): Add two operands for ARRAY_REF.
      	(build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
      	COMPOUND_LITERAL_EXPR.
      	* coverage.c (tree_coverage_counter_ref): Add new operands
      	for ARRAY_REF.
      	* emit-rtl.c (component_ref_for_mem_expr): Add new operand
      	for COMPONENT_REF.
      	(set_mem_attributes_minus_bitpos): Use array_ref_low_bound
      	and array_ref_element_size.
      	(widen_memory_access):Use component_ref_field_offset.
      	* explow.c (update_nonlocal_goto_save_area): Add two operands
      	for ARRAY_REF.
      	* expr.c (array_ref_element_size, array_ref_low_bound): New functions.
      	(component_ref_field_offset): Likewise.
      	(get_inner_reference): Use them.
      	(expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
      	* fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
      	(fold_read_from_constant_string): Use array_ref_low_bound.
      	Verify that result is a character type.
      	(build_fold_indirect_ref): Add two operands for ARRAY_REF.
      	* function.c (expand_function_start): Likewise.
      	* gimple-low.c (expand_var_p): Delete duplicated line.
      	* gimplify.c: Add static decls for local functions.
      	(cgraph.h): Now included.
      	(create_tmp_var): Remove check for ARRAY_TYPE.
      	(copy_if_shared_r): Look at bounds and sizes of types.
      	(build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
      	(gimplify_exit_expr, shortcut_cond_expr): Likewise.
      	(gimplify_save_expr, gimple_push_cleanup): Likewise.
      	(gimplify_init_constructor): Likewise.
      	WANT_VALUE now bool.
      	If empty list with no result wanted, return GS_UNHANDLED.
      	Add additional operands for ARRAY_REF and COMPONENT_REF.
      	(canonicalize_component_ref): Convert to &array[L].
      	(gimplify_array_ref_to_plus): Use array_ref_element_size and
      	array_ref_lower_bound.
      	(build_addr_expr_with_type, build_addr_expr): New functions.
      	(gimplify_compound_lval): WANT_LVALUE now bool.
      	Major rework to allow handle_component_p and initialize and
      	gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
      	COMPONENT_REF.
      	(gimplify_array_ref): Deleted.
      	(gimplify_self_mod_expr): WANT_VALUE now bool.
      	(gimplify_modify_expr): Gimplify to_p and from_p later.
      	Factor out code into gimplify_modify_expr_rhs and call twice.
      	Move variable-size code earlier and handle PLACEHOLDER_EXPR.
      	(gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
      	(gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
      	(gimplify_expr, case ARRAY_REF): Delete special case.
      	Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
      	IMAGPART, and REALPART the same way.
      	(gimplify_expr, case VIEW_CONVERT_EXPR): New case.
      	(gimplify_expr): Call gimplify_variable_sized_compare if applicable.
      	Call alloc_stmt_list instead of build_empty_stmt.
      	Deal with _REF that's volatile.
      	(gimplify_type_sizes, gimplify_one_sizepos): New functions.
      	(unshare_body, unvisit_body): New functions.
      	(gimplify_body): Call them.
      	* stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
      	* stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
      	* tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
      	* tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
      	like ARRAY_REF.
      	(verify_expr, case ADDR_EXPR): Use handled_component_p.
      	* tree-dfa.c (get_virtual_var): Likewise.
      	* tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
      	New cases to dump new operands; likewise for ARRAY_RANGE_REF.
      	* tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
      	* tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
      	and INDIRECT_REF.
      	(get_base_address): Use handled_component_p.
      	* tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
      	* tree-line.c (walk_tree): Walk more things for types and decls.
      	* tree-mudflap.c (mf_build_check_statement_for): Add new operands
      	for ARRAY_REF and COMPONENT_REF.
      	(mx_xform_derefs_1): Clean up usage of decl sizes.
      	* tree-nested.c (build_addr): Use handled_component_p.
      	(walk_stmts, case CATCH_EXPR): Add missing "break".
      	(get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
      	(finalize_nesting_tree_1): Likewise.
      	(convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
      	and process additional operands.
      	(convert_local_reference): Likewise.
      	* tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
      	ARRAY_RANGE_REF similarly to ARRAY_REF.
      	* tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
      	like RECORD_TYPE.
      	(dump_generic_node, case COMPONENT_REF): Print offset operand.
      	(dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
      	and print lower bound and element size for both.
      	(op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
      	* tree-sra.c (csc_build_component_ref): Add new operand.
      	(scalarize_call_expr): Use get_base_address.
      	* tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
      	(maybe_fold_offset_to_array_ref): Rework to handle input having an
      	ARRAY_REF, refine handling of lower bound, and add new operands
      	for ARRAY_REF.
      	(maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
      	(maybe_fold_stmt_indirect): Only fold *&B to B if types match.
      	(maybe_fold_stmt_addition): Only handle constant lower bound.
      	* tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
      	Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
      	Look at new offset operand of COMPONENT_REF.
      	* tree-ssa.c (set_is_used): Use handled_component_p.
      	* tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
      	(stabilize_reference, case COMPONENT_REF): Likewise.
      	(stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
      	(recompute_tree_invariant_for_addr_expr): Completely rework to
      	be more precise.  Also set TREE_SIDE_EFFECTS.
      	(build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
      	(build2_stat, build3_stat, build4_stat): For references,
      	propagate TREE_THIS_VOLATILE.
      	(get_unwidened): Add new operand for COMPONENT_REF.
      	(get_narrower): Likewise; use host_integerp for DECL_SIZE.
      	* tree.def (COMPONENT_REF): Add new operand.
      	(ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
      	* tree.h (array_ref_element_size, array_ref_low_bound): New decls.
      	(component_ref_field_offset): Likewise.
      	* config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
      	(alpha_gimplify_va_arg): Likewise.
      	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
      	* config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
      	* config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
      	* config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
      	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
      	Likewise.
      	* config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
      	* config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
      	* config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
      	Likewise.
      	(xstormy16_expand_builtin_va_arg): Likewise.
      	* config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
      
      	* cp/call.c (build_vfield_ref): Add new operand for COMPONENT_REF.
      	(build_new_method_call): Likewise.
      	* cp/decl.c (local_variable_p_walkfn): Don't walk into types.
      	* cp/decl2.c (grok_array_decl): Add new operands for ARRAY_REF.
      	(build_anon_union_vars): Add new operand for COMPONENT_REF.
      	* cp/init.c (buld_new): Add new operand for ARRAY_REF.
      	* cp/method.c (do_build_copy_constructor): New op for COMPONENT_REF.
      	(do_build_assign_ref): Likewise.
      	* cp/parser.c (cp_parser_direct_new_declarator): Add new operands
      	for ARRAY_REF.
      	(cp_parser_direct_declarator): Likewise.
      	* cp/pt.c (tsubst): Likewise.
      	(tsubst_copy, tsubst_copy_and_build): Likewise; also add new operand
       	for COMPONENT_REF.
      	* cp/semantics.c (finish_non_static_data_member): Add new operand
      	for COMPONENT_REF.
      	* cp/typeck.c (build_class_member_access_expr): Likewise.
      	(build_class_member_access_expr, finish_class_member_access_expr):
      	Likewise.
      	(build_ptrmemfunc_access_expr): Likewise.
      	(build_array_ref): Add new operands for ARRAY_REF.
      	* cp/typeck2.c (split_nonconstant_init_1): Likewise; COMPONENT_REF too.
      	* cp/tree.c (count_trees_r, no_linkage_helper): Don't walk in types.
      
      	* fortran/f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
      	* fortran/trans-array.c (gfc_conv_descriptor_data): Add operand
      	for COMPONENT_REF.
      	(gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
      	(gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
      	(gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
      	* fortran/trans-common.c (create_common): Likewise.
      	* fortran/trans-expr.c (gfc_conv_component_ref): Likewise.
      	* fortran/trans-io.c (set_parameter_value): Likewise.
      	(set_parameter_ref, set_string, set_flag, io_result): Likewise.
      	(transfer_expr): Likewise.
      	* fortran/trans-decl.c (gfc_trans_auto_character_variable):
      	Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
      	(gfc_simplify_function): New function.
      	(gfc_generate_function-code): Properly handle nested functions.
      	* fortran/trans.c (gfc_build_array_ref): Add two new operands
      	for ARRAY_REF.
      
      	* java/class.c (build_class_ref): Add new operand for COMPONENT_REF.
      	(build_static_field_ref): Likewise and add new operands for ARRAY_REF.
      	* java/constants.c (build_ref_from_constant_pool): Likewise.
      	* java/expr.c (build_java_array_length_access): Likewise.
      	(build_get_class, build_field_ref, build_known_method_ref): Likewise.
      	(invoke_build_dtable, build_invokevirtual): Likewise.
      	(build_invokeinterface, java_expand_expr): Likewise.
      	(emit_init_test_initialization): Likewise.
      	* java/java-gimplify.c (java_gimplify_new_array_init): Likewise.
      	* java/parse.y (make_qualifed_name, build_array_ref): Likewise.
      
      	* objc/ojbc-act.c (generate_static_references): Add additional
      	operands to ARRAY_REF.
      	(generate_strings, build_method_prototype_list_template): Likewise.
      	(generate_protocol_list): Likewise.
      
      From-SVN: r83474
      Richard Kenner committed
  31. 21 Jun, 2004 2 commits
    • c-common.c (verify_sequence_points): Export. · 3a5b9284
              * c-common.c (verify_sequence_points): Export.
              (c_expand_expr_stmt): Move to c-typeck.c.
              * c-common.h (c_expand_expr_stmt): Remove.
              (verify_sequence_points): Declare.
              * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
              * c-parse.in (for_init_stmt, stmt): Likewise.
              * c-tree.h (c_finish_expr_stmt): Declare.
              (c_tree_expr_nonnegative_p): Remove.
              * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
              (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
              (emit_side_effect_warnings): New.
              (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
              (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
              Use emit_side_effect_warnings.
              (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
              * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
              * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
              with void initializer.
              (gimplify_target_expr): Handle void BIND_EXPR initializer.
              * tree-inline.c (estimate_num_insns_1): Fix type lookup for
              INIT_EXPR and MODIFY_EXPR.
              * objc/objc-act.c (build_module_descriptor): Use add_stmt
              instead of c_expand_expr_stmt.
      cp/
              * semantics.c (finish_expr_stmt): Call verify_sequence_points.
      testsuite/
              * gcc.dg/tree-ssa/20030714-1.c: Rename variables to avoid
              merging && to BIT_FIELD_REF.
      
      From-SVN: r83429
      Richard Henderson committed
    • objc-act.h (get_object_reference): Rename to get_protocol_reference. · 5c234cd7
      2004-06-20  David Ayers  <d.ayers@inode.at>
      
      	* objc/objc-act.h (get_object_reference): Rename to
      	get_protocol_reference.
      	(super_type): Rename to objc_super_type.
      	(selector_type): Rename to objc_selector_type.
      	(id_type): Rename to objc_id_type.
      	(instance_type): Rename to objc_instance_type.
      	(protocol_type): Rename to objc_protocol_type.
      	(IS_ID): Update reference to id_type.
      	* objc/objc-act.c (get_object_reference): Rename to
      	get_protocol_reference; add documentation; update references to
      	id_type.
      	(lookup_method_in_protocol_list): Rename class_meth to
      	is_class; add documentation.
      	(finish_message_expr): Rename is_class to class_tree.
      	(synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
      	next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
      	build_next_objc_exception_stuff, get_arg_type_list,
      	build_objc_method_call): Update references to id_type.
      	(synth_module_prologue, build_objc_symtab_template,
      	build_selector_reference_decl, build_selector,
      	build_selector_translation_table, build_typed_selector_reference,
      	get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
      	synth_self_and_ucmd_args): Update references to selector_type.
      	(build_private_template, build_ivar_reference):	Update references
      	to instance_type.
      	(synth_module_prologue, build_protocol_reference,
      	build_protocol_expr, start_protocol): Update references to
      	protocol_type.
      	(synth_module_prologue, get_arg_type_list, build_objc_method_call):
      	Update references to super_type.
      	* c-parse.in: (typespec_nonreserved_nonattr): Update
      	references to get_object_reference.
      	* objc/objc-tree.def: Add C mode identifier sequence.
      
      From-SVN: r83425
      David Ayers committed
  32. 18 Jun, 2004 1 commit
    • c-common.c (flag_objc_sjlj_exceptions): New. · 093c7153
      	* c-common.c (flag_objc_sjlj_exceptions): New.
      	* c-common.h (flag_objc_sjlj_exceptions): Declare.
      	* c-opts.c (c_common_handle_option): Set it.
      	(c_common_post_options): Handle interation of different
      	objective-c exception and runtime switches.
      	* c-decl.c (c_eh_initialized_p): New.
      	(finish_decl): Use it instead of local eh_initialized_p.
      	* c-parse.in (nested_function, notype_nested_function): Record
      	the result of compstmt.
      	(compstmt_or_error): Likewise.
      	(compstmt): Don't add_stmt the result.
      	(stmt): Don't return anything.  Rewrite objc try and sync rules.
      	(objc_try_stmt, objc_catch_list): Remove.
      	(objc_catch_block, objc_finally_block): Remove.
      	(objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
      	(objc_try_catch_clause, objc_finally_clause): New.
      	(objc_try_catch_stmt): Rewrite.
      	* c-tree.h (c_eh_initialized_p): Declare.
      	* c-opt (fobjc-sjlj-exceptions): New.
      	* except.c (output_function_exception_table): Don't call cgraph
      	on non-decls.
      	* objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
      	UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
      	catch_count_stack, exc_binding_stack, if_nesting_count,
      	blk_nesting_count, objc_enter_block, objc_exit_block,
      	objc_declare_variable, val_stack_push, val_stack_pop,
      	objc_build_try_enter_fragment, objc_build_extract_expr,
      	objc_build_try_exit_fragment, objc_build_extract_fragment,
      	objc_build_try_prologue, objc_build_try_epilogue,
      	objc_build_catch_stmt, objc_build_catch_epilogue,
      	objc_build_finally_prologue, objc_build_finally_epilogue,
      	objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
      	objc_build_synchronized_epilogue): Remove.
      	(objc_create_temporary_var, struct objc_try_context, cur_try_context,
      	objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
      	next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
      	next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
      	next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
      	objc_begin_catch_clause, objc_finish_catch_clause,
      	objc_build_finally_clause, objc_finish_try_stmt,
      	objc_build_synchronized): New.
      	(objc_is_object_id, objc_is_class_id): New.
      	(objc_comptypes): Use them.
      	(build_next_objc_exception_stuff): Break NeXT sjlj out from
      	build_objc_exception_stuff.
      	(synth_module_prologue): Update to match.
      	(objc_build_throw_stmt): Use cur_try_context to decide if
      	we're in a @catch.
      	* objc/objc-act.h: Update prototypes.
      	(OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
      testsuite/
              * objc.dg/sync-1.m: New.
              * objc.dg/try-catch-1.m: Don't force next runtime.
              * objc.dg/try-catch-3.m, objc.dg/try-catch-4.m: Likewise.
              * objc.dg/try-catch-2.m: Likewise.  Enable everywhere.  Remove
              shadowed catch clause.
              * objc.dg/try-catch-5.m: New.
      
      From-SVN: r83332
      Richard Henderson committed
  33. 17 Jun, 2004 1 commit
    • c-common.def (COMPOUND_STMT): Remove. · 5882f0f3
              * c-common.def (COMPOUND_STMT): Remove.
              * c-common.c (finish_fname_decls): Don't look through it.
              * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
              * c-common.h (COMPOUND_BODY): Remove.
              (c_common_stmt_codes): Remove COMPOUND_STMT.
              * c-dump.c (c_dump_tree): Likewise.
              * c-gimplify.c (c_gimplify_stmt): Likewise.
              * c-pretty-print.c (pp_c_statement): Likewise.
              * tree.h (DECL_SAVED_TREE): Update commentary.
              * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
              (CASE_LABEL_EXPR): Rename from CASE_LABEL.
              (GOTO_EXPR): Rename from GOTO_STMT.
              (GOTO_FAKE_P): Remove.
              (COMPOUND_STMT): Remove.
              (HANDLER): Update wrt COMPOUND_STMT.
              (STMT_EXPR): Likewise.
              (LABEL_EXPR): Rename from LABEL_STMT.
              (SCOPE_STMT): Remove.
              * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
              through COMPOUND_STMT.
      cp/
              * cp-tree.h (COMPOUND_STMT_TRY_BLOCK, COMPOUND_STMT_BODY_BLOCK): Kill.
              (BIND_EXPR_TRY_BLOCK, BIND_EXPR_BODY_BLOCK): New.
              * cxx-pretty-print.c (pp_cxx_function_definition): Move handling
              of CTOR_INITIALIZER ...
              (pp_cxx_statement): ... here.
              * decl.c (begin_function_body): Don't set COMPOUND_STMT_BODY_BLOCK.
              (finish_function): Use alloc_stmt_list to zap entire function.
              * parser.c (cp_parser_compound_statement): Update commentary.
              * pt.c (tsubst_expr): Use BIND_EXPR instead of COMPOUND_STMT.
              * semantics.c (begin_compound_stmt, finish_compound_stmt): Likewise.
              (finish_stmt_expr): Don't look through COMPOUND_STMT.
      
      From-SVN: r83281
      Richard Henderson committed