Ulrich Weigand [Sat, 1 May 2004 11:37:39 +0000 (11:37 +0000)]
re PR middle-end/15054 (Bad code due to overlapping stack temporaries)
PR middle-end/15054
* expr.c (expand_expr_real): Do not call preserve_temp_slots
on a TARGET_EXPR temp.
* function.c (assign_stack_temp_for_type): Set 'keep' flag for
TARGET_EXPR temp slots.
PR middle-end/15054
* g++.dg/opt/pr15054.C: New test.
Zack Weinberg [Sat, 1 May 2004 00:08:17 +0000 (00:08 +0000)]
tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK and adjust definition accordingly.
* tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
and adjust definition accordingly.
(TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
(TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
* expr.c (store_constructor): Do not access TYPE_DOMAIN of a
VECTOR_TYPE.
Jason Merrill [Fri, 30 Apr 2004 22:26:48 +0000 (18:26 -0400)]
re PR c++/14587 (Multiple inheriance/DLL testcase (g++.dg/ext/dllexport-MI1.C) failures)
PR c++/14587
* config/i386/winnt.c (associated_type): Look for attributes on
the TYPE_MAIN_VARIANT of *this.
* attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
apply the attributes to the variants.
Brian Ford [Fri, 30 Apr 2004 18:50:28 +0000 (18:50 +0000)]
* config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
(DWARF2_DEBUGGING_INFO): Define to enable.
(DBX_REGISTER_NUMBER): Define to use the svr4 register map for
DWARF2.
* configure.ac (Target-specific assembler checks)
<i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
relocs.
* configure: Regenerate.
* config.in: Likewise.
re PR java/15133 (gcjh generates wrong method signatures)
* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
additional option "-Wmissing-prototypes" for compiling C sources.
Print actual filename for pass/fail rather than $name.c.
* testsuite/libjava.jni/PR15133.java: New testcase file.
* testsuite/libjava.jni/PR15133.c: Likewise.
* testsuite/libjava.jni/PR15133.out: Likewise.
Co-Authored-By: Tom Tromey <tromey@redhat.com>
From-SVN: r81358
re PR java/15133 (gcjh generates wrong method signatures)
Fixes PR java/15133
* gjavah.c (struct method_name): Add member is_native.
(overloaded_jni_method_exists_p): Match candidate method only if
it is native.
(print_method_info): Initialise is_native flag from the method's
access flags.
Jason Merrill [Fri, 30 Apr 2004 17:25:42 +0000 (13:25 -0400)]
Refer to base members using COMPONENT_REFs where possible.
* class.c (build_simple_base_path): New fn.
(build_base_path): Use it for non-virtual base references.
(layout_class_type): Change base fields to their real type
after layout is done.
* cp-tree.h (IS_FAKE_BASE_TYPE): New macro.
* cp-lang.c (cxx_get_alias_set): Use it.
* config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
(s390_emit_call): New function prototype added.
(s390_tls_get_offset): Function removed.
* config/s390/s390.c (s390_function_ok_for_sibcall,
s390_call_saved_register_used_p): New functions.
(TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
(s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
(s390_emit_tls_call_insn): New function.
(legitimize_tls_address): Call s390_emit_tls_call_insn instead of
emit_call_insn.
(s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
(s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
added.
* config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
register number used to hold the target address for sibcalls.
* config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
New expanders.
("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
"*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
Expanders removed.
("call", "call_value"): Call s390_emit_call to emit the call patterns.
("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
"*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
("epilogue"): Changed the call to s390_emit_epilogue to use the
new parameter.
testsuite/ChangeLog:
* gcc.dg/sibcall-3.c: Delete s390 from expected fail list.
* gcc.dg/sibcall-4.c: Likewise.
* gcc.dg/sibcall-6.c: Enable s390 as test platform.
Paul Brook [Fri, 30 Apr 2004 12:13:49 +0000 (12:13 +0000)]
configure.gcc: Default ep9312 to hard-float.
* configure.gcc: Default ep9312 to hard-float.
* config/arm/arm-cores.def: Add ARCH field.
* config/arm/arm.c (FL_FOR_ARCH*): Define.
(arm_arch_cirrus): New variable.
(all_cores): Set and use arch.
(all_architectures): Ditto.
(arm_arch_name): New variable.
(arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
Set and use arm_arch_cirrus.
* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
(enum processor_type): Update ARM_CORE define.
(enum target_cpus): Add. Replaces TARGET_CPU_* defines.
(CPP_SPEC): Remove %(cpp_cpu_arch).
(CPP_ARCH_DEFAULT_SPEC): Remove.
(CPP_CPU_ARCH_SPEC): Remove.
(EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
(FPUTYPE_DEFAULT): Don't define here.
Richard Kenner [Fri, 30 Apr 2004 12:09:28 +0000 (12:09 +0000)]
expr.c (store_constructor): SIZE operand is now in bits...
* expr.c (store_constructor): SIZE operand is now in bits; CLEARED
less than zero now means emitted CLOBBER already.
(store_constructor_field, expand_expr_real): Reflect above changes.
Andrew Pinski [Thu, 29 Apr 2004 20:23:36 +0000 (20:23 +0000)]
rs6000-power2-1.c: Change the options to be more correct.
2004-04-29 Andrew Pinski <pinskia@physics.uc.edu>
* gcc.dg/rs6000-power2-1.c: Change the options to be more correct.
* gcc.dg/rs6000-power2-2.c: Change the options to be more correct.
Change the asm registers to be in form of frN instead of fN.
* init.c (__gnat_install_handler, __gnat_error_handler): Remove
alternate stack setting. There was no support for the tasking cases
and the changes eventually caused a number of side-effect failures in
the non-tasking case too.
2004-04-29 Eric Botcazou <ebotcazou@act-europe.fr>
lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
-gnats is passed.
2004-04-29 Vincent Celier <celier@gnat.com>
* make.adb (Gnatmake): Increase max size of argument array for
gnatbind for the potential addition of -F.
If there are Stand-Alone Library projects, invoke gnatbind with -F to
be sure that elaboration flags will be checked.
* switch-c.adb: Correct call to Scan_Pos for -gnateI
2004-04-29 Thomas Quinot <quinot@act-europe.fr>
* sem_warn.adb (Check_References): Move '<access-variable> may be
null' warning out of under Warn_On_No_Value_Assigned.
2004-04-29 Ed Falis <falis@gnat.com>
* gnat_ugn.texi: Fixed texi error
2004-04-29 Robert Dewar <dewar@gnat.com>
* sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
abstract operations if they come from predefined files.
* gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
Dynamic, not RM).
* s-addope.adb: Correct obvious error in mod function
Paolo Bonzini [Thu, 29 Apr 2004 08:08:44 +0000 (08:08 +0000)]
Complete last checkin:
2004-04-29 Paolo Bonzini <bonzini@gnu.org>
Complete last checkin:
* combine.c (combine_simplify_rtx): Adjust call to use
simplify_relational_operation. Do not use SELECT_CC_MODE
when a comparison already has a MODE_CC mode.
Paolo Bonzini [Thu, 29 Apr 2004 07:50:55 +0000 (07:50 +0000)]
combine.c (combine_simplify_rtx): Adjust call to use simplify_relational_operation.
2004-04-29 Paolo Bonzini <bonzini@gnu.org>
* combine.c (combine_simplify_rtx): Adjust call to use
simplify_relational_operation. Do not use SELECT_CC_MODE
when a comparison already has a MODE_CC mode.
(simplify_set): simplify_relational_operation may now
return another relational expression.
* cse.c (fold_rtx): simplify_relational_operation now
takes of computing the comparison mode.
* dojump.c (compare_from_rtx): Use simplify_relational_operation,
remove dead code.
(do_compare_rtx_and_jump): Likewise.
* integrate.c (subst_constants): simplify_relational_operation
may now return another relational expression.
* simplify-rtx.c (simplify_gen_relational): Move most code to
the new simplify_relational_operation and
simplify_relational_operation_1 functions.
(simplify_relational_operation): Rewritten.
(simplify_relational_operation_1): New function.
(simplify_ternary_operation): simplify_relational_operation
may now return another relational expression.
(simplify_rtx): Remove unnecessary temp variable.
Andrew Pinski [Wed, 28 Apr 2004 23:03:31 +0000 (23:03 +0000)]
rs6000.c (registers_ok_for_quad_peep): Return false if we do not have fp register.
2004-04-28 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/rs6000.c (registers_ok_for_quad_peep):
Return false if we do not have fp register.
(addrs_ok_for_quad_peep): Rename to ...
(mems_ok_for_quad_peep): this.
Add check for volatile memory.
* config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
Rename to ...
(mems_ok_for_quad_peep): this.
* config/rs6000/rs6000.md: Change peephole's for lfq/stq
to peephole2's.
(lfq_power2): New instruction.
(stfq_power2): Likewise.
2004-04-28 Andrew Pinski <pinskia@physics.uc.edu>
* gcc.dg/rs6000-power2-1.c: New test.
* gcc.dg/rs6000-power2-2.c: New test.
Jan Hubicka [Wed, 28 Apr 2004 20:40:55 +0000 (22:40 +0200)]
re PR c/15004 ([unit-at-a-time] no warning for unused paramater in static function)
* gcc.dg/unused-6.c: New test.
PR c/15004
* function.c (do_warn_unused_parameter): Break out form ...
(expand_function_end): ... here; warn only when not using cgraphunit.
* function.h (do_warn_unused_parameter): Declare.
* cgraphunit.c: Include function.h.
(cgraph_finalize_function): Do unused parameter warning.
* Makefile.in (cgraphunit.o): Depend on function.h
Josef Zlomek [Wed, 28 Apr 2004 06:00:45 +0000 (08:00 +0200)]
var-tracking.c (variable_different_p): Add a parameter compare_current_location...
* var-tracking.c (variable_different_p): Add a parameter
compare_current_location, compare current location of variable parts
if it is true.
(dataflow_set_different_1): Pass compare_current_location == false.
(dataflow_set_different_2): Pass compare_current_location == false.
(emit_notes_for_differences_1): Pass compare_current_location == true.
re PR debug/14829 (Bootstrap comparison failure on hppa64-hp-hpux11.11)
PR debug/14829
* dwarf2out.c (reg_number): Rename to dbx_reg_number. Adjust all
callers.
(multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
number for indexing hard_regno_nregs array.
gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
2004-04-27 Wu Yongwei <adah@sh163.net>
* gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
(__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
(__gthread_mutex_init_function): Replace CreateMutex with
initialization of custom mutex using CreateSemaphore.
(__gthread_mutex_lock): Use InterlockedIncrement.
(__gthread_mutex_trylock): Use InterlockedCompareExchange.
(__gthread_mutex_unlock): Use InterlockedDecrement and
ReleaseSemaphore to unlock
* config/i386/gthr-win32.c (__gthread_mutex_init_function,
__gthread_mutex_lock, __gthread_mutex_trylock,
__gthread_mutex_unlock): Adjust to match inline versions in
gthr-win32.h.
Paolo Bonzini [Tue, 27 Apr 2004 11:58:38 +0000 (11:58 +0000)]
revert: Makefile.def (flags_to_pass): Remove *dir variables that are passed to the modules via...
2004-04-27 Paolo Bonzini <bonzini@gnu.org>
Revert:
2004-04-26 Paolo Bonzini <bonzini@gnu.org>
* Makefile.def (flags_to_pass): Remove *dir variables that
are passed to the modules via TOPLEVEL_CONFIGURE_ARGUMENTS,
as well as prefix and exec_prefix.
* Makefile.in: Regenerate.
Richard Kenner [Mon, 26 Apr 2004 18:11:32 +0000 (18:11 +0000)]
builtins.c (expand_builtin_update_setjmp_buf): New function.
* builtins.c (expand_builtin_update_setjmp_buf): New function.
(expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
* builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
* sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
subprogram for which no pragma All_Calls_Remote applies, store the
address of the real subprogram in the underlying record type, so local
dereferences do not go through the PCS.
2004-04-26 Robert Dewar <dewar@gnat.com>
* i-c.ads: Add some type qualifications to avoid ambiguities when
compiling with s-auxdec.ads and a non-private address type.
2004-04-26 Arnaud Charlet <charlet@act-europe.fr>
* Makefile.rtl: Fix error in previous check-in:
Add s-addope.o to non tasking object list (rather than tasking object
list).
2004-04-26 Javier Miranda <miranda@gnat.com>
* sem_aggr.adb: Fix typo in comments
(Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
Required to check the null-exclusion attribute.
* sem_attr.adb (Resolve_Attribute): Check the accessibility level in
case of anonymous access types in record and array components. For a
component definition the level is the same of the enclosing composite
type.
* sem_ch3.adb (Analyze_Component_Declaration): In case of components
that are anonymous access types the level of accessibility depends on
the enclosing type declaration. In order to have this information, set
the scope of the anonymous access type to the enclosing record type
declaration.
(Array_Type_Declaration): In case of components that are anonymous
access types the level of accessibility depends on the enclosing type
declaration. In order to have this information, set the scope of the
anonymous access type to the enclosing array type declaration.
* sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
access type.
* sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
renaming of anonymous access-to-constant types allowed if and only if
the renamed object is access-to-constant.
* sem_util.adb (Type_Access_Level): In case of anonymous access types
that are component_definition or discriminants of a nonlimited type,
the level is the same as that of the enclosing component type.
2004-04-26 Sergey Rybin <rybin@act-europe.fr>
* sem_elim.adb: Some minor code reorganization from code reading. Fix
misprint in the function name (File_Name_Match).
Paolo Bonzini [Mon, 26 Apr 2004 12:08:07 +0000 (12:08 +0000)]
Makefile.def (host_modules): Mark with the bootstrap flag packages on which gcc depends.
2004-04-26 Paolo Bonzini <bonzini@gnu.org>
* Makefile.def (host_modules): Mark with the bootstrap
flag packages on which gcc depends.
* Makefile.tpl (all-bootstrap): Use it.
* Makefile.in: Regenerate.
Paolo Bonzini [Mon, 26 Apr 2004 11:50:44 +0000 (11:50 +0000)]
Makefile.def (flags_to_pass): Remove *dir variables that are passed to the modules via...
2004-04-26 Paolo Bonzini <bonzini@gnu.org>
* Makefile.def (flags_to_pass): Remove *dir variables that
are passed to the modules via TOPLEVEL_CONFIGURE_ARGUMENTS,
as well as prefix and exec_prefix.
* Makefile.in: Regenerate.
Paolo Bonzini [Mon, 26 Apr 2004 11:46:42 +0000 (11:46 +0000)]
configure.in: Invoke ACX_PROG_CMP_IGNORE_INITIAL.
2004-04-26 Paolo Bonzini <bonzini@gnu.org>
* configure.in: Invoke ACX_PROG_CMP_IGNORE_INITIAL.
* configure: Regenerate.
* config/acx.m4: Mutuate ACX_PROG_CMP_IGNORE_INITIAL from gcc.
* gcc/Makefile.tpl (compare): Use the result of the test.
* gcc/Makefile.in: Regenerate.