Commit Graph

20092 Commits

Author SHA1 Message Date
Nick Clifton 16b6e12048 Ensure that last optimisation level set overrides any previous levels.
From-SVN: r24347
1998-12-16 17:34:48 +00:00
Per Bothner f868ca8f89 jcf-parse.c (get_constant): Set TREE_TYPE for string constants.
�
	* jcf-parse.c (get_constant):  Set TREE_TYPE for string constants.
	(HANDLE_CONSTANTVALUE):  If flag_emit_class_files, call get_constant.

From-SVN: r24346
1998-12-16 09:01:53 -08:00
Tom Tromey 0252081c1a * parse-scan.y (qualified_name): Use correct sprintf format.
From-SVN: r24345
1998-12-16 15:53:13 +00:00
Mark Mitchell 50714e797c class.c (resolve_address_of_overloaded_function): Do conversion to correct type here, rather than ...
* class.c (resolve_address_of_overloaded_function): Do conversion
	to correct type here, rather than ...
	(instantiate_type): Here.
	* cp-tree.h (DECL_TEMPLATE_PARM_P): New macro.
	(DECL_TEMPLATE_TEMPLATE_PARM_P): Use it.
	(decl_template_parm_p): Remove.
	* decl.c (pushdecl): Don't set DECL_CONTEXT for a template
	paramter.
	* lex.c (do_identifier): Use DECL_TEMPLATE_PARM_P.
	(push_inline_template_parms_recursive): Set it.
	(decl_template_parm_p): Remove.
	(check_template_shadow): Use DECL_TEMPLATE_PARM_P.
	(process_template_parm): Set it.

From-SVN: r24344
1998-12-16 15:51:21 +00:00
Dave Brolley 05c32e169c lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with cpplib.
Wed Dec 16 16:33:04 1998  Dave Brolley  <brolley@cygnus.com>
	* objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
	cpplib.
	* cpplib.c (cpp_start_read): If in_fname is not initialized, try to
	initialize it using fname.

From-SVN: r24343
1998-12-16 08:38:33 -05:00
Dave Brolley 6163a7b2f2 lang-specs.h (default_compilers): Pass -MD, -MMD and -MG to cc1plus if configured with cpplib.
Wed Dec 16 16:33:58 1998  Dave Brolley  <brolley@cygnus.com>
	* lang-specs.h (default_compilers): Pass -MD, -MMD and -MG to cc1plus
	if configured with cpplib.

From-SVN: r24342
1998-12-16 08:38:14 -05:00
Dave Brolley ed9c93bf44 lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with cpplib.
Wed Dec 16 16:33:04 1998  Dave Brolley  <brolley@cygnus.com>
	* objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
	cpplib.

From-SVN: r24341
1998-12-16 08:37:08 -05:00
Zack Weinberg 692b872ea0 cpplib.c (do_include): Treat #include_next in the primary source file as #include plus warning.
1998-12-16  Zack Weinberg  <zack@rabi.phys.columbia.edu>
	* cpplib.c (do_include): Treat #include_next in the
	primary source file as #include plus warning.  Treat
	#include_next in a file included by absolute path as an
	error.  fp == CPP_NULL_BUFFER is a fatal inconsistency.

From-SVN: r24340
1998-12-16 08:23:47 -05:00
Kaveh R. Ghazi 36b8337d5c cccp.c: Don't define MIN/MAX anymore.
* cccp.c: Don't define MIN/MAX anymore.
        * cpplib.c: Likewise.
        * machmode.h: Likewise.
        * system.h: Provide definitions for MIN/MAX.

From-SVN: r24339
1998-12-16 09:34:57 +00:00
Jeff Law 93eba43433 Daily bump.
From-SVN: r24338
1998-12-15 17:45:16 -07:00
Zack Weinberg 2d234b4f64 * fix-header.c: Don't define xstrdup here.
From-SVN: r24337
1998-12-15 15:50:27 -07:00
Jeffrey A Law b884a51af9 * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2.
From-SVN: r24336
1998-12-15 15:44:50 -07:00
J"orn Rennecke a07516d393 loop.c (consec_sets_giv): New argument last_consec_insn.
* loop.c (consec_sets_giv): New argument last_consec_insn.
	(strength_reduce): Provide / use it.

