* cp-tree.h (struct lang_type): Added has_mutable flag.
(CLASSTYPE_HAS_MUTABLE): New macro to access it.
(TYPE_HAS_MUTABLE_P): New macro to read it.
(cp_has_mutable_p): Prototype for new function.
* class.c (finish_struct_1): Set has_mutable from members.
* decl.c (cp_finish_decl): Clear decl's TREE_READONLY flag, if
it contains a mutable.
* typeck.c (cp_has_mutable_p): New function.
Fixes g++.other/mutable1.C
Per Bothner [Sat, 16 Jan 1999 10:00:31 +0000 (02:00 -0800)]
expr.c (process_jvm_instruction): Coerce to correct Throwable sub-type the result of the call that gets the...
* expr.c (process_jvm_instruction): Coerce to correct Throwable
sub-type the result of the call that gets the exception value.
* parse.y (java_complete_expand_methods): If flags_syntax_only,
don't call finish_class.
* parse.y (java_check_regular_methods): If METHOD_PRIVATE,
clear found before continuing.
* verify.c (verify_jvm_instructions): On an array load, allow
and handle top of stack to be TYPE_NULL.
Per Bothner [Sat, 16 Jan 1999 10:00:29 +0000 (02:00 -0800)]
expr.c (process_jvm_instruction): Coerce to correct Throwable sub-type the result of the call that gets the...
d
* expr.c (process_jvm_instruction): Coerce to correct Throwable
sub-type the result of the call that gets the exception value.
* parse.y (java_complete_expand_methods): If flags_syntax_only,
don't call finish_class.
* parse.y (java_check_regular_methods): If METHOD_PRIVATE,
clear found before continuing.
* verify.c (verify_jvm_instructions): On an array load, allow
and handle top of stack to be TYPE_NULL.
Per Bothner [Sat, 16 Jan 1999 10:00:27 +0000 (02:00 -0800)]
expr.c (process_jvm_instruction): Coerce to correct Throwable sub-type the result of the call that gets the...
�
* expr.c (process_jvm_instruction): Coerce to correct Throwable
sub-type the result of the call that gets the exception value.
* parse.y (java_complete_expand_methods): If flags_syntax_only,
don't call finish_class.
* parse.y (java_check_regular_methods): If METHOD_PRIVATE,
clear found before continuing.
* verify.c (verify_jvm_instructions): On an array load, allow
and handle top of stack to be TYPE_NULL.
* expr.c (queued_subexp_p): Make public.
* expr.h (queued_subexp_p): Declare it.
* recog.c (asm_operand_ok): New function.
(check_asm_operands): Use it. After reload, use constrain_operands
instead.
* recog.h (asm_operand_ok): Declare it.
* stmt.c (expand_asm_operands): Use it to try harder to make
asms initially satisfy their constraints.
Mark Mitchell [Fri, 15 Jan 1999 18:34:48 +0000 (18:34 +0000)]
pt.c (process_template_parm): Ignore top-level qualifiers on non-type parameters.
* pt.c (process_template_parm): Ignore top-level qualifiers on
non-type parameters.
* decl.c (start_function): Use current_function_parms in the call
to require_complete_type_for_parms, not the probably empty
DECL_ARGUMENTS.
i960.c (i960_output_move_double_zero, [...]): New functions for moving zeros.
1999-01-14 Vladimir N. Makarov <vmakarov@cygnus.com>
* config/i960/i960.c (i960_output_move_double_zero,
i960_output_move_quad_zero): New functions for moving zeros.
(i960_output_move_double, i960_output_move_quad): Additional code
for situation when moving unaligned register group.
* config/i960/i960.h (i960_output_move_double_zero,
i960_output_move_quad_zero): The function definitions.
* config/i960/i960.md (movdi+1, movti+1): Usage of the functions.
Jason Merrill [Thu, 14 Jan 1999 10:42:12 +0000 (10:42 +0000)]
re PR other/18132 (Problem compiling gcc 3.4.2)
* semantics.c (finish_asm_stmt): Don't warn about redundant volatile.
PR 18132
* decl2.c (import_export_class): MULTIPLE_SYMBOL_SPACES only means
that we don't suppress the other copies.
* lex.c (handle_cp_pragma): Likewise.
PR 18627
i960.c (i960_function_prologue): New code (optimal solution) for saving global registers in local registers.
1999-01-13 Vladimir N. Makarov <vmakarov@cygnus.com>
* config/i960/i960.c (i960_function_prologue): New code (optimal
solution) for saving global registers in local registers.
(form_reg_groups, reg_group_compare, split_reg_group): New
functions used by the code.
(reg_group): New structure definition for the new code.
Mark Mitchell [Wed, 13 Jan 1999 16:27:23 +0000 (16:27 +0000)]
decl.c (grokdeclarator): Undo 1998-12-14 change.
* decl.c (grokdeclarator): Undo 1998-12-14 change.
* tree.c (build_cplus_array_type_1): Likewise.
* pt.c (instantiate_class_template): Remove misleading comment.
(tsubst_aggr_type): Substitute if there are template parameters,
regardless of whether or not they use template arguments.
(unify): Likewise, but for unification.
Vladimir Makarov [Wed, 13 Jan 1999 15:28:22 +0000 (15:28 +0000)]
[multiple changes]
Thu Jan 11 18:37:50 1999 Vladimir N. Makarov <vmakarov@cygnus.com>
* invoke.texi (-mcpu=740, -mcpu=750): New options.
(-m(no-)multiple, -m(no-)string): Describe cases for PPC740 &
PPC750.
1999-01-11 Michael Meissner <meissner@cygnus.com>
* config/rs6000/rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all
machines supported with -mcpu=xxx.
(processor_type): Add PROCESSOR_PPC750.
(ADJUST_PRIORITY): Call rs6000_adjust_priority.
(RTX_COSTS): Supply costs for 750 multiply/divide operations.
(rs6000_adjust_priority): Add declaration.
* config/rs6000/rs6000.c (rs6000_override_options):
-mcpu={750,740} now sets the processor type as 750, not 603.
Allow -mmultiple and -mstring on little endian 750 systems.
(rs6000_adjust_priority): Stub for now.
(get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle.
* config/rs6000/rs6000.md (function/cpu attributes): Add initial
ppc750 support.
* config/rs6000/sysv4.h (STRICT_ALIGNMENT): Don't force strict
alignment if little endian.
(CC1_SPEC): Pass -mstrict-align if little endian, and not
overridden.
(CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs.
(SUBTARGET_EXTRA_SPECS): Add cc1 endian specs.
* config/rs6000/{sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC):
Override, default is little endian.
* config/rs6000/t-ppcgas (MULTILIB_*): Delete obsolete Solaris
multilibs.
Catherine Moore [Wed, 13 Jan 1999 14:32:39 +0000 (14:32 +0000)]
arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN before generating a call to abort for volatile...
* config/arm.c (output_func_epilogue): Check TARGET_ABORT_NORETURN
before generating a call to abort for volatile functions.
* config/arm.h (ARM_FLAG_ABORT_NORETURN): Define.
(TARGET_ABORT_NORETURN): Define.
(abort-on-noreturn): New option.
Kaveh R. Ghazi [Wed, 13 Jan 1999 10:46:45 +0000 (10:46 +0000)]
cccp.c (xstrdup): Renamed from `savestring'.
* cccp.c (xstrdup): Renamed from `savestring'. All callers changed.
Remove prototype which we get from libiberty.h.
* collect2.c (xstrdup): Likewise.
* genextract.c (xstrdup): Likewise for `copystr'.
(mybzero): Remove it and use `memset' instead.
* genoutput.c (mybcopy, mybzero): Remove these. All callers changed
to use `memcpy' and `memset' instead.
* genrecog.c (xstrdup): Renamed from `copystr'. All callers
changed. Remove prototype.
(mybcopy, mybzero): Remove these and use memcpy/memset.
Andrew Haley [Wed, 13 Jan 1999 06:13:37 +0000 (06:13 +0000)]
expr.c (generate_name): Name prefix changed to avoid clashes with assembler temp labels.
1999-01-13 Andrew Haley <aph@cygnus.com>
* expr.c (generate_name): Name prefix changed to avoid clashes
with assembler temp labels.
* parse.y (patch_synchronized_statement): Set TREE_SIDE_EFFECTS on
MODIFY_EXPR. Without this, code for the assignement may not be
generated at all and the synchronized statement will read an
uninitialized variable.
class.c (maybe_layout_super_class): Fixed returned value.
Wed Jan 13 01:24:54 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
* class.c (maybe_layout_super_class): Fixed returned value.
* lex.c: Added 1999 to the copyright.
(java_init_lex): Initialize java_lang_imported.
* lex.h: Added 1999 to the copyright.
* parse.h: Added 1999 to the copyright.
(REGISTER_IMPORT): Fixed typo in trailing macro.
(CURRENT_OSB): New macro.
(struct parser_ctxt): New fields osb_depth, osb_limit.
* parse.y (java_lang_id): New global variable.
(type_import_on_demand_declaration): Don't import java.lang.* twice.
(array_creation_expression:): Use CURRENT_OSB.
(dims:): Uses a stack to keep track of array dimensions.
(cast_expression:): Use CURRENT_OSB.
(find_expr_with_wfl): Return NULL if node found doesn't meet the
conditions.
(register_fields): Fixed typos in comment.
(check_method_redefinition): Fixed comment indentation.
(java_check_regular_methods): Set saved found wfl to NULL after
having reinstalled it in the previously found DECL_NAME.
Fix an array dimension counting bug and some random other ones.
David Edelsohn [Tue, 12 Jan 1999 11:26:45 +0000 (06:26 -0500)]
[multiple changes]
Tue Jan 12 14:05:37 1999 David Edelsohn <edelsohn@mhpcc.edu>
* rs6000.c (print_operand, cases 'm' and 'M'): Do not depend on
HOST_WIDE_INT word-size.
(rs6000_stack_info): Remove redundant alignment of fpmem.
Tue Jan 12 14:05:37 1999 Richard Henderson <rth@cygnus.com>
* rs6000.c (short_cint_operand): Remove CONSTANT_P_RTX handling.
(u_short_cint_operand, reg_or_cint_operand, logical_operand): Likewise.
(input_operand): Adjust CONSTANT_P_RTX handling.
* rs6000.h (PREDICATE_CODES): Remove CONSTANT_P_RTX references.
* rs6000.md (movsi): Adjust CONSTANT_P_RTX handling.
(movhi, movqi): Remove CONSANT_P_RTX handling.
(movdi): Adjust CONSTANT_P_RTX handling.
mot3300.h (ADD_MISSING_POSIX, [...]): Define to ensure all prototypes necessary for building libio will be available.
�
* m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to
ensure all prototypes necessary for building libio will be available.
* m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Remove
definitions here as they are not host specific.
* m88k/sysv3.h, m88k/xm-sysv3.h: Likewise.
function.c (purge_addressof_1): If the note accesses a mem+addressof in a wider mode than any replacement...
* function.c (purge_addressof_1): If the note accesses a mem+addressof
in a wider mode than any replacement, adjust the cached replacement.
Cache trivial substitutions as well.
Kaveh R. Ghazi [Sat, 9 Jan 1999 20:59:12 +0000 (20:59 +0000)]
gcc.c (xstrerror): Renamed from my_strerror.
* gcc.c (xstrerror): Renamed from my_strerror. All callers
changed. Remove prototype since we get that from libiberty.h.
* protoize.c (xstrerror): Likewise.
Michael Hayes [Sat, 9 Jan 1999 18:46:10 +0000 (18:46 +0000)]
c4x.c: Include system.h.
* config/c4x/c4x.c: Include system.h.
(c4x_caller_save_map): Disable caller save for RC.
(c4x_optimization_options): Disable scheduling before reload.
(valid_parallel_load_store) : Define return type as int.
Remove unused variable regs.
* config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register
class.
* config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to
handle rotations.
(*db, decrement_and_branch_until_zero): Fix up constraints
to keep reload happy.
Michael Hayes [Sat, 9 Jan 1999 17:10:22 +0000 (17:10 +0000)]
c4x.md: (in_annul_slot_3): Allow unarycc and binarycc operations in 3rd annulled delay slot.
* config/c4x/c4x.md: (in_annul_slot_3): Allow unarycc and binarycc
operations in 3rd annulled delay slot.
(*lshrqi3_const_set): Disallow c constraint for operand0.
(modhi3+1, modhi3+2): Set attribute type to multi.
* config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of
!= operator.
Robert Lipe [Sat, 9 Jan 1999 13:07:52 +0000 (13:07 +0000)]
Another attempt to get tm-dwarf2.h onto the TRUNK instead of the fixinc-branch.
Another attempt to get tm-dwarf2.h onto the TRUNK instead of the
fixinc-branch.
* configure.in: New flag --with-dwarf2. If set, enables DWARF-2
debugging as default.
* config/tm-dwarf2.h: New file.
Per Bothner [Sat, 9 Jan 1999 12:49:07 +0000 (04:49 -0800)]
parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL on CONSTRUCTOR (since that trashes TREE_CST_RTL).
* parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL
on CONSTRUCTOR (since that trashes TREE_CST_RTL).
(patch_new_array_init): Clear TREE_CONSTANT also if INDIRECT_REF.
(register_fields): Set TREE_STATIC on NEW_ARRAY_INIT, not on
CONSTRUCTOR (which causes expand_expr to call output_constant_def).
* expr.c (java_lang_expand_expr): Check TREE_STATIC of NEW_ARRAY_INIT.
Per Bothner [Sat, 9 Jan 1999 12:49:05 +0000 (04:49 -0800)]
parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL on CONSTRUCTOR (since that trashes TREE_CST_RTL).
�
* parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL
on CONSTRUCTOR (since that trashes TREE_CST_RTL).
(patch_new_array_init): Clear TREE_CONSTANT also if INDIRECT_REF.
(register_fields): Set TREE_STATIC on NEW_ARRAY_INIT, not on
CONSTRUCTOR (which causes expand_expr to call output_constant_def).
* expr.c (java_lang_expand_expr): Check TREE_STATIC of NEW_ARRAY_INIT.
Per Bothner [Sat, 9 Jan 1999 12:49:03 +0000 (04:49 -0800)]
parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL on CONSTRUCTOR (since that trashes TREE_CST_RTL).
d
* parse.y (build_new_array_init): Don't set EXPR_WFL_LINECOL
on CONSTRUCTOR (since that trashes TREE_CST_RTL).
(patch_new_array_init): Clear TREE_CONSTANT also if INDIRECT_REF.
(register_fields): Set TREE_STATIC on NEW_ARRAY_INIT, not on
CONSTRUCTOR (which causes expand_expr to call output_constant_def).
* expr.c (java_lang_expand_expr): Check TREE_STATIC of NEW_ARRAY_INIT.
Kaveh R. Ghazi [Sat, 9 Jan 1999 08:48:06 +0000 (08:48 +0000)]
gansidecl.h: Allow attribute unused on labels only when we are version 2.93 or higher.
* gansidecl.h: Allow attribute unused on labels only when we are
version 2.93 or higher. Not all versions of 2.92 have this feature.
* version.c: Bump minor number to 93.