Commit Graph

19480 Commits

Author SHA1 Message Date
Jason Merrill
e15a4d0dc0 class.c (instantiate_type): Don't consider templates for a normal match.
* class.c (instantiate_type): Don't consider templates for a normal
	match.

From-SVN: r23412
1998-10-28 16:02:49 -05:00
Jason Merrill
2455f26fc1 class.c (finish_struct_1): Don't complain about non-copy assignment ops in union members.
* class.c (finish_struct_1): Don't complain about non-copy
	assignment ops in union members.
	* class.c (build_vtable): Don't pass at_eof to import_export_vtable.
	(prepare_fresh_vtable): Likewise.
	(finish_struct_1): Don't call import_export_class.
	* decl2.c (finish_vtable_vardecl): Do import/export stuff.
	(finish_prevtable_vardecl): Lose.
	(finish_file): Don't call it.
	* pt.c (instantiate_class_template): Likewise.

From-SVN: r23410
1998-10-28 15:29:09 -05:00
Jeffrey A Law
5916476fda Makefile.in (c-common.o): Depend on c-pragma.h.
* Makefile.in (c-common.o): Depend on c-pragma.h.  Use $(RTL_H) instead
        of rtl.h.

From-SVN: r23409
1998-10-28 13:08:34 -07:00
Kaveh R. Ghazi
829245be1b Warning fixes:
* gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
        structure which has exactly the members provided by EXTRA_SPECS.
        Xmalloc() the real `extra_specs', and initialize it from this
        intermediate structure.
        * alpha.h (EXTRA_SPECS): Revert change for missing initializers.
        * mips.h  (EXTRA_SPECS): Likewise.
        * sparc.h (EXTRA_SPECS): Likewise.

From-SVN: r23406
1998-10-28 18:00:53 +00:00
Andreas Schwab
b5bd3b3c46 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
        * function.c (purge_addressof_1): Instead of aborting when a
        bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
        work just put the ADDRESSOF on stack.  Otherwise remember all such
        successfull replacements, so that exactly the same replacements
        can be made on the REG_NOTEs.  Remove the special case for CALL
        insns again.
        (purge_addressof_replacements): New variable.
        (purge_addressof): Clear it at end.

From-SVN: r23405
1998-10-28 08:46:46 -08:00
Jim Wilson
0a4be913a4 Fix DWARF1/C++ abort with member function in class nested in another function.
* dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
	if pending_types is non-zero.
	(dwarfout_finish): Verify pending_types is zero before finishing.

From-SVN: r23404
1998-10-28 06:09:31 -08:00
Alexandre Petit-Bianco
22eed1e678 class.c (layout_class): Don't mangle <finit>, produce __finit<class> instead.
Wed Oct 28 08:03:31 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
	* class.c (layout_class): Don't mangle <finit>, produce
 	__finit<class> instead. Don't verify artificial methods.
	* decl.c (finit_identifier_node): New declared global.
	(init_decl_processing): finit_identifier_node initialized.
	* java-tree.def (CONDITIONAL_EXPR): New Java tree code.
	* java-tree.h (finit_identifier_node): Declared as extern.
	(struct lang_decl): New field called_constructor.
	(DECL_CONSTRUCTOR_CALLS): Access macro to called_constructor.
	(CLASS_HAS_FINIT_P): New macro.
	(CALL_CONSTRUCTOR_P): Leading comment changed. Macro now checks
 	explicit constructor invocation.
	(CALL_EXPLICIT_CONSTRUCTOR_P, CALL_THIS_CONSTRUCTOR_P,
 	CALL_SUPER_CONSTRUCTOR_P): New macros.
	(write_classfile): Added prototype.
	* jcf-parse.c (jcf_parse_source): Parse and remember for
 	generation if the file was seen on the command line.
	(parse_source_file): Don't write the class file here.
	(yyparse): Loop on files rewritten. Set current_jcf.
	(parse_zip_file_entries): Parse class file only if it was found.
	* lang.c (init_parse): Don't open command line provided filename
 	here.
	(lang_parse): Don't set main_jcf anymore.
	* parse.h (ABSTRAC_CHECK): Capitalized arguments.
	(JCONSTRUCTOR_CHECK): New macro.
	(JBSC_TYPE_P): New macro.
	(IN_TRY_BLOCK_P, EXCEPTIONS_P): Fixed leading comment.
	(COMPLETE_CHECK_OP_2): New macro.
	(struct parse_ctxt): New field explicit_constructor_p.
	(check_class_interface_creation): Fixed prototype indentation.
	(patch_method_invocation_stmt): Prototype reflects added argument.
	(patch_invoke): Likewise.
	(complete_method_declaration, build_super_invocation,
 	verify_constructor_circularity,
 	build_this_super_qualified_invocation, get_printable_method_name,
 	patch_conditional_expr, maybe_generate_finit, fix_constructors,
 	verify_constructor_super, create_artificial_method,
 	start_artificial_method_body, end_artificial_method_body,
 	generate_field_initialization_code): New function prototypes.
	* parse.y: Fixed leading comment
	(constructor_header:, constructor_body:, block_end:): Rules tagged
 	<node>.
	(type_declaration:): Call maybe_generate_finit.
	(method_declaration:): Action for method_body: placed in new
 	function complete_method_declaration, called here.
	(constructor_declaration:): Defined actions. Removed leading
 	FIXME.
	(constructor_header:): New rule with action.
	(constructor_body:): Rule rewritten using block_begin: and
 	block_end:. Defined actions.
	(constructor_declarator:, explicit_constructor_invocation:):
 	Defined actions.
	(block:): Use new rules block_begin: block_end:.
	(block_begin:, block_end:): New rules and actions.
	(block_statements:): Fixed error message for explicit
 	constructors.
	(method_invocation:): Call build_this_super_qualified_invocation
 	if primary is `this' or `super' was seen.
	(conditional_expression:): Action defined.
	(extra_ctxp_pushed_p): New static global flag.
	(java_parser_context_save_global): Create parser context if
 	necessary. Use extra_ctxp_pushed_p to remember it.
	(java_parser_context_restore_global): Pop extra parser context if
 	one exists.
	(build_array_from_name): Array on primitive types are marked
 	loaded.
	(register_fields): Restore new name in field initializer
 	expression if type was altered. Non static fields initialized upon
 	declaration marked initialized.
	(maybe_generate_finit): New function.
	(maybe_generate_clinit): Use create_artificial_method,
 	start_artificial_method_body, end_artificial_method_body. Generate
 	debug info for enclosed initialization statements.
	(method_header): Fixed leading comment. Check constructor
 	flags. Detect constructor declarations and set DECL_CONSTRUCTOR_P
 	accordingly.
	(complete_method_declaration, constructor_circularity_msg,
 	verify_constructor_circularity): New functions.
	(get_printable_method_name): New function.
	(check_method_redefinition): Don't rename <finit> methods. Fix
 	declared constructor names. Error message for
 	constructors modified.
	(java_check_regular_methods): Local variable seen_constructor
 	renamed saw_constructor. Skip verification on constructors. Create
 	default constructor with create_artificial_method.
	(java_check_methods): Removed unnecessary empty line.
	(create_artificial_method, start_artificial_method_body,
 	end_artificial_method_body): New functions.
	(java_layout_classes): Changed leading comment. Reverse fields
 	list if necessary. Always layout java.lang.Object if being
 	defined.
	(java_complete_expand_methods): Verify constructor circularity.
	(java_complete_expand_method): Call fix_constructor on
 	constructors.  Local variable no_ac_found removed. Restore
 	bindings if method body expansion failed.
	(fix_constructors, verify_constructor_super,
 	generate_field_initialization_code): New function.
	(java_expand_classes): Fixed leading comment. Write class file
 	here.
	(resolve_expression_name): Check for illegal instance variable
 	usage within the argument scope of an explicit constructor
 	invocation.
	(resolve_qualified_expression_name): Pass extra from_super flag
 	when invoking patch_method_invocation_stmt. New case for
 	conditional expression when used as a primary. Check for error
 	when acquiring super.
	(patch_method_invocation_stmt): Added extra argument super. New
 	local variable is_static_flag. Set class_to_search according to
 	the nature of the constructor invocation. Don't add `this'
 	argument when expanding NEW_CLASS_EXPR. Check for illegal method
 	invocation within the argument scope of explicit constructor
 	invocation. Set is_static according to is_static_flag. Provide
 	extra `super' argument to patch_invoke invocation.
	(patch_invoke): New argument from_super. Loop on arguments
 	indentation fixed. Pass from_super to invocation_mode. New switch
 	case INVOKE_SUPER. Fixed error message in switch default case.
  	Don't use CALL_CONSTRUCTOR_P but rather a test on the tree node
 	value.
	(invocation_mode): Return INVOKE_SUPER mode when appropriate.
	(lookup_method_invoke): Fixed prototypes in candidates list. Error
 	message takes constructors into account.
	(find_applicable_accessible_methods_list): Fixed indentation.
	(qualify_ambiguous_name): Take explicit constructor invocation
 	into account. Deal with a conditional expression as a primary to
 	a method call.
	(java_complete_tree): Added local wfl_op3. New CONDITIONAL_EXPR
 	case. Added extra argument to patch_method_invocation_stmt.
 	Register calls made to explicit constructor `this'. Don't call
 	save_expr in ARRAY_REF case when emitting class files. Check for
 	illegal use of this when expanding explicit constructor invocation
 	arguments.
	(complete_function_arguments): Set and reset parser context
 	explicit_constructor_p field value when appropriate.
	(build_super_invocation, build_this_super_qualified_invocation):
 	New functions.
	(patch_assignment): Fixed typo.
	(patch_unaryop): Check on final fields occurs only when a decl
 	exits.
	(patch_return): Take constructors into account.
	(patch_conditional_expr): New function.
	* typeck.c (build_java_signature): Removed unnecessary empty line.