From-SVN: r24335
1998-12-15 21:13:42 +00:00
Jeff Law ebc5a9c1d3 Fix dumb thinkos in last change.
From-SVN: r24334
1998-12-15 13:53:34 -07:00
Michael Hayes 35704c4661 loop.h (loop_info): New field 'vtop'.
* loop.h (loop_info): New field 'vtop'.
	* loop.c (check_dbra_loop):  Use loop_info->vtop rather than
	scanning loop for vtop.
	* unroll.c (subtract_reg_term, find_common_reg_term): New functions.
	(loop_iterations): Use them to determine if loop has a constant
 	number of iterations.  Set loop_info->vtop.  Don't subtract
	common reg term from initial_value and final_value if have a
	do-while loop.

From-SVN: r24333
1998-12-15 20:31:18 +00:00
Mark Mitchell c7dda1e388 decl.c (poplevel): Make sure ns_binding is initialized.
1998-12-15  Mark Mitchell  <mark@markmitchell.com>
	* decl.c (poplevel): Make sure ns_binding is initialized.

From-SVN: r24332
1998-12-15 13:59:57 +00:00
Jeffrey A Law 5ba52c2e99 * mn10300.md (bset, bclr): Operand 0 is a read/write operand.
From-SVN: r24331
1998-12-15 06:30:41 -07:00
Jeffrey A Law 9c907d548f mn10200.md (abssf2, negsf2): New expanders.
* mn10200.md (abssf2, negsf2): New expanders.
        * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders.

From-SVN: r24330
1998-12-15 05:53:12 -07:00
Mark Mitchell 1caa11d3a3 decl.c (finish_function): Undo inadvertant change in previous patch.
* decl.c (finish_function): Undo inadvertant change in previous
	patch.

From-SVN: r24329
1998-12-15 12:49:05 +00:00
Nick Clifton ddc54eaa30 Cope with inlining functions which return a multiword CONCAT value
From-SVN: r24328
1998-12-15 11:56:36 +00:00
Zack Weinberg c49445e001 cppalloc.c: Add xstrdup here.
1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
	* cppalloc.c: Add xstrdup here.
	* cpplib.h: Remove savestring prototype.
	* cpplib.c: Remove savestring function. s/savestring/xstrdup/
	  throughout.
	* cppfiles.c: s/savestring/xstrdup/ throughout.

