Steven Bosscher [Fri, 11 Nov 2005 19:34:39 +0000 (19:34 +0000)]
re PR target/24265 (ICE: in extract_insn, at recog.c:2084 with -O -fgcse -fmove-loop-invariants -mtune=pentiumpro)
PR 24265
* loop-invariant.c (may_assign_reg_p): Make sure a hard register
can be assigned to.
(find_invariant_insn): Do the cheapest check, may_assign_reg_p,
before check_maybe_invariant.
(move_invariant_reg): Use gen_move_insn instead of replacing
SET_DEST with the temporary for the invariant.
(move_loop_invariants): If checking is enabled, do internal
consistency checks after completing the pass.
Jie Zhang [Fri, 11 Nov 2005 17:58:31 +0000 (17:58 +0000)]
bfin.c (bfin_expand_strmov): Correctly move the trailing bytes when align is 2.
* config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
bytes when align is 2.
* config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
by the first instruction of the loop.
Ulrich Weigand [Fri, 11 Nov 2005 09:38:52 +0000 (09:38 +0000)]
postreload.c (reload_cse_simplify_operands): Fix bug in sorting algorithm so as to choose the best, not the worst, alternative.
* postreload.c (reload_cse_simplify_operands): Fix bug in sorting
algorithm so as to choose the best, not the worst, alternative.
Reset accumulated register class before processing next alternative.
Paul Thomas [Thu, 10 Nov 2005 22:24:28 +0000 (22:24 +0000)]
re PR fortran/24655 (ICE with statement function)
2005-11-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24655
PR fortran/24755
* match.c (recursive_stmt_fcn): Add checks that symtree exists
for the expression to weed out inline intrinsic functions and
parameters.
PR fortran/24409
* module.c (mio_symtree_ref): Correct the patch of 0923 so that
a symbol is not substituted for by a the symbol for the module
itself and to prevent the promotion of a formal argument.
2005-11-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24655
PR fortran/24755
* gfortran.dg/recursive_statement_functions.f90: Add statement
functions using inline intrinsic functions and parameters to test
that they no longer seg-fault.
PR fortran/24409
gfortran.dg/nested_modules_4.f90: New test.
gfortran.dg/nested_modules_5.f90: New test.
Jeff Law [Thu, 10 Nov 2005 18:31:07 +0000 (11:31 -0700)]
tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not perform reassociation if the parent statement will not die as a result...
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
perform reassociation if the parent statement will not die as
a result of the optimization.
Daniel Berlin [Thu, 10 Nov 2005 17:23:49 +0000 (17:23 +0000)]
tree-ssa-alias.c (compute_may_aliases): Remove call to delete_old_heap_vars.
2005-11-10 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-alias.c (compute_may_aliases): Remove call to
delete_old_heap_vars.
* tree-dfa.c (referenced_var_remove): Remove function.
* tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
(delete_tree_ssa): Remove call to delete_old_heapvars.
Add call to delete_alias_heapvars.
* tree-flow.h (referenced_var_remove): Remove prototype
(init_alias_heapvars): New prototype.
(delete_alias_heapvars): Ditto.
* Makefile.in (tree-ssa-structalias.o): Add
gt-tree-ssa-structalias.o
(GTFILES): Add tree-ssa-structalias.h and
tree-ssa-structalias.c.
(s-gtype): Add gt-tree-ssa-structalias.h.
* tree-ssa-structalias.c (heapvars): Remove.
(oldheapvars): Remove.
(heapvar_for_stmt): New variable.
(heapvar_lookup): New function.
(heapvar_insert): Ditto.
(get_constraint_for): See if we have an old heapvar
to reuse.
(init_alias_heapvars): New function.
(delete_alias_heapvars): Ditto.
Add include of gt-tree-ssa-structalias.h.
Eric Botcazou [Wed, 9 Nov 2005 23:13:08 +0000 (23:13 +0000)]
tree.c (build_qualified_type): Chain the new type to the original type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO...
* tree.c (build_qualified_type): Chain the new type to the original
type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
a POINTER_TYPE or a REFERENCE_TYPE respectively.
(build_pointer_type_for_mode): Only return unqualified types.
(build_reference_type_for_mode): Likewise.
Jakub Jelinek [Wed, 9 Nov 2005 21:36:06 +0000 (22:36 +0100)]
Makefile.in (gnucompare): Do comparison of all files using one of the chosen methods and only afterwards...
* Makefile.in (gnucompare): Do comparison of all files using one of
the chosen methods and only afterwards decide if just warning should
be issued or comparison failure raised.
Eric Botcazou [Wed, 9 Nov 2005 21:34:31 +0000 (21:34 +0000)]
ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
* ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
(noce_try_abs): Negate if the comparison is reversed.
Look only one instruction backwards for a REG_EQUAL note.
Alexandre Oliva [Wed, 9 Nov 2005 20:57:30 +0000 (20:57 +0000)]
re PR other/4372 (#pragma weak pthread* inclusion causes applications to crash without a linker error when one forgets to link with -lpthread)
gcc/ChangeLog:
PR other/4372
* gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
gthr-tpf.h: Define __gthrw. For all identifiers that might
be weak, introduce weakrefs or non-weak aliases with __gthrw,
and prefix all uses with __ghtrw.
libobjc/ChangeLog:
PR other/4372
* thr-objc.c (_XOPEN_SOURCE): Define.
Alexandre Oliva [Wed, 9 Nov 2005 20:13:41 +0000 (20:13 +0000)]
re PR other/4372 (#pragma weak pthread* inclusion causes applications to crash without a linker error when one forgets to link with -lpthread)
PR other/4372
* tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
(TREE_DEPRECATED): Adjust comment. Check for a DECL.
* c-common.c (handle_weakref_attribute): New.
(c_common_attribute_table): Add weakref.
* configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
in the assembler.
* configure, config.in: Rebuilt.
* defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
* doc/extend.texi: Document weakref attribute.
* varasm.c (ultimate_transparent_alias_target): New
(assemble_name): Use it.
(weak_finish_1): Split out of...
(weak_finish): ... and deal with weakrefs in...
(weakref_targets): ... new list.
(globalize_decl): Clean up weakref_targets.
(do_assemble_alias): Handle weakrefs.
(finish_aliases_1): Do not reject weakrefs to external symbols.
(assemble_alias): Handle weakrefs.
Eric Botcazou [Wed, 9 Nov 2005 17:11:53 +0000 (17:11 +0000)]
final.c (force_source_line): New global variable.
* final.c (force_source_line): New global variable.
(final_scan_insn): Set it to true instead of clearing last_filename.
(notice_source_line): Return true if force_source_line is true,
unless source info is absent.
Andrew Pinski [Wed, 9 Nov 2005 12:33:59 +0000 (12:33 +0000)]
re PR c/24644 (gcc-4.1 compiled ppc64 kernels do not boot)
2005-11-09 Andrew Pinski <pinskia@physics.uc.edu>
PR c/24644
* dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
a linkage name for a variable if it a register variable.
* c-decl.c (grokdeclarator): Global register variables
should be set as PUBLIC.
Andreas Krebbel [Wed, 9 Nov 2005 11:45:01 +0000 (11:45 +0000)]
s390.c (struct s390_frame_layout): New fields first_save_gpr_slot and last_save_gpr_slot.
2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (struct s390_frame_layout): New fields
first_save_gpr_slot and last_save_gpr_slot.
(cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,
s390_emit_epilogue, s390_initial_elimination_offset): Replaced
first_save_gpr and last_save_gpr with the _slot variants.
(s390_register_info): Calculate first_save_gpr_slot and
last_save_gpr_slot using regs_ever_live.
* testsuite/gcc.dg/pr24624.c: Testcase added.
Andreas Krebbel [Wed, 9 Nov 2005 11:42:38 +0000 (11:42 +0000)]
s390.c (s390_regs_ever_clobbered): Only save live eh regs for a function containing a landing pad.
2005-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
for a function containing a landing pad.
* testsuite/g++.dg/other/pr24623.C: Testcase added.
Eric Botcazou [Tue, 8 Nov 2005 23:00:40 +0000 (23:00 +0000)]
init.c: Use the Linux-specific section for the IA-64/Linux target.
* init.c: Use the Linux-specific section for the IA-64/Linux target.
(__gnat_adjust_context_for_raise): Add conditional code so that the
IA-64 is also supported.
Jakub Jelinek [Tue, 8 Nov 2005 21:44:58 +0000 (22:44 +0100)]
re PR c++/19450 (__thread static class members)
PR c++/19450
* decl.c (redeclaration_error_message): Issue diagnostics about
olddecl and newdecl disagreement on __thread property.
(grokdeclarator): Set DECL_TLS_MODEL on class static variables.
* g++.dg/tls/diag-3.C: New test.
* g++.dg/tls/diag-4.C: New test.
* g++.dg/tls/static-1.C: New test.
* g++.dg/tls/static-1a.cc: New file.
re PR rtl-optimization/24683 (ICE in in extract_insn, at recog.c:2084)
./: PR rtl-optimization/24683
* config/i386/i386.c (legitimize_pic_address): If constant operand
to PLUS is too large, put it in a register.
testsuite/:
PR rtl-optimization/24683
* gcc.dg/pr24683.c: New test.
Jakub Jelinek [Mon, 7 Nov 2005 08:01:54 +0000 (09:01 +0100)]
re PR rtl-optimization/23567 (if-conversion causes wrong code)
PR rtl-optimization/23567
* ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
(noce_process_if_block): Don't do any optimizations except
if (cond) x = x; if !set_b and write into orig_x may trap
or fault. Remove the MEM_READONLY_P check.
re PR ada/21952 (Annoying "attribute directive ignored" warnings)
2005-11-07 James A. Morrison <phython@gcc.gnu.org>
PR treelang/21952
* treetree.c (LANG_HOOKS_ATTRIBUTE_TABLE): Set to
treelang_attribute_table.
(handle_attribute): New function.
(treelang_attribute_table): New attribute table.
Jason Merrill [Mon, 7 Nov 2005 06:17:47 +0000 (01:17 -0500)]
re PR c++/17256 (undefined but used static or inline functions should be diagnosed)
PR c++/17256
* decl2.c (cp_finish_file): Fix conditions for undefined warning.
Set TREE_NO_WARNING instead of TREE_PUBLIC.
* pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
a warning on a function we didn't instantiate because of excessive
recursion.
Co-Authored-By: James A. Morrison <phython@gcc.gnu.org>
From-SVN: r106581
Mark Mitchell [Mon, 7 Nov 2005 03:47:34 +0000 (03:47 +0000)]
class.c (record_subobject_offsets): Don't record offsets past biggest empty class for non-empty base classes.
* class.c (record_subobject_offsets): Don't record offsets past
biggest empty class for non-empty base classes.
(layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
keeping track of the size of emptyclasses.
Paul Thomas [Sun, 6 Nov 2005 20:05:12 +0000 (20:05 +0000)]
re PR fortran/24534 (PUBLIC derived types with private components)
2005-11-06 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24534
* resolve.c (resolve_symbol): Exclude case of PRIVATE declared
within derived type from error associated with PRIVATE type
components within derived type.
PR fortran/20838
PR fortran/20840
* gfortran.h: Add prototype for gfc_has_vector_index.
* io.c (gfc_resolve_dt): Error if internal unit has a vector index.
* expr.c (gfc_has_vector_index): New function to check if any of
the array references of an expression have vector inidices.
(gfc_check_pointer_assign): Error if internal unit has a vector index.
PR fortran/17737
* data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE
and replace by a standard dependent warning/error if overwriting an
existing initialization.
* decl.c (gfc_data_variable): Remove old error for already initialized
variable and the unused error check for common block variables. Add
error for hots associated variable and standard dependent error for
common block variables, outside of blockdata.
* symbol.c (check_conflict): Add constraints for DATA statement.
2005-11-06 Paul Thomas <pault@gcc.gnu.org>
PR fortran/24534
gfortran.dg/private_type_2.f90: Modified to check that case with
PRIVATE declaration within derived type is accepted.
PR fortran/20838
gfortran.dg/pointer_assign_1.f90: New test.
PR fortran/20840
* gfortran.dg/arrayio_0.f90: New test.
PR fortran/17737
gfortran.dg/data_initialized.f90: New test.
gfortran.dg/data_constraints_1.f90: New test.
gfortran.dg/data_constraints_2.f90: New test.