This patch implements the conditional operator, fixes the super
invokation mode, implements most of what is required for constructors
and changes the way source files are handled by the front-end.

From-SVN: r23403
1998-10-28 05:06:17 -08:00
Jason Merrill
a05273d4c8 revert: pt.c (convert_nontype_argument): Tell instantiate_type to complain.
Revert
	* pt.c (convert_nontype_argument): Tell instantiate_type to complain.
	Do complain about overload resolution producing a non-public fn.
Fixes g++.pt/explicit75.C

From-SVN: r23402
1998-10-28 06:46:03 -05:00
Jason Merrill
41cdcc1087 new
From-SVN: r23401
1998-10-28 06:44:23 -05:00
Jason Merrill
c98927faa9 fix
From-SVN: r23400
1998-10-28 06:40:53 -05:00
Jason Merrill
5aa9767643 up
From-SVN: r23399
1998-10-28 06:40:44 -05:00
Nick Clifton
2b28d92ef6 Add code written by rth to generate use shifts to perform an extension if no
suitable extend patterns can be found.

From-SVN: r23398
1998-10-28 10:30:46 +00:00
Bernd Schmidt
ed396e6800 regclass.c (renumber, [...]): New static variables, moved out of allocate_reg_info.
* regclass.c (renumber, regno_allocated): New static variables, moved
        out of allocate_reg_info.
        (allocate_reg_info): Move these two variables outside the function.
        Move code to free memory into new function free_reg_info.
        (free_reg_info): New function, broken out of allocate_reg_info.
        * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info.
        * rtl.h (allocate_reg_info): Don't declare.
        (free_reg_info): Declare.