From-SVN: r24327
1998-12-15 06:23:27 -05:00
Zack Weinberg 941e09b65f cpplib.c: Make all directive handlers read their own arguments.
1998-12-14 00:56 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
	* cpplib.c: Make all directive handlers read their own
          arguments.
	  (struct directive): Remove last two arguments from FUNC
          member prototype. Remove `command_reads_line' member
          entirely.
	  (directive_table): Remove initializations of
          command_reads_line flag.  Pretty-print.
	  (eval_if_expression, do_define, do_line, do_include,
          do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef,
          do_else, do_elif, do_sccs, do_assert, do_unassert,
          do_warning): Take only two args.
	  (cpp_define): Call do_define with two args and the text to
	  define stuffed into a buffer.
	  (make_assertion): Call do_assert with two args.
	  (handle_directive): Call do_line with two args. Call
	  kt->func with two args.  Remove command_reads_line
	  processing.
	  (do_define, do_undef, do_error, do_warning, do_pragma,
	  do_sccs): Read the rest of the line here.
	  (do_ident): Gobble rest of line, as cccp does.
	  (cpp_undef): New function.
	  (cpp_start_read): Call cpp_undef instead of do_undef.

From-SVN: r24326
1998-12-15 06:17:06 -05:00
Zack Weinberg 7061aa5a9e cpphash.h (union hash_value): Remove `keydef' member, add a `struct hashnode *aschain' member for #assert.
1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
	* cpphash.h (union hash_value): Remove `keydef' member, add a
          `struct hashnode *aschain' member for #assert.
	  * cpplib.c (struct tokenlist_list, struct
          assertion_hashnode): Delete structure definitions.
          (assertion_install, assertion_lookup, delete_assertion,
          check_assertion, compare_token_lists, reverse_token_list,
          read_token_list, free_token_list): Delete functions.
          (parse_assertion): New function.
	  (cpp_cleanup): Don't destroy the assertion_hashtable.
          (do_assert): Gut and rewrite.  #assert foo (bar) places
          entries for `#foo' and `#foo(bar)' in the macro hash table,
          type T_ASSERT.  The value union's `aschain' member is used
          to chain all answers for a given predicate together.
          (do_unassert): Also rewritten.  Take an un-asserted
          answer off the chain from its predicate and call
          delete_macro on the hashnode, or walk a predicate chain
          calling delete_macro on all the entries.
          (cpp_read_check_assertion): Simply call parse_assertion to
          get the canonical assertion name, and look that up in the
          hash table.
	* cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab):
 	Removed.
	* cpphash.c (install): Use bcopy instead of an explicit loop
          to copy the macro name.
	* cppexp.c (cpp_lex): Convert the result of
          cpp_read_check_assertion to a `struct operation' directly;
          don't go through parse_number.

From-SVN: r24325
1998-12-15 06:09:16 -05:00
J"orn Rennecke 4b259e3fd8 loop.h (struct induction): Delete times_used member.
* loop.h (struct induction): Delete times_used member.
	* loop.c (n_times_set): Rename to set_in_loop.  Changed all users.
	(n_times_used): Rename to n_times_set.  Changed all users.
	(scan_loop): Free reg_single_usage before strength reduction.
	(record_giv, combine_givs): Remove handling of times_used member.
	(combine_givs_used_once): Rename to:
	(combine_givs_used_by_other) .  Changed all callers.

From-SVN: r24324
1998-12-15 10:31:52 +00:00
Tom Tromey 06d84d6935 gjavah.c (print_field_info): Changed how most negative number is printed.
* gjavah.c (print_field_info): Changed how most negative number is
	printed.

From-SVN: r24323
1998-12-15 09:44:14 +00:00
Alexandre Oliva 68b048138c * g++.old-deja/g++.other/conv5.C: New test.
From-SVN: r24320
1998-12-15 06:47:22 +00:00
Jason Merrill 5f2f160cab dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P instead of TREE_CODE_CLASS == 't'.
* dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
	instead of TREE_CODE_CLASS == 't'.
	(gen_type_die): Likewise.
	(scope_die_for): Ignore FUNCTION_TYPE "scopes".

From-SVN: r24319
1998-12-14 20:48:48 -05:00
Jeff Law e291f368db Daily bump.
From-SVN: r24318
1998-12-14 17:45:07 -07:00
Per Bothner 659ad4501b parse.y (fold_constant_for_init): New function.
* parse.y (fold_constant_for_init):  New function.
	(resolve_expression_name):  Don't replace static final
 	constant-initialized fields by its value.
	(java_complete_lhs):  New.  Same as java_complete_tree, except does
	not replace static final constant-initialized fields by their values.
	(register_fields):  If there is an initializer, set DECL_INITIAL and
	MODIFY_EXPR_FROM_INITIALIZATION_P.
	(java_complete_tree):  For MODIFY_EXPR, use java_complete_lhs for lhs.
	Only call patch_initialized_static_field if
	MODIFY_EXPR_FROM_INITIALIZATION_P.
	(patch_initialized_static_field):  If not valid constant, clear
	DECL_INITIAL.
	* parse.y (lookup_field_wrapper):  Fix thinko.
	* parse.y (java_complete_tree):  In EXPR_WITH_FILE_LOCATION,
	set and restore global lineno.

From-SVN: r24317
1998-12-14 11:22:30 -08:00
Per Bothner 5b09b33e5f parse.y (fold_constant_for_init): New function.
d
	* parse.y (fold_constant_for_init):  New function.
	(resolve_expression_name):  Don't replace static final
 	constant-initialized fields by its value.
	(java_complete_lhs):  New.  Same as java_complete_tree, except does
	not replace static final constant-initialized fields by their values.
	(register_fields):  If there is an initializer, set DECL_INITIAL and
	MODIFY_EXPR_FROM_INITIALIZATION_P.
	(java_complete_tree):  For MODIFY_EXPR, use java_complete_lhs for lhs.
	Only call patch_initialized_static_field if
	MODIFY_EXPR_FROM_INITIALIZATION_P.
	(patch_initialized_static_field):  If not valid constant, clear
	DECL_INITIAL.
	* parse.y (lookup_field_wrapper):  Fix thinko.
	* parse.y (java_complete_tree):  In EXPR_WITH_FILE_LOCATION,
	set and restore global lineno.

From-SVN: r24316
1998-12-14 11:22:28 -08:00
Jim Wilson c1c7db89c0 Eliminate compiler warnings.
* real.c (endian): Disable last change unless
	HOST_BITS_PER_WIDE_INT is greater than 32.

From-SVN: r24315
1998-12-14 08:30:48 -08:00
Mark Mitchell d8f8dca15f class.c (pushclass): Tweak handling of class-level bindings.
* class.c (pushclass): Tweak handling of class-level bindings.
	(resolve_address_of_overloaded_function): Update pointer-to-member
	handling.
	(instantiate_type): Likewise.
	* cvt.c (cp_convert_to_pointer): Likewise.
	* decl.c (pop_binding): Take the DECL to pop, not just the name.
	Deal with `struct stat' hack.
	(binding_level): Add to documentation.
	(push_binding): Clear BINDING_TYPE.
	(add_binding): New function.
	(push_local_binding): Use it.
	(push_class_binding): Likewise.
	(poplevel): Adjust calls to pop_binding.
	(poplevel_class): Likewise.
	(pushdecl): Adjust handling of TYPE_DECLs; add bindings for hidden
	declarations to current binding level.
	(push_class_level_binding): Likewise.
	(push_overloaded_decl): Adjust handling of OVERLOADs in local
	bindings.
	(lookup_namespace_name): Don't crash when confronted with a
	TEMPLATE_DECL.
	(lookup_name_real): Do `struct stat' hack in local binding
	contexts.
	(build_ptrmemfunc_type): Adjust documentation.
	(grokdeclarator): Don't avoid building real array types when
	processing templates unless really necessary.
	(finish_method): Adjust calls to pop_binding.
	* decl2.c (reparse_absdcl_as_expr): Recursively call ourselves,
	not reparse_decl_as_expr.
	(build_expr_from_tree): Deal with a template-id as the function to
	call in a METHOD_CALL_EXPR.
	* pt.c (convert_nontype_argument): Tweak pointer-to-member handling.
	(maybe_adjust_types_For_deduction): Don't do peculiar things with
	METHOD_TYPEs here.
	(resolve_overloaded_unification): Handle COMPONENT_REFs.  Build
	pointer-to-member types where necessary.
	* tree.c (build_cplus_array_type_1): Don't avoid building real
	array types when processing templates unless really necessary.
	(build_exception_variant): Compare the exception lists correctly.

From-SVN: r24314
1998-12-14 15:35:40 +00:00
Tom Tromey 11b8962251 gjavah.c (print_field_info): If value to print is the smallest value of its size...
* gjavah.c (print_field_info): If value to print is the smallest
	value of its size, then print as hex to avoid later warnings from
	C++ compiler.

From-SVN: r24313
1998-12-14 15:32:49 +00:00
Mark Mitchell a5c23b031d Update test
From-SVN: r24312
1998-12-14 15:11:43 +00:00
Andrew MacLeod 3167de5b8b output.h (force_data_section): New prototype.
* output.h (force_data_section): New prototype.
	* varasm.c (force_data_section): New function to force the
	data section, regardless of what in_section thinks.
	* dwarf2out.c (output_call_frame_info): Call force_data_section
	since varasm may not realize we've changes sections.

From-SVN: r24311
1998-12-14 14:19:48 +00:00
Nick Clifton 80599fd90c Delete REG_RETVAL and REG_LIBCALL notes after completeing reload
From-SVN: r24310
1998-12-14 14:13:26 +00:00
Tom Tromey 8c2dfb32b7 gjavah.c (decompile_method): Decompile `return null'.
* gjavah.c (decompile_method): Decompile `return null'.
	(process_file): Generate `#pragma interface'.
	(method_declared): New global.
	(print_method_info): Set it.
	(HANDLE_CODE_ATTRIBUTE): Only print it method_declared set.
	(print_method_info): Handle abstract methods.