From-SVN: r23397
1998-10-28 03:22:48 -07:00
Jeffrey A Law
e626b8402c * Makefile.in (jcf-dump, gcjh): Link in $(LIBS) too.
From-SVN: r23396
1998-10-28 03:12:14 -07:00
Tom Tromey
571d54d56f decl.c (init_decl_processing): Renamed fields.
* decl.c (init_decl_processing): Renamed fields.
	* class.c (make_class_data): Renamed bfsize, nfields, nsfields,
	interface_len, msize fields.
	* class.c (make_class_data): Removed subclass_head and
	subclass_next fields.
	* decl.c (init_decl_processing): Removed subclass_head and
	subclass_next fields.

From-SVN: r23395
1998-10-28 09:15:36 +00:00
Bernd Schmidt
8f142c0b90 * final.c (cleanup_subreg_operands): ASM_INPUTs need no treatment.
From-SVN: r23394
1998-10-27 23:02:03 -05:00
Jason Merrill
1748e86d31 up
From-SVN: r23393
1998-10-27 22:40:11 -05:00
Jason Merrill
2a2480e163 init.c (build_delete): Reset TYPE_HAS_DESTRUCTOR here.
* init.c (build_delete): Reset TYPE_HAS_DESTRUCTOR here.
	* decl.c (finish_function): Not here.
	(start_function): Do set DECL_INITIAL.

From-SVN: r23392
1998-10-27 22:36:56 -05:00
Jason Merrill
a554186cb8 * toplev.c (compile_file): Temporarily revert last change.
From-SVN: r23391
1998-10-27 21:38:57 -05:00
Jason Merrill
01f394a499 up
From-SVN: r23390
1998-10-27 21:33:47 -05:00
Jason Merrill
d32789d814 pt.c (push_template_decl_real): Complain about default template args for enclosing classes.
* pt.c (push_template_decl_real): Complain about default template
	args for enclosing classes.