From-SVN: r24309
1998-12-14 11:25:19 +00:00
Nick Clifton 9fe3461ee7 Fix typo.
From-SVN: r24308
1998-12-14 09:35:58 +00:00
Kaveh R. Ghazi 11a0bb74cd choose-temp.c: Don't check IN_GCC anymore.
* choose-temp.c: Don't check IN_GCC anymore.
        * floatformat.c (floatformat_from_double): Use `const', not `CONST'.
        * memchr.c (memchr): Likewise.
        * memcpy.c (memcpy): Likewise.
        * memmove.c (memmove): Likewise.
        * mkstemp.c: Don't check IN_GCC anymore.
        * pexecute.c: Likewise.
        * splay-tree.c: Likewise.
        * strchr.c (strchr): Use `const', not `CONST'.
        * strrchr.c (strrchr): Likewise.
        * strtol.c (strtol): Likewise.
        * strtoul.c (strtoul): Likewise.

From-SVN: r24307
1998-12-14 07:01:03 +00:00
Kaveh R. Ghazi 625c729b51 demangle.h: Don't check IN_GCC anymore.
* demangle.h: Don't check IN_GCC anymore.
       * splay-tree.h: Likewise.

From-SVN: r24306
1998-12-14 06:55:07 +00:00
Jeff Law 242f64bbd9 Daily bump.
From-SVN: r24305
1998-12-13 17:45:02 -07:00
Jeff Law 5f7d3786ea rtl.h (multiple_sets): Fix prototype.
* rtl.h (multiple_sets): Fix prototype.
        * rtlanal.c (multiple_sets): Fix return type.