From-SVN: r23389
1998-10-27 21:33:00 -05:00
Jason Merrill
2c4eb7946e up
From-SVN: r23388
1998-10-27 20:57:15 -05:00
Jason Merrill
aa45967f76 call.c (add_function_candidate): Treat conversion functions as coming from the argument's class.
* call.c (add_function_candidate): Treat conversion functions
	as coming from the argument's class.
	* cp-tree.h (DECL_CONV_FN_P): New fn.
	(DECL_DESTRUCTOR_P): Also check DECL_LANGUAGE.
	* class.c (add_method): Use DECL_CONV_FN_P.
	* decl2.c (check_classfn): Likewise.
	* error.c (dump_function_name): Likewise.
	(dump_function_decl): Likewise.
	* pt.c (fn_type_unification): Likewise.
	* search.c (add_conversions): Likewise.

From-SVN: r23387
1998-10-27 20:53:50 -05:00
Jason Merrill
b58c9a790a * c-typeck.c (convert_for_assignment): Parenthesize.
From-SVN: r23386
1998-10-27 20:39:54 -05:00
Jeff Law
dc81338ee0 Daily bump.
From-SVN: r23385
1998-10-27 17:45:02 -07:00
Jeffrey A Law
e0c6d139a1 toplev.c (compile_file): Call allocate_reg_info to free register table memory.
* toplev.c (compile_file): Call allocate_reg_info to free register
        table memory.
        * rtl.h (allocate_reg_info): Declare.

From-SVN: r23384
1998-10-27 17:06:22 -07:00
Jason Merrill
febc6f831a up
From-SVN: r23383
1998-10-27 18:49:03 -05:00
Jeffrey A Law
5ed948cea5 jcf-write.c (emit_load_or_store): Avoid implicit int arguments.
* jcf-write.c (emit_load_or_store): Avoid implicit int arguments.
        * mangle.c (emit_unicode_mangled_name): Similarly.

From-SVN: r23382
1998-10-27 16:48:07 -07:00
Jason Merrill
c6882a3561 lex.c (do_identifier): Also generate LOOKUP_EXPR for RESULT_DECL.
* lex.c (do_identifier): Also generate LOOKUP_EXPR for RESULT_DECL.
	* method.c (hack_identifier): Also check for using RESULT_DECL
	from outer context.

From-SVN: r23381
1998-10-27 18:47:42 -05:00
Jeffrey A Law
c75d528421 * PROJECTS: Remove entry for local spilling.
From-SVN: r23380
1998-10-27 16:43:46 -07:00
Andreas Schwab
2eb6dac7c1 * reload1.c (delete_output_reload): Avoid ambigous else.
From-SVN: r23379
1998-10-27 16:42:47 -07:00
Bernd Schmidt
c47f5ea57b reload1.c (verify_initial_offsets): New function.
* reload1.c (verify_initial_offsets): New function.
        (reload): Call it after reload_as_needed.  Also verify that the frame
        size stays constant during reload_as_needed.
        * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change.

From-SVN: r23378
1998-10-27 16:35:41 -07:00
Jeffrey A Law
0304f7877c final.c (cleanup_subreg_operands): New function.
* final.c (cleanup_subreg_operands): New function.
        (final_scan_insn): Use it.
        (alter_subreg): Clear the "used" field when we turn a SUBREG into
        a REG.
        * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
        operands when reload has finished.
        * reload.h (cleanup_subreg_operands): Declare..
        * flow.c (life_analysis_1): No longer delete CLOBBER insns after
        reload.  Handled in reload itself.
Should fix sh, sparc and probably other problems with post-reload life pass
and scheduling interactions.

From-SVN: r23377
1998-10-27 16:19:31 -07:00
Mark Mitchell
bd09c530b2 decl.c (grokdeclarator): Use type_quals, rather than constp, consistently.
* decl.c (grokdeclarator): Use type_quals, rather than constp,
	consistently.

From-SVN: r23376
1998-10-27 23:08:40 +00:00
Jason Merrill
e389f80098 fix
From-SVN: r23375
1998-10-27 18:07:43 -05:00
Bernd Schmidt
03acd8f806 THe final localized spilling patches. See the ChangeLog for details.
From-SVN: r23374
1998-10-27 15:38:40 -07:00
Jason Merrill
e6e174e560 call.c (standard_conversion): instantiate_type here.
* call.c (standard_conversion): instantiate_type here.
	(reference_binding): And here.
	(implicit_conversion): Not here.
	(build_op_delete_call): No need to cons up an OVERLOAD.
	* cvt.c (cp_convert_to_pointer): instantiate_type here.
	(convert_to_reference): And here.
	* decl.c (grok_reference_init): Not here.
	(grokparms): Or here.
	* typeck2.c (digest_init): Or here.
	* typeck.c (decay_conversion): Take the address of overloaded
	functions, too.
	(require_instantiated_type): Lose.
	(convert_arguments): Don't handle unknown types here.
	(build_c_cast): Likewise.
	(build_binary_op): Gut.
	(build_conditional_expr): Don't require_instantiated_type.
	(build_modify_expr): Likewise.
	(build_static_cast): Don't instantiate_type.
	(build_reinterpret_cast): Likewise.
	(build_const_cast): Likewise.
	(convert_for_initialization): Likewise.
	(build_ptrmemfunc): Use type_unknown_p.
	(convert_for_assignment): Also do default_conversion on overloaded
	functions.  Hand them off to ocp_convert.
	* pt.c (convert_nontype_argument): Tell instantiate_type to complain.
	Do complain about overload resolution producing a non-public fn.

From-SVN: r23373
1998-10-27 17:33:40 -05:00
Mark Mitchell
950ad3c380 decl.c (grokdeclarator): Use type_quals, rather than constp, consistently.
* decl.c (grokdeclarator): Use type_quals, rather than constp,
	consistently.

From-SVN: r23372
1998-10-27 22:25:05 +00:00
Nick Clifton
2a5307b1a9 Updated sources with changes from devo.
From-SVN: r23369
1998-10-27 15:15:11 +00:00
Alexandre Oliva
479bb22670 * lib/old-dejagnu.exp (old-dejagnu): document `Additional sources'
From-SVN: r23368
1998-10-27 14:21:18 +00:00
David Edelsohn
4195a6bc96 - add comments about AIX 4.3 archive parsing bug
From-SVN: r23367
1998-10-27 08:49:00 -05:00
Nick Clifton
844642e6ed Ignore empty target specific options...
Ignore empty target specific options, and if -W is also specified on the
command line then display undocumented options.

From-SVN: r23366
1998-10-27 13:26:51 +00:00
David Edelsohn
f5e04914fb collect2.c (aix64_flag): New variable.
* collect2.c (aix64_flag): New variable.
	(main, case 'b'): Parse it.
	(GCC_CHECK_HDR): object magic number must match mode.
	(scan_prog_file): Only check for shared object if valid header.
	Print debugging if header/mode mismatch.

From-SVN: r23365
1998-10-27 08:23:17 -05:00
Nick Clifton
b355a48134 Appleid arm-elf contribution from Philip Blundell and merged with Catherine
Moore's work.

From-SVN: r23364
1998-10-27 11:13:39 +00:00
Andrew MacLeod
74153f8e01 dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING has been changed to not include a newline.
* dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING
        has been changed to not include a newline. Use this macro instead.
        (output_enumeral_list, const_value_attribute, name_attribute,
        comp_dir_attribute, prototyped_attribute, producer_attribute,
        inline_attribute, pure_or_virtual_attribute, output_inheritance_die,
        dwarfout_file_scope_decl, generate_new_sfname_entry,
        generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use
        ASM_OUTPUT_DWARF_STRING_NEWLINE macro.

From-SVN: r23363
1998-10-27 06:00:53 +00:00
Jason Merrill
21c0d0f5b2 fix
From-SVN: r23362
1998-10-26 21:21:59 -05:00
Jeff Law
ac0f1cd216 Daily bump.
From-SVN: r23361
1998-10-26 17:45:03 -07:00
Mark Mitchell
52bf7d5d09 error.c (dump_decl): Deal with TEMPLATE_DECLs that are VAR_DECLs.
* error.c (dump_decl): Deal with TEMPLATE_DECLs that are
	VAR_DECLs.  Handle vtables whose DECL_CONTEXT is not a type.
	* class.c (finish_struct_1): Use build_cplus_array_type to build
	array types.
	* decl.c (init_decl_processing): Likewise.
	* except.c (expand_end_eh_spec): Likewise.
	* search.c (expand_upcast_fixups): Simplify very slightly.

From-SVN: r23359
1998-10-26 23:48:58 +00:00
Mark Mitchell
ad3ef78e25 splay-tree.c: Tweak include directives to make sure declarations of xmalloc and free are...
* splay-tree.c: Tweak include directives to make sure declarations of
	xmalloc and free are available.

From-SVN: r23358
1998-10-26 23:24:48 +00:00
Richard Henderson
4f4b36794c combine.c (subst): Process the inputs to a parallel asm_operands only once.
* combine.c (subst): Process the inputs to a parallel asm_operands
        only once.

From-SVN: r23357
1998-10-26 05:35:39 -08:00