From-SVN: r24304
1998-12-13 17:42:39 -07:00
Jeffrey A Law 93e0dfe152 rtl.h (multiple_sets): Fix prototype.
�
        * rtl.h (multiple_sets): Fix prototype.
        * rtlanal.c (multiple_sets): Fix return type.

From-SVN: r24303
1998-12-13 17:42:38 -07:00
Jason Merrill de27890511 new
From-SVN: r24302
1998-12-13 13:56:43 -05:00
Jason Merrill ac31b8d94c regen
From-SVN: r24301
1998-12-13 13:55:48 -05:00
Per Bothner ba02c53a1e parse.y (patch_method_invocation): If class_decl is null (e.g.
* parse.y (patch_method_invocation):  If class_decl is null
	(e.g. an array type), use original type.
	* parse.y (check_thrown_exceptions):  Temporary hack to suppress
	errors about uncaught exception from clone (of array, specifically).

From-SVN: r24300
1998-12-13 09:51:06 -08:00
Per Bothner 59e4a38e81 parse.y (patch_method_invocation): If class_decl is null (e.g.
d
	* parse.y (patch_method_invocation):  If class_decl is null
	(e.g. an array type), use original type.
	* parse.y (check_thrown_exceptions):  Temporary hack to suppress
	errors about uncaught exception from clone (of array, specifically).

From-SVN: r24299
1998-12-13 09:51:04 -08:00
Per Bothner 3e78f871ac parse.y (patch_method_invocation): If class_decl is null (e.g.
�
	* parse.y (patch_method_invocation):  If class_decl is null
	(e.g. an array type), use original type.
	* parse.y (check_thrown_exceptions):  Temporary hack to suppress
	errors about uncaught exception from clone (of array, specifically).

From-SVN: r24298
1998-12-13 09:51:02 -08:00
Tom Tromey cb975f38fb gjavah.c (decompile_method): Handle all types of `return' opcode.
* gjavah.c (decompile_method): Handle all types of `return'
	opcode.  Decompile `return this' and `return'.
	(method_access): New global.
	(print_method_info): Set it.
	(decompile_method): Don't decompile a synchronized method.

From-SVN: r24297
1998-12-13 15:24:48 +00:00
Mark Mitchell f181d4aea0 cp-tree.def (CPLUS_BINDING): Update documentation.
* cp-tree.def (CPLUS_BINDING): Update documentation.
	* cp-tree.h (LOCAL_BINDING_P): New macro.
	(lang_identifier): Rename local_value to bindings.
	(tree_binding): Make `scope' of type `void*', not `tree'.
	(BINDING_SCOPE): Update documentation.
	(IDENTIFIER_LOCAL_VALUE): Remove.
	(IDENTIFIER_CLASS_VALUE): Document.
	(IDENTIFIER_BINDING): New macro.
	(IDENTIFIER_VALUE): Likewise.
	(TIME_IDENTIFIER_TIME): Likewise.
	(TIME_IDENTIFIER_FILEINFO): Likewise.
	(IMPLICIT_TYPENAME_P): Likewise.
	(set_identifier_local_value): Remove.
	(push_local_binding): New function.
	(push_class_binding): Likewise.
	* class.c (pushclass): Update comments; use push_class_binding.
	* decl.c (set_identifier_local_value_with_scope): Remove.
	(set_identifier_local_value): Likewise.
	(push_binding): New function.
	(pop_binding): Likewise.
	(binding_level): Update documentation.  Remove shadowed.
	(BINDING_LEVEL): New macro.
	(free_binding_nodes): New variable.
	(poplevel): Adjust for new name-lookup scheme.  Don't mess up
	BLOCK_VARs when doing for-scope extension.  Remove effectively
	dead code.
	(pushlevel_class): Tweak formatting.
	(poplevel_class): Adjust for new name-lookup scheme.
	(print_binding_level): Likewise.
	(store_bindings): Likewise.
	(pushdecl): Likewise.
	(pushdecl_class_level): Likewise.
	(push_class_level_binding): Likewise.
	(push_overloaded_decl): Update comments.  Adjust for new
	name-lookup scheme.
	(lookup_name_real): Likewise.
	(lookup_name_current_level): Likewise.
	(cp_finish_decl): Likewise.
	(require_complete_types_for_parms): Likewise.  Remove misleading
	#if 0'd code.
	(grok_parms): Likewise.  Don't call
	require_complete_types_for_parms here.
	(grok_ctor_properties): Don't treat templates as copy
	constructors.
	(grop_op_properties): Or as assignment operators.
	(start_function): Document.  Adjust for new name-lookup scheme.
	(finish_function): Likewise.
	* decl2.c (do_local_using_decl): Use push_local_binding.
	* lex.c (begin_definition_of_inclass_inline): New function, split
	out from ...
	(do_pending_inlines): Here, and ...
	(process_next_inline): Here.
	(get_time_identifier): Use TIME_IDENTIFIER_* macros.
	(init_filename_times): Likewise.
	(extract_interface_info): Likewise.
	(ste_typedecl_interface_info): Likewise.
	(check_newline): Likewise.
	(dump_time_statistics): Likewise.
	(handle_cp_pragma): Likewise.
	(do_identifier): Adjust for new name-lookup scheme.
	* parse.y (function_try_block): Return ctor_initializer_opt value.
	(fndef): Use it.
	(fn.defpen): Pass appropriate values to start_function.
	(pending_inline): Use functor_try_block value, and pass
	appropriate values to finish_function.
	* pt.c (is_member_template): Update documentation; remove handling
	of FUNCTION_DECLs.  As per name, this function should deal only in
	TEMPLATE_DECLs.
	(decl_template_parm_p): Change name of olddecl parameter to decl.
	(check_template_shadow): Adjust for new name-lookup scheme.
	(lookup_template_class): Likewise.
	(tsubst_decl): Tweak so as not to confuse member templates with
	copy constructors and assignment operators.
	(unify): Handle UNION_TYPEs.
	* ptree.c (print_lang_identifier): Adjust for new name-lookup scheme.
	(lang_print_xnode): Adjust for new name-lookup scheme.
	* typeck.c (mark_addressable): Likewise.
	(c_expand_return): Likewise.

From-SVN: r24296
1998-12-13 14:46:07 +00:00