Andrew Pinski [Mon, 12 Sep 2005 13:56:07 +0000 (13:56 +0000)]
tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and V_MUST_DEF instead of just the first_use_p.
2005-09-12 Andrew Pinski <pinskia@physics.uc.edu>
* tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and
V_MUST_DEF instead of just the first_use_p.
Don't mark the virtual variables for renaming on the statement which
is being removed.
(pass_dse): Remove TODO_update_ssa.
From-SVN: r104172
J"orn Rennecke [Mon, 12 Sep 2005 13:49:56 +0000 (13:49 +0000)]
re PR middle-end/23290 (Layout changed for structure with single complex field)
PR middle-end/23290
* stor-layout.c (compute_record_mode): For records with a single
field, actually check the field's mode size against the type size.
From-SVN: r104171
J"orn Rennecke [Mon, 12 Sep 2005 13:24:11 +0000 (13:24 +0000)]
sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose registers for TARGET_SHMEDIA.
* sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose
registers for TARGET_SHMEDIA.
(enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename
GENERAL_FP_REGS to GENERAL_DF_REGS. Add GENERAL_FP_REGS as union
of GENERAL_REGS and FP_REGS.
From-SVN: r104170
Bernd Schmidt [Mon, 12 Sep 2005 10:47:01 +0000 (10:47 +0000)]
* config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem.
From-SVN: r104168
Paolo Carlini [Mon, 12 Sep 2005 09:42:34 +0000 (09:42 +0000)]
re PR libstdc++/23767 (std::vector iterator implementation wrong)
2005-09-12 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/23767
* include/bits/stl_iterator.h (__normal_iterator::
__normal_iterator<>(const __normal_iterator<_Iter, _Container>&)):
Enable only when _Iter is equal to _Container::pointer.
* testsuite/21_strings/basic_string/types/23767.cc: New.
* testsuite/23_containers/vector/types/23767.cc: Likewise.
* testsuite/ext/vstring/types/23767.cc: Likewise.
From-SVN: r104167
Richard Henderson [Mon, 12 Sep 2005 07:38:33 +0000 (00:38 -0700)]
* objcp-lang.c (objcxx_init_ts): Remove ALIAS_DECL.
From-SVN: r104165
Benjamin Kosnik [Mon, 12 Sep 2005 04:49:11 +0000 (04:49 +0000)]
[multiple changes]
2005-09-11 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/19265
PR libstdc++/22309
* include/ext/mt_allocator.h
(__gnu_cxx::__create_handler): Remove.
(__pool<true>::_M_destroy_thread_key): Compatibility only.
(__pool<true>::_M_initialize(__destroy): Same.
(__pool<true>::_M_initialize): New.
(__pool<true>::_M_initialize_once): Nothing fancy.
(__pool<true>::_M_once): Remove.
(__common_pool): New.
(__common_pool_base): New.
(__per_type_pool): New.
(__per_type_pool_base): New.
* src/mt_allocator.cc: Same.
* config/linker-map.gnu (__pool<true>::_M_initialize()): Add.
2005-09-11 Jakub Jelinek <jakub@redhat.com>
PR libstdc++/19265
PR libstdc++/22309
* src/mt_allocator.cc (__gnu_internal::freelist_mutex): Make static.
(__gnu_internal::__freelist): New type.
(__gnu_internal::freelist): New variable.
(__gnu_internal::_M_destroy_thread_key): New function.
(__gnu_cxx::__pool<true>::_M_destroy): Don't delete
_M_thread_freelist_initial.
(__gnu_cxx::__pool<true>::_M_initialize): Make argument nameless.
Don't use _M_thread_freelist and _M_thread_freelist_initial
__pool<true> fields, instead use __gnu_internal::freelist fields, call
gthread_key_create just once. Use
__gnu_internal::_M_destroy_thread_key as key destructor.
(__gnu_cxx::__pool<true>::_M_get_thread_id): Store size_t id
rather than _Thread_record* in the thread specific value. Don't
use _M_thread_freelist __pool<true> field, instead use
__gnu_internal::freelist fields.
(__gnu_cxx::__pool<true>::_M_destroy_thread_key): Do nothing.
2005-09-11 Benjamin Kosnik <bkoz@redhat.com>
Jakub Jelinek <jakub@redhat.com>
PR libstdc++/19265
PR libstdc++/22309
* testsuite/testsuite_shared.cc: New.
* testsuite/lib/dg-options.exp (dg-require-sharedlib): New.
* testsuite/lib/libstdc++.exp (libstdc++_init): Look for shared
library, and set v3-sharedlib based on this.
(check_v3_target_sharedlib): New.
(proc v3-build_support): Build shared objects.
* testsuite/ext/mt_allocator/22309_thread.cc: New, use above.
From-SVN: r104161
Richard Henderson [Mon, 12 Sep 2005 04:04:03 +0000 (21:04 -0700)]
decl2.c (build_anon_union_vars): Copy attributes from the base addr.
* decl2.c (build_anon_union_vars): Copy attributes from the base addr.
* pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
* g++.dg/other/error8.C: Update expected diagnostic text.
From-SVN: r104160
Alan Modra [Mon, 12 Sep 2005 03:51:13 +0000 (03:51 +0000)]
rs6000.c (get_next_active_insn): Rewrite using CALL_P...
* config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
are omitted. Exclude stack_tie insn too.
From-SVN: r104159
GCC Administrator [Mon, 12 Sep 2005 00:16:16 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r104147.2
David Edelsohn [Sun, 11 Sep 2005 23:22:10 +0000 (23:22 +0000)]
re PR rtl-optimization/23098 (store of 0.0 to float)
PR rtl-optimization/23098
* config/rs6000/predicates.md (easy_fp_constant): SFmode constant
0.0f is easy.
* config/rs6000/rs6000.md (movdf splitter): Use
const_double_operand predicate for TARGET_POWERPC64.
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand
SYMBOL_REF method to ABI_V4.
* config/rs6000/altivec.md (build_vector_mask_for_load): Use
replace_equiv_address.
* config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as
rs6000_sr_alias_set and MEM_NOTRAP.
(rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem().
From-SVN: r104145
Eric Botcazou [Sun, 11 Sep 2005 21:17:51 +0000 (21:17 +0000)]
tree.c (contains_placeholder_p): Properly handle CALL_EXPR again.
* tree.c (contains_placeholder_p) <tcc_expression>: Properly
handle CALL_EXPR again.
From-SVN: r104144
Francois-Xavier Coudert [Sun, 11 Sep 2005 19:39:35 +0000 (21:39 +0200)]
re PR libfortran/19872 ([4.0 only] closed and re-opened file not overwriten)
PR libfortran/19872
* gfortran.dg/overwrite_1.f: New test.
From-SVN: r104143
Francois-Xavier Coudert [Sun, 11 Sep 2005 13:34:57 +0000 (15:34 +0200)]
re PR libfortran/20179 (cannot mix C and Fortran I/O)
PR libfortran/20179
* io/unix.c (is_preconnected): Add function to test if a stream
corresponds to a preconnected unit.
* io/io.h: Add prototype for is_preconnected.
* io/transfer.c (data_transfer_init): Do not truncate
preconnected units.
From-SVN: r104141
Paolo Carlini [Sun, 11 Sep 2005 09:48:41 +0000 (09:48 +0000)]
re PR libstdc++/23781 (Implicit conversion from NULL to list<T>::iterator)
2005-09-11 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/23781
* include/bits/stl_list.h (_List_iterator<>::
_List_iterator(_List_node_base*), _List_const_iterator<>::
_List_const_iterator(const _List_node_base*)): Make explicit.
(list<>::begin(), list<>::end(), list<>::pop_back()): Adjust
consistently.
* include/bits/list.tcc (list<>::insert, list<>::erase): Adjust
consistently.
* include/bits/stl_tree.h (_Rb_tree_iterator<>::
_Rb_tree_iterator(_Link_type), _Rb_tree_const_iterator<>::
_Rb_tree_const_iterator(_Link_type)): Make explicit.
(_Rb_tree<>::begin(), _Rb_tree<>::end()): Adjust consistently.
* include/ext/slist (_Slist_iterator<>::_Slist_iterator(_Node*)):
Make explicit.
(slist<>::erase(iterator), slist<>::erase(iterator, iterator)):
Adjust consistently.
* include/tr1/hashtable (hashtable_iterator<>::
hashtable_iterator(hash_node<>**)): Make explicit.
* testsuite/23_containers/list/23781.cc: New.
* testsuite/23_containers/map/23781.cc: Likewise.
* testsuite/23_containers/multimap/23781.cc: Likewise.
* testsuite/23_containers/multiset/23781.cc: Likewise.
* testsuite/23_containers/set/23781.cc: Likewise.
* testsuite/ext/slist/23781.cc: Likewise.
* testsuite/tr1/6_containers/unordered/23781.cc: Likewise.
* testsuite/23_containers/map/operators/1_neg.cc: Adjust dg-error
line numbers.
* testsuite/23_containers/set/operators/1_neg.cc: Likewise.
* include/tr1/array (array<>::begin(), array<>::end()): Adjust
stylistically for consistency with the other containers.
From-SVN: r104139
Richard Earnshaw [Sun, 11 Sep 2005 07:38:02 +0000 (07:38 +0000)]
* arm/predicates.md (alignable_memory_operand): Delete.
From-SVN: r104138
GCC Administrator [Sun, 11 Sep 2005 00:16:12 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r104133.2
Richard Henderson [Sat, 10 Sep 2005 21:10:42 +0000 (14:10 -0700)]
re PR debug/23806 (-gstabs with VLAs does not work)
PR debug/23806
* dbxout.c (dbxout_expand_expr): New.
(dbxout_symbol): Use it.
From-SVN: r104129
Janne Blomqvist [Sat, 10 Sep 2005 16:31:28 +0000 (19:31 +0300)]
unix.c: Remove mmap code.
2005-09-10 Janne Blomqvist <jblomqvi@cc.hut.fi>
* io/unix.c: Remove mmap code.
From-SVN: r104127
Joseph Myers [Sat, 10 Sep 2005 16:12:53 +0000 (17:12 +0100)]
c99_classification_macros_c.cc: XFAIL on *-*-linux*, not *-*-linux-gnu.
* testsuite/26_numerics/cmath/c99_classification_macros_c.cc:
XFAIL on *-*-linux*, not *-*-linux-gnu.
From-SVN: r104125
Richard Earnshaw [Sat, 10 Sep 2005 08:28:32 +0000 (08:28 +0000)]
arm.c (arm_gen_rotated_half_load): Delete.
* arm.c (arm_gen_rotated_half_load): Delete.
(vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem.
(emit_multi_reg_push, emit_sfm, arm_expand_prologue)
(thumb_set_return_address): Likewise.
(thumb_load_double_from_address): Use adjust_address.
* arm.md (splits calling arm_gen_rotated_half_load): Delete.
(extendhsisi2_mem, movhi_bytes): Use change_address.
(movhi): Use widen_memory_access.
(reload_out_df): Use replace_equiv_address.
* arm-protos.h (arm_gen_rotated_half_load): Delete prototype.
From-SVN: r104124
Josh Conner [Sat, 10 Sep 2005 00:45:21 +0000 (00:45 +0000)]
pr23180-1.C: Removed.
* g++.dg/init/pr23180-1.C: Removed.
* g++.dg/init/pr23180-2.C: Removed.
From-SVN: r104122
GCC Administrator [Sat, 10 Sep 2005 00:16:33 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r104119.2
David Daney [Fri, 9 Sep 2005 23:32:57 +0000 (23:32 +0000)]
20010124-1.c: Removed and split into two new files which are ...
2005-09-09 David Daney <ddaney@avtrex.com>
* gcc.c-torture/execute/
20010124-1.c: Removed and split into two new
files which are ...
* gcc.c-torture/execute/builtins/
20010124-1: ... here and ...
* gcc.c-torture/execute/builtins/
20010124-1-lib.c: ... here.
From-SVN: r104116
Gabriel Dos Reis [Fri, 9 Sep 2005 23:07:55 +0000 (23:07 +0000)]
parser.c (cp_parser_translation_unit): Simplify.
* parser.c (cp_parser_translation_unit): Simplify. The while-block
was actually executed at most once.
From-SVN: r104115
Francois-Xavier Coudert [Fri, 9 Sep 2005 22:01:19 +0000 (00:01 +0200)]
* gfortran.dg/iostat_2.f90: New test.
From-SVN: r104110
Francois-Xavier Coudert [Fri, 9 Sep 2005 21:51:33 +0000 (23:51 +0200)]
re PR libfortran/23784 (close doesn't reset ioparm on error exit)
PR libfortran/23784
* io/close.c (st_close): Call library_end even in case of error.
From-SVN: r104108
Richard Henderson [Fri, 9 Sep 2005 21:00:49 +0000 (14:00 -0700)]
dbxout.c: Include expr.h.
* dbxout.c: Include expr.h.
(dbxout_global_decl): Don't suppress for DECL_RTL unset.
(dbxout_symbol): Handle DECL_VALUE_EXPR.
* Makefile.in (dbxout.o): Add EXPR_H.
cp/
* cp-tree.def (ALIAS_DECL): Remove.
* cp-lang.c (cp_init_ts): Remove support for it.
* error.c (dump_decl): Likewise.
* name-lookup.c (pushdecl): Likewise.
* semantics.c (finish_id_expression): Likewise.
* decl2.c (build_anon_union_vars): Use a VAR_DECL with
DECL_VALUE_EXPR instead.
From-SVN: r104106
Thomas Koenig [Fri, 9 Sep 2005 19:20:52 +0000 (19:20 +0000)]
2005-09-09 Thomas Koenig <Thomas.Koenig@online.de>
gfortran.texi: Document IOSTAT= specifier.
From-SVN: r104104
Mark Mitchell [Fri, 9 Sep 2005 18:56:16 +0000 (18:56 +0000)]
re PR c++/22252 (pragma interface/implementation still break synthesized methods)
PR c++/22252
* decl.c (start_preparsed_function): Do not pay attention to
#pragma interface for implicitly-defined methods.
* decl2.c (cp_finish_file): Do not complain about uses of inline
functions that have bodies, even if we decided not to emit the
body in this translation unit.
* semantics.c (note_decl_for_pch): Do not mess with linkage.
(expand_or_defer_fn): Make inline, non-template functions COMDAT
at this point.
PR c++/22252
* g++.dg/ext/interface1.C: New test.
* g++.dg/ext/interface1.h: Likewise.
* g++.dg/ext/interface1a.cc: Likewise.
From-SVN: r104103
Thomas Koenig [Fri, 9 Sep 2005 18:21:45 +0000 (18:21 +0000)]
gfortran.h: Add iomsg to gfc_open, gfc_close, gfc_filepos, gfc_inquire and gfc_dt.
2005-09-09 Thomas Koenig <Thomas.Koenig@online.de>
* gfortran.h: Add iomsg to gfc_open, gfc_close, gfc_filepos,
gfc_inquire and gfc_dt.
* dump-parse-tree.c (gfc_show_code_node): Add iomsg
for open, close, file positioning, inquire and namelist.
* io.c (io_tag): Add tag_iomsg.
(resolve_tag): Add standards warning for iomsg.
(match_open_element): Add iomsg.
(gfc_free_open): Add iomsg.
(gfc_resolve_open): Add iomsg.
(gfc_free_close): Add iomsg.
(match_close_element): Add iomsg.
(gfc_resolve_close): Add iomsg.
(gfc_free_filepos): Add iomsg.
(match_file_element): Add iomsg.
(gfc_resolve_filepos): Add iostat and iomsg.
(match-dt_element): Add iomsg.
(gfc_free_dt): Add iomsg.
(gfc_resolve_dt): Add iomsg.
(gfc_free_inquire): Add iomsg.
(match_inquire_element): Add iomsg.
(gfc_resolve_inquire): Add iomsg.
* trans_io.c: Add ioparm_iomsg and ioparm_iomsg_len.
(gfc_build_io_library_fndecls): Add iomsg as last field.
(gfc_trans_open): Add iomsg.
(gfc_trans_close): Add iomsg.
(build_fileos): Call set_string for iomsg.
(gfc_trans_inquire): Add iomsg.
(build_dt): Add iomsg.
2005-09-09 Thomas Koenig <Thomas.Koenig@online.de>
* io/io.h: Add iomsg as last field of st_parameter.
* runtime/error.c (generate_error): If iomsg is present, copy
the message there.
2005-09-09 Thomas Koenig <Thomas.Koenig@online.de>
* gfortran.dg/iomsg_1.f90: New test case.
From-SVN: r104102
Zdenek Dvorak [Fri, 9 Sep 2005 16:17:25 +0000 (18:17 +0200)]
re PR tree-optimization/23509 (ICE with ivopts)
PR tree-optimization/23509
* tree-cfg.c (replace_uses_by): Use replace_exp.
* tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced
pointers have name_mem_tag or type_mem_tag set.
From-SVN: r104099
Andrew Haley [Fri, 9 Sep 2005 16:04:11 +0000 (16:04 +0000)]
re PR libgcj/23182 (instanceof sometimes fails if compiled with -findirect-dispatch)
2005-09-09 Andrew Haley <aph@redhat.com>
PR libgcj/23182
* expr.c (pop_type_0): If the expected type is object or ptr
(i.e. void*), return the type of the object we just popped from
the stack.
From-SVN: r104098
Josh Conner [Fri, 9 Sep 2005 15:59:29 +0000 (15:59 +0000)]
Fix for 23180 also fixes 21135 - added to change description.
From-SVN: r104097
Andrew Haley [Fri, 9 Sep 2005 13:06:24 +0000 (13:06 +0000)]
URLClassLoader.java (addURLImpl): Synchronize on the loader.
2005-09-08 Andrew Haley <aph@redhat.com>
* java/net/URLClassLoader.java (addURLImpl): Synchronize on the
loader.
(toString): Likewise.
From-SVN: r104095
Andrew Haley [Fri, 9 Sep 2005 13:05:20 +0000 (13:05 +0000)]
re PR libgcj/22084 (Divide_1 test case hangs)
2005-09-08 Andrew Haley <aph@redhat.com>
PR java/22084
* include/i386-signal.h (HANDLE_DIVIDE_OVERFLOW): Bump IP by 1 if
R/M field in instruction is 100.
From-SVN: r104094
Sebastian Pop [Fri, 9 Sep 2005 11:31:16 +0000 (13:31 +0200)]
tree-chrec.c (evolution_function_is_invariant_rec_p): Use CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead of...
* tree-chrec.c (evolution_function_is_invariant_rec_p): Use
CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead
of wrongly accessing operands.
From-SVN: r104093
Sebastian Pop [Fri, 9 Sep 2005 10:56:41 +0000 (12:56 +0200)]
Makefile.in (tree-chrec.o): Depends on SCEV_H.
* Makefile.in (tree-chrec.o): Depends on SCEV_H.
* tree-chrec.c: Include tree-scalar-evolution.h.
(chrec_convert): Instantiate the base and step before calling
scev_probably_wraps_p that would fail on parametric evolutions.
Collect all the fails into a single section failed_to_convert,
print a diagnostic, and return chrec_dont_know instead of calling
fold_convert.
* tree-scalar-evolution.c (loop_closed_phi_def): New.
(instantiate_parameters_1): Avoid instantiation of loop closed ssa
phi nodes.
(scev_const_prop): Don't replace the definition of a loop closed ssa
phi node by itself, or by another loop closed ssa phi node.
* tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check
that base and step are defined.
From-SVN: r104092
Benjamin Kosnik [Fri, 9 Sep 2005 10:14:55 +0000 (10:14 +0000)]
debug.cc (iterator_base_mutex): Make static for internal linkage.
2005-09-09 Benjamin Kosnik <bkoz@redhat.com>
Jakub Jelinek <jakub@redhat.com>
* src/debug.cc (iterator_base_mutex): Make static for internal
linkage.
* src/locale_init.cc (locale_mutex): Same.
* src/mt_allocator.cc (freelist_mutex): Same.
* src/pool_allocator.cc (palloc_init_mutex): Same.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r104090
Richard Guenther [Fri, 9 Sep 2005 09:00:42 +0000 (09:00 +0000)]
re PR c++/23624 (ICE: internal compiler error: in invert_truthvalue, at fold-const.c:2697)
2005-09-09 Richard Guenther <rguenther@suse.de>
PR c++/23624
* fold-const.c (fold_ternary): Check truth_value_p before
calling invert_truthvalue.
* g++.dg/tree-ssa/pr23624.C: New testcase.
From-SVN: r104083
Nick Clifton [Fri, 9 Sep 2005 08:39:18 +0000 (08:39 +0000)]
Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
* Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
* libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed dimension of
these arrays.
* libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of these arrays.
* longlong.h: Only provide a prototype for the __clz_tab[] array if this
header has not been included from libgcc2.h.
* config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than defining
own types.
Provide prototypes for exported functions.
Use the __clz_tab[] and __popcount_tab[] arrays provided by libgcc2.c.
From-SVN: r104081
Richard Sandiford [Fri, 9 Sep 2005 06:45:15 +0000 (06:45 +0000)]
* match.h (gfc_match_equiv_variable): Declare.
From-SVN: r104080
Richard Sandiford [Fri, 9 Sep 2005 06:35:55 +0000 (06:35 +0000)]
Fix filenames in last entry.
From-SVN: r104078
Richard Sandiford [Fri, 9 Sep 2005 06:34:08 +0000 (06:34 +0000)]
re PR fortran/19239 ([4.0 only] gfortran ICE on vector subscript expressions)
PR fortran/19239
* Makefile.in (fortran/trans-expr.o): Depend on dependency.h.
* dependency.h (gfc_ref_needs_temporary_p): Declare.
* dependency.c (gfc_ref_needs_temporary_p): New function.
(gfc_check_fncall_dependency): Use it instead of inlined check.
By so doing, take advantage of the fact that character substrings
within an array reference also need a temporary.
* trans.h (GFC_SS_VECTOR): Adjust comment.
* trans-array.c (gfc_free_ss): Remove GFC_SS_VECTOR case.
(gfc_set_vector_loop_bounds): New function.
(gfc_add_loop_ss_code): Call it after evaluating the subscripts of
a GFC_SS_SECTION. Deal with the GFC_SS_VECTOR case by evaluating
the vector expression and caching its descriptor for use within
the loop.
(gfc_conv_array_index_ref, gfc_conv_vector_array_index): Delete.
(gfc_conv_array_index_offset): Handle scalar, vector and range
dimensions as separate cases of a switch statement. In the vector
case, use the loop variable to calculate a vector index and use the
referenced element as the dimension's index. Perform bounds checking
on this final index.
(gfc_conv_section_upper_bound): Return null for vector indexes.
(gfc_conv_section_startstride): Give vector indexes a start value
of 0 and a stride of 1.
(gfc_conv_ss_startstride): Adjust for new GFC_SS_VECTOR representation.
(gfc_conv_expr_descriptor): Expand comments. Generalize the
handling of the !want_pointer && !direct_byref case. Use
gfc_ref_needs_temporary_p to decide whether the variable case
needs a temporary.
(gfc_walk_variable_expr): Handle DIMEN_VECTOR by creating a
GFC_SS_VECTOR index.
* trans-expr.c: Include dependency.h.
(gfc_trans_arrayfunc_assign): Fail if the target needs a temporary.
2005-09-09 Richard Sandiford <richard@codesourcery.com>
PR fortran/21104
* trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
from trans-expr.c.
(gfc_init_interface_mapping, gfc_free_interface_mapping)
(gfc_add_interface_mapping, gfc_finish_interface_mapping)
(gfc_apply_interface_mapping): Declare.
* trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
(gfc_trans_allocate_temp_array): Add pre and post block arguments.
* trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
(gfc_trans_allocate_array_storage): Replace loop argument with
separate pre and post blocks.
(gfc_trans_allocate_temp_array): Add pre and post block arguments.
Update call to gfc_trans_allocate_array_storage.
(gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
interface to gfc_trans_allocate_temp_array.
* trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
Moved to trans.h.
(gfc_init_interface_mapping, gfc_free_interface_mapping)
(gfc_add_interface_mapping, gfc_finish_interface_mapping)
(gfc_apply_interface_mapping): Make extern.
(gfc_conv_function_call): Build an interface mapping for array
return values too. Call gfc_set_loop_bounds_from_array_spec.
Adjust call to gfc_trans_allocate_temp_array so that code is
added to SE rather than LOOP.
From-SVN: r104077
Richard Sandiford [Fri, 9 Sep 2005 06:22:28 +0000 (06:22 +0000)]
re PR fortran/21104 (Segmentation fault on correct code)
PR fortran/21104
* trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
from trans-expr.c.
(gfc_init_interface_mapping, gfc_free_interface_mapping)
(gfc_add_interface_mapping, gfc_finish_interface_mapping)
(gfc_apply_interface_mapping): Declare.
* trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
(gfc_trans_allocate_temp_array): Add pre and post block arguments.
* trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
(gfc_trans_allocate_array_storage): Replace loop argument with
separate pre and post blocks.
(gfc_trans_allocate_temp_array): Add pre and post block arguments.
Update call to gfc_trans_allocate_array_storage.
(gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
interface to gfc_trans_allocate_temp_array.
* trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
Moved to trans.h.
(gfc_init_interface_mapping, gfc_free_interface_mapping)
(gfc_add_interface_mapping, gfc_finish_interface_mapping)
(gfc_apply_interface_mapping): Make extern.
(gfc_conv_function_call): Build an interface mapping for array
return values too. Call gfc_set_loop_bounds_from_array_spec.
Adjust call to gfc_trans_allocate_temp_array so that code is
added to SE rather than LOOP.
From-SVN: r104075
Richard Sandiford [Fri, 9 Sep 2005 06:00:40 +0000 (06:00 +0000)]
re PR fortran/12840 ([4.0 only] Unable to find scalarization loop specifier)
PR fortran/12840
* trans.h (gfor_fndecl_internal_realloc): Declare.
(gfor_fndecl_internal_realloc64): Declare.
* trans-decl.c (gfor_fndecl_internal_realloc): New variable.
(gfor_fndecl_internal_realloc64): New variable.
(gfc_build_builtin_function_decls): Initialize them.
* trans-array.h (gfc_trans_allocate_temp_array): Add a fourth argument.
* trans-array.c (gfc_trans_allocate_array_storage): Add an argument
to say whether the array can grow later. Don't allocate the array
on the stack if so. Don't call malloc for zero-sized arrays.
(gfc_trans_allocate_temp_array): Add a similar argument here.
Pass it along to gfc_trans_allocate_array_storage.
(gfc_get_iteration_count, gfc_grow_array): New functions.
(gfc_iterator_has_dynamic_bounds): New function.
(gfc_get_array_constructor_element_size): New function.
(gfc_get_array_constructor_size): New function.
(gfc_trans_array_ctor_element): Replace pointer argument with
a descriptor tree.
(gfc_trans_array_constructor_subarray): Likewise. Take an extra
argument to say whether the variable-sized part of the constructor
must be allocated using realloc. Grow the array when this
argument is true.
(gfc_trans_array_constructor_value): Likewise.
(gfc_get_array_cons_size): Delete.
(gfc_trans_array_constructor): If the loop bound has not been set,
split the allocation into a static part and a dynamic part. Set
loop->to to the bounds for static part before allocating the
temporary. Adjust call to gfc_trans_array_constructor_value.
(gfc_conv_loop_setup): Allow any constructor to determine the
loop bounds. Check whether the constructor has a dynamic size
and prefer to use something else if so. Expect the loop bound
to be set later. Adjust call to gfc_trans_allocate_temp_array.
* trans-expr.c (gfc_conv_function_call): Adjust another call here.
From-SVN: r104073
Josh Conner [Fri, 9 Sep 2005 01:39:36 +0000 (01:39 +0000)]
re PR c++/23180 (Segfault on const initializer with bogus pointer arithmetics)
PR c++/23180
* g++.dg/init/pr23180-1.C: New test.
* g++.dg/init/pr23180-2.C: New test.
From-SVN: r104070
Josh Conner [Fri, 9 Sep 2005 01:37:29 +0000 (01:37 +0000)]
re PR c++/23180 (Segfault on const initializer with bogus pointer arithmetics)
PR c++/23180
* expr.c (expand_expr_addr_expr_1): Don't invoke
expand_simple_binop for EXPAND_INITIALIZER.
From-SVN: r104069
Richard Henderson [Fri, 9 Sep 2005 00:47:05 +0000 (17:47 -0700)]
re PR debug/23190 (debug info omitted for uninitialized variables (stabs))
PR debug/23190
* toplev.c (wrapup_global_declaration_1): Split out ...
(wrapup_global_declaration_2): ... from ...
(wrapup_global_declarations): ... here. Return bool.
(check_global_declaration_1): Split out ...
(check_global_declarations): from here.
(emit_debug_global_declarations): New.
* toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
check_global_declaration_1, emit_debug_global_declarations): Declare.
* c-decl.c (c_write_global_declarations_1): Don't create a vector
of decls. Call wrapup_global_declaration_1,
wrapup_global_declaration_2, check_global_declaration_1 directly.
(c_write_global_declarations_2): New.
(ext_block): New.
(c_write_global_declarations): Call c_write_global_declarations_2.
* langhooks.c (write_global_declarations): Call
emit_debug_global_declarations.
* cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't
remove decls that have DECL_RTL_SET_P.
* passes.c (rest_of_decl_compilation): Invoke
cgraph_varpool_finalize_decl for all but functions.
cp/
* decl.c (wrapup_globals_for_namespace): Call
emit_debug_global_declarations.
* decl2.c (cp_finish_file): Likewise.
From-SVN: r104065
Paul Thomas [Fri, 9 Sep 2005 00:27:21 +0000 (00:27 +0000)]
19990905-0.f: Remove XFAIL...
2005-09-09 Paul Thomas <pault@gcc.gnu.org>
* gfortran.dg/g77/
19990905-0.f: Remove XFAIL, rearrange
equivalences and add comment to connect the test with
the PR. - forgotten in previous.
From-SVN: r104061
Paul Thomas [Fri, 9 Sep 2005 00:23:09 +0000 (00:23 +0000)]
re PR fortran/18878 ([4.0 only] erronous error message on vaild USE statement)
2005-09-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/18878
* module.c (find_use_name_n): Based on original
find_use_name. Either counts number of use names for a
given real name or returns use name n.
(find_use_name, number_use_names): Interfaces to the
function find_use_name_n.
(read_module): Add the logic and calls to these functions,
so that mutiple reuses of the same real name are loaded.
2005-09-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/22304
PR fortran/23270
PR fortran/18870
PR fortran/16511
PR fortran/17917
* gfortran.h: Move definition of BLANK_COMMON_NAME from trans-
common.c so that it is accessible to module.c. Add common_head
field to gfc_symbol structure. Add field for the equivalence
name AND new attr field, in_equivalence.
* match.c (gfc_match_common, gfc_match_equivalence): In loops
that flag common block equivalences, emit an error if the
common blocks are different, using sym->common_head as the
common block identifier. Ensure that symbols that are equivalence
associated with a common block are marked as being in_common.
* module.c (write_blank_common): New.
(write_common): Use unmangled common block name.
(load_equiv): New function ported from g95.
(read_module): Call load_equiv.
(write_equiv): New function ported from g95. Correct
string referencing for gfc functions. Give module
equivalences a unique name.
(write_module): Call write_equiv and write_blank_common.
* primary.c (match_variable) Old gfc_match_variable, made
static and third argument provided to indicate if parent
namespace to be visited or not.
(gfc_match_variable) New. Interface to match_variable.
(gfc_match_equiv_variable) New. Interface to match_variable.
* trans-common.c (finish_equivalences): Provide the call
to create_common with a gfc_common_header so that
module equivalences are made external, rather than local.
(find_equivalences): Ensure that all members in common block
equivalences are marked as used. This prevents the subsequent
call to this function from making local unions.
* trans-decl.c (gfc_generate_function_code): Move the call to
gfc_generate_contained_functions to after the call to
gfc_trans_common so the use-associated, contained common
blocks produce the correct references.
(gfc_create_module_variable): Return for equivalenced symbols
with existing backend declaration.
2005-09-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/18878
* gfortran.dg/module_double_reuse.f90: New.
2005-09-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/23270
PR fortran/22304
PR fortran/18870
PR fortran/17917
PR fortran/16511
* gfortran.dg/common_equivalence_1.f: New.
* gfortran.dg/common_equivalence_2.f: New.
* gfortran.dg/common_equivalence_3.f: New.
* gfortran.dg/contained_equivalence_1.f90: New.
* gfortran.dg/module_blank_common.f90: New.
* gfortran.dg/module_commons_1.f90: New.
* gfortran.dg/module_equivalence_1.f90: New.
* gfortran.dg/nested_modules_1.f90: New.
* gfortran.dg/g77/
19990905-0.f: Remove XFAIL, rearrange
equivalences and add comment to connect the test with
the PR.
From-SVN: r104060
GCC Administrator [Fri, 9 Sep 2005 00:17:06 +0000 (00:17 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r104056.2
Tobias Schlüter [Thu, 8 Sep 2005 21:55:59 +0000 (23:55 +0200)]
re PR fortran/23765 (segfault with syntactically wrong common declaration)
fortran/
PR fortran/23765
* match.c (gfc_match_common): Remove unnecessary / wrong special
cases for end-of-statement.
testsuite/
PR fortran/23765
* gfortran.dg/common_6.f90: New test.
From-SVN: r104046
Thomas Fitzsimmons [Thu, 8 Sep 2005 21:26:25 +0000 (21:26 +0000)]
re PR libgcj/23761 (java.library.path doesn't affect module loading path)
2005-09-08 Thomas Fitzsimmons <fitzsim@redhat.com>
PR libgcj/23761
* include/java-props.h (_Jv_Module_Load_Path): Declare variable.
* java/lang/natRuntime.cc (init): Call lt_dlsetsearchpath after
lt_dlinit.
* gnu/classpath/natSystemProperties.cc (_Jv_Module_Load_Path):
Define variable.
(_Jv_SetDLLSearchPath): Do not call lt_dlsetsearchpath. Set
_Jv_Module_Load_Path.
From-SVN: r104044
Janne Blomqvist [Thu, 8 Sep 2005 19:42:59 +0000 (22:42 +0300)]
gfortran.texi: Add section about implemented F2003 features.
2005-09-08 Janne Blomqvist <jblomqvi@cc.hut.fi>
* gfortran.texi: Add section about implemented F2003 features.
From-SVN: r104043
Mark Mitchell [Thu, 8 Sep 2005 18:56:42 +0000 (18:56 +0000)]
re PR c++/23691 (`mpl_::bool_<false>::value' is not a valid template argument for type `bool' because it is a non-constant expression)
PR c++/23691
* decl2.c (mark_used): Instantiate static data members initialized
by constants, even in a template.
PR c++/23691
* g++.dg/template/static16.C: New test.
From-SVN: r104041
Richard Sandiford [Thu, 8 Sep 2005 18:46:06 +0000 (18:46 +0000)]
re PR fortran/15326 ([4.0 only] ICE with assumed length character strings)
PR fortran/15326
* trans-array.c (gfc_add_loop_ss_code): Set ss->string_length in
the GFC_SS_FUNCTION case too.
* trans-expr.c (gfc_conv_function_val): Allow symbols to be bound
to function pointers as well as function decls.
(gfc_interface_sym_mapping, gfc_interface_mapping): New structures.
(gfc_init_interface_mapping, gfc_free_interface_mapping)
(gfc_get_interface_mapping_charlen, gfc_get_interface_mapping_array)
(gfc_set_interface_mapping_bounds, gfc_add_interface_mapping)
(gfc_finish_interface_mapping, gfc_apply_interface_mapping_to_cons)
(gfc_apply_interface_mapping_to_ref)
(gfc_apply_interface_mapping_to_expr)
(gfc_apply_interface_mapping): New functions.
(gfc_conv_function_call): Evaluate the arguments before working
out where the result should go. Make the null pointer case provide
the string length in parmse.string_length. Cope with non-constant
string lengths, using the above functions to evaluate such lengths.
Use a temporary typespec; don't assign to sym->cl->backend_decl.
Don't assign to se->string_length when returning a cached array
descriptor.
From-SVN: r104040
Eric Botcazou [Thu, 8 Sep 2005 16:37:20 +0000 (18:37 +0200)]
tree-vrp.c (extract_range_from_unary_expr): Do not set the range for the result of a conversion if...
* tree-vrp.c (extract_range_from_unary_expr): Do not set the range for
the result of a conversion if the new min and max cannot be compared.
From-SVN: r104036
Richard Sandiford [Thu, 8 Sep 2005 16:06:54 +0000 (16:06 +0000)]
re PR fortran/19928 (Reference of constant derived type component causes failure)
PR fortran/19928
* trans-array.c (gfc_conv_array_ref): Call gfc_advance_se_ss_chain
after handling scalarized references. Make "indexse" inherit from
"se" when handling AR_ELEMENTs.
(gfc_walk_variable_expr): Add GFC_SS_SCALAR entries for each
substring or scalar reference that follows an array section.
* trans-expr.c (gfc_conv_variable): When called from within a
scalarization loop, start out with "ref" pointing to the scalarized
part of the reference. Don't call gfc_advance_se_ss_chain here.
From-SVN: r104035
Andreas Krebbel [Thu, 8 Sep 2005 13:55:30 +0000 (13:55 +0000)]
s390.c (s390_sr_alias_set): Variable removed.
2005-09-08 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_sr_alias_set): Variable removed.
(override_options): Setting s390_sr_alias_set removed.
(save_fpr, save_gprs): Set alias set to vararg or frame.
(restore_fpr, restore_gprs, s390_emit_prologue): Replace
s390_sr_alias_set with get_frame_alias_set ().
(s390_gimplify_va_arg): Replace s390_sr_alias_set with
get_varargs_alias_set ().
From-SVN: r104034
Andrew Pinski [Thu, 8 Sep 2005 13:14:41 +0000 (13:14 +0000)]
re PR objc++/16816 (obj-c++ parser error with multi-colon selectors)
2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
PR obj-c++/16816
* obj-c++.dg/selector-5.mm: New test.
* obj-c++.dg/selector-6.mm: New test.
2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
PR obj-c++/16816
* parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
two CPP_COLON.
From-SVN: r104033
Andrew Pinski [Thu, 8 Sep 2005 13:09:49 +0000 (13:09 +0000)]
re PR objc/20574 (weird error message after a parse error)
2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
PR objc/20574
PR objc/19324
* c-parser.c (c_parser_objc_method_definition): If the next
token is not "{", error out and don't start the function.
2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
PR objc/20574
PR objc/19324
* objc.dg/error-1.m: New test.
From-SVN: r104032
Richard Sandiford [Thu, 8 Sep 2005 09:20:07 +0000 (09:20 +0000)]
re PR fortran/23373 ([4.0 only] Functions returning pointers with pointer argument)
PR fortran/23373
* trans-expr.c (gfc_trans_pointer_assignment): Assign to a temporary
descriptor if the rhs is not a null pointer or variable.
From-SVN: r104029
Jerry DeLisle [Thu, 8 Sep 2005 06:52:04 +0000 (06:52 +0000)]
re PR libfortran/23760 (gfortran incorrectly succeeds on record overflow)
2005-09-07 Jerry DeLisle <jvdelisle@verizon.net>
PR libfortran/23760
* gfortran.dg/g77/1832.f: Remove long string in write statement
to allow the test to pass on correct list directed output with
prepended space.
From-SVN: r104027
James E Wilson [Thu, 8 Sep 2005 00:30:48 +0000 (17:30 -0700)]
Fix xscale-elf gcc testsuite failure.
* gcc.dg/intmax_t-1.c: Disable for xscale*-*-elf*.
From-SVN: r104022
GCC Administrator [Thu, 8 Sep 2005 00:16:16 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r104019.2
Thomas Koenig [Wed, 7 Sep 2005 21:32:21 +0000 (21:32 +0000)]
parameter+save.f90: Rename to
2005-09-07 Thomas Koenig <Thomas.Koenig@online.de>
* gfortran.dg/parameter+save.f90: Rename to
* gfortran.dg/parameter_save.f90: .. this.
From-SVN: r104011
Francois-Xavier Coudert [Wed, 7 Sep 2005 21:25:40 +0000 (23:25 +0200)]
re PR libfortran/23262 ([mingw32] rewind truncates file)
PR libfortran/23262
* acinclude.m4 (LIBGFOR_CHECK_CRLF): New check.
* configure.ac: Use new check.
* configure.in: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.
* io/transfer.c (next_record_w): Add case for CRLF as line
terminator.
* io/unix.c (tempfile, regular_file): Open files with
O_BINARY on systems with CRLF.
From-SVN: r104009
Thomas Koenig [Wed, 7 Sep 2005 21:08:24 +0000 (21:08 +0000)]
re PR fortran/20848 (PARAMETER and SAVE attribute conflict)
2005-09-07 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/20848
* symbol.c(check_conflict): Add conflict for parameter/save,
2005-09-07 Thomas Koenig <Thomas.Koenig@online.de>
PR fortran/20848
* gfortran.dg/parameter+save.f90: New test case.
From-SVN: r104005
Andrew Pinski [Wed, 7 Sep 2005 20:35:19 +0000 (20:35 +0000)]
tree-vrp.c (extract_range_from_expr): Move the check for non nullness after the check for gimple invariant.
2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
* tree-vrp.c (extract_range_from_expr): Move the check for non
nullness after the check for gimple invariant.
From-SVN: r104002
Steve Ellcey [Wed, 7 Sep 2005 20:16:47 +0000 (20:16 +0000)]
re PR libfortran/23419 (unformatted complex I/O with kind=10)
PR libfortran/23419
* io/write.c (extract_int): Use memcpy to access buffer.
(extract_uint): Ditto.
(extract_real): Ditto.
From-SVN: r104000
Richard Kenner [Wed, 7 Sep 2005 12:39:03 +0000 (12:39 +0000)]
* tree.c (host_integerp, tree_low_cst): Correct function comment.
From-SVN: r103989
Kazuhiro Inaoka [Wed, 7 Sep 2005 11:57:47 +0000 (11:57 +0000)]
re PR target/23747 (ICE with -O2, -O3 execute/builtins/memcpy-chk.c)
PR target/23747
* config/m32r.md (movmemsi_internal): Canonicalize order of operands in
PLUS component of template.
From-SVN: r103987
Andreas Krebbel [Wed, 7 Sep 2005 07:52:48 +0000 (07:52 +0000)]
reload1.c (fixup_eh_region_note): Remove assertion.
2005-09-07 Andreas Krebbel <krebbel1@de.ibm.com>
* reload1.c (fixup_eh_region_note): Remove assertion.
(fixup_abnormal_edges): Reverted removal of call to
find_many_sub_basic_blocks made on 2005-08-31.
From-SVN: r103984
Richard Henderson [Wed, 7 Sep 2005 07:47:15 +0000 (00:47 -0700)]
function.c (ARG_POINTER_CFA_OFFSET): Move ...
* function.c (ARG_POINTER_CFA_OFFSET): Move ...
* defaults.h (ARG_POINTER_CFA_OFFSET): ... here.
(INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c.
* dwarf2out.c (struct cfa_loc): Change reg to unsigned int,
rearrange for better packing.
(INCOMING_FRAME_SP_OFFSET): Move to defaults.h.
(lookup_cfa_1): Remove inline marker.
(cfa_equal_p): Split out of ...
(def_cfa_1): ... here. Use INVALID_REGNUM.
(build_cfa_loc): Handle !cfa->indirect.
(frame_pointer_cfa_offset): New.
(dbx_reg_number): Assert register elimination performed; do
leaf register remapping.
(reg_loc_descriptor): Avoid calling dbx_reg_number when unused.
(eliminate_reg_to_offset): New.
(based_loc_descr): Remove can_use_fbreg argument. Use fbreg only
for verifiably local stack frame addresses; re-base to CFA.
(mem_loc_descriptor): Remove can_use_fbreg argument.
(concat_loc_descriptor, loc_descriptor): Likewise.
(containing_function_has_frame_base): Remove.
(rtl_for_decl_location): Don't do register elimination or
leaf register remapping here.
(secname_for_decl): Split out from ..
(add_location_or_const_value_attribute): ... here.
(convert_cfa_to_loc_list): New.
(compute_frame_pointer_to_cfa_displacement): New.
(gen_subprogram_die): Use them.
* tree.h (frame_base_decl): Remove.
* var-tracking.c (frame_base_decl, frame_stack_adjust): Remove.
(prologue_stack_adjust): Remove.
(vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET.
(adjust_stack_reference): Re-base memories to arg_pointer_rtx.
(set_frame_base_location): Remove.
(compute_bb_dataflow, emit_notes_in_bb): Don't call it.
(dump_attrs_list, dump_dataflow_set): Use string concatenation.
(vt_add_function_parameters): Don't eliminate_regs.
(vt_initialize): Don't create frame_base_decl.
From-SVN: r103983
Richard Sandiford [Wed, 7 Sep 2005 07:36:12 +0000 (07:36 +0000)]
re PR fortran/19269 (transpose(reshape(...)) of character array segfaults.)
PR fortran/19269
* simplify.c (gfc_simplify_transpose): Set the result's typespec from
the source, not the first element of the return value.
From-SVN: r103982
Richard Guenther [Wed, 7 Sep 2005 07:20:58 +0000 (07:20 +0000)]
cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR for EMPTY_CLASS_EXPR.
2005-09-07 Richard Guenther <rguenther@suse.de>
* cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
for EMPTY_CLASS_EXPR.
From-SVN: r103981
Eric Botcazou [Wed, 7 Sep 2005 06:19:57 +0000 (08:19 +0200)]
install.texi (*-*-solaris2*): Clarify wording on the recommended version of GNU binutils for 4.x and later.
* doc/install.texi (*-*-solaris2*): Clarify wording on the recommended
version of GNU binutils for 4.x and later.
From-SVN: r103980
Mark Mitchell [Wed, 7 Sep 2005 03:50:08 +0000 (03:50 +0000)]
ggc-page.c (ggc_push_context): Remove.
* ggc-page.c (ggc_push_context): Remove.
(ggc_pop_context): Likewise.
* ggc.h (ggc_push_context): Remove.
(ggc_pop_context): Likewise.
From-SVN: r103979
GCC Administrator [Wed, 7 Sep 2005 00:16:46 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r103975.2
Saurabh Verma [Tue, 6 Sep 2005 22:29:45 +0000 (22:29 +0000)]
re PR target/8973 ([arc-7-elf] the interupt handler does not return properly, uses j.d insted of j.d.f)
2005-09-06 Saurabh Verma <saurabh.verma@codito.com>
PR target/8973
* config/arc/arc.c (arc_output_function_epilogue): Update flags while
returning from an interrupt handler.
From-SVN: r103972
Saurabh Verma [Tue, 6 Sep 2005 22:26:59 +0000 (22:26 +0000)]
re PR target/8972 ([arc-7-elf] the c code ' x << i' causes infinite loop when i = 0)
2005-09-06 Saurabh Verma <saurabh.verma@codito.com>
PR target/8972
* config/arc/arc.c (output_shift): Add check for loop count when
optimizing.
From-SVN: r103971
Steven Bosscher [Tue, 6 Sep 2005 22:06:29 +0000 (22:06 +0000)]
tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA form manually.
* tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA
form manually.
(abs_replacement): Likewise.
(pass_phiopt): Remove TODO_update_ssa.
From-SVN: r103970
Jakub Jelinek [Tue, 6 Sep 2005 20:07:13 +0000 (22:07 +0200)]
re PR c/23075 (Redundant / bogus warning)
PR c/23075
* c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
if "return with no value, in function returning non-void" warning
has been issued.
* tree-cfg.c (execute_warn_function_return): Don't look at
RETURN_EXPRs with TREE_NO_WARNING set.
* typeck.c (check_return_expr): Add no_warning argument. Set
*no_warning to true if "return-statement with no value, in function
returning" warning has been issued.
* cp-tree.h (check_return_expr): Adjust prototype.
* semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
check_return_expr set *no_warning to true.
* gcc.dg/pr23075.c: New test.
* g++.dg/warn/pr23075.C: New test.
From-SVN: r103967
Jakub Jelinek [Tue, 6 Sep 2005 19:57:57 +0000 (21:57 +0200)]
re PR target/22362 (static function calls and global register variables)
PR target/22362
* config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
for internal functions doesn't use registers used by global registers
variables. Use fewer register parameters if there are global register
variables.
* gcc.target/i386/pr22362.c: New test.
From-SVN: r103964
Olivier Hainque [Tue, 6 Sep 2005 19:46:58 +0000 (19:46 +0000)]
re PR middle-end/14997 (ncurses build fails with Ada)
PR middle-end/14997
* expr.c (expand_expr_real) <normal_inner_ref>: Force op0 to mem
when we would be extracting outside its bit span (bitpos+bitsize
larger than its mode), possible with some VIEW_CONVERT_EXPRs from
Ada unchecked conversions.
Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r103963
Jakub Jelinek [Tue, 6 Sep 2005 19:38:58 +0000 (21:38 +0200)]
re PR rtl-optimization/23098 (store of 0.0 to float)
PR rtl-optimization/23098
* gcc.target/i386/pr23098.c: Add dg-require-effective-target ilp32.
From-SVN: r103959
Jakub Jelinek [Tue, 6 Sep 2005 19:27:05 +0000 (21:27 +0200)]
dwarf-char1.c: Further regex fixes.
* gcc.dg/debug/dwarf2/dwarf-char1.c: Further regex fixes.
* gcc.dg/debug/dwarf2/dwarf-char2.c: Likewise.
* gcc.dg/debug/dwarf2/dwarf-char3.c: Likewise.
From-SVN: r103957
Steven Bosscher [Tue, 6 Sep 2005 18:51:26 +0000 (18:51 +0000)]
tree-ssa-pre.c (try_look_through_load): New function.
* tree-ssa-pre.c (try_look_through_load): New function.
(compute_avail): Use it to try to look through loads for some
more useful expressions.
From-SVN: r103956
Saurabh Verma [Tue, 6 Sep 2005 17:51:48 +0000 (17:51 +0000)]
simplify-rtx.c (simplify_binary_operation_1): Correct the condition for detecting cases like (a&a) and (a^a).
* simplify-rtx.c (simplify_binary_operation_1): Correct the
condition for detecting cases like (a&a) and (a^a).
From-SVN: r103955
Tom Tromey [Tue, 6 Sep 2005 16:01:31 +0000 (16:01 +0000)]
re PR libgcj/23739 (JNI: IsAssignableFrom reverses arguments)
PR libgcj/23739:
* testsuite/libjava.jni/pr23739.c: New file.
* testsuite/libjava.jni/pr23739.java: New file.
* testsuite/libjava.jni/pr23739.out: New file.
* jni.cc (_Jv_JNI_IsAssignableFrom): Reversed arguments.
* java/lang/reflect/natMethod.cc (invoke): Updated.
* java/lang/natClass.cc (isAssignableFrom): Updated.
(isInstance): Likewise.
(_Jv_IsAssignableFrom): Reversed arguments.
(_Jv_IsInstanceOf): Updated.
(_Jv_CheckCast): Likewise.
(_Jv_CheckArrayStore): Likewise.
(_Jv_IsAssignableFromSlow): Reversed arguments.
(_Jv_InterfaceAssignableFrom): Likewise.
* link.cc (verify_type_assertions): Updated.
* prims.cc (_Jv_CheckAccess): Updated.
From-SVN: r103953
Andrew Pinski [Tue, 6 Sep 2005 15:22:34 +0000 (15:22 +0000)]
java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's BLOCK_EXPR_BODY before returning the new BIND_EXPR.
2005-09-06 Andrew Pinski <pinskia@physics.uc.edu>
* java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's
BLOCK_EXPR_BODY before returning the new BIND_EXPR.
From-SVN: r103950
Mark Mitchell [Tue, 6 Sep 2005 14:55:06 +0000 (14:55 +0000)]
re PR c++/9782 (constructor not called on higher-dimensional arrays of template types)
* cp-tree.h (rvalue): New function.
* call.c (build_conditional_expr): Use it.
* init.c (build_new_1): Likewise.
* rtti.c (build_dynamic_cast_1): Likewise.
* tree.c (rvalue): New function.
* typeck.c (build_unary_op): Use it.
(build_static_cast_1): Likewise.
* g++.dg/expr/cast6.C: New test.
PR c++/9782
* init.c (build_new_1): Make sure the entire array type is
complete, not just its element types.
PR c++/9782
* g++.dg/init/new15.C: New test.
From-SVN: r103947
Tom Tromey [Tue, 6 Sep 2005 14:22:01 +0000 (14:22 +0000)]
re PR boehm-gc/23662 (Binaries generated by arm-linux-gcj segfault on execution on arm target)
PR libgcj/23662:
* include/private/gcconfig.h (LINUX_STACKBOTTOM): Use instead of
HEURISTIC1 on ARM.
From-SVN: r103946
Keith Besaw [Tue, 6 Sep 2005 11:09:01 +0000 (11:09 +0000)]
Os-vect-95.c: New test.
* gcc.dg/vect/Os-vect-95.c: New test.
* gcc.dg/vect/vect-95.c: Same.
From-SVN: r103942
Keith Besaw [Tue, 6 Sep 2005 10:59:58 +0000 (10:59 +0000)]
common.opt: Add option ftree-vect-loop-version.
* common.opt: Add option ftree-vect-loop-version.
* params.def: Add --param vect-max-version-checks.
* doc/invoke.texi: Document ftree-vect-loop-version and
--param vect-max-version-checks.
* tree-vectorizer.h (_loop_vec_info): Add ptr_mask and
may_misalign_stmts and defines for accessors.
* tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for
LOOP_VINFO_MAY_MISALIGN_STMTS.
(destroy_loop_vec_info): VEC_free for
LOOP_VINFO_MAY_MISALIGN_STMTS.
* tree-vect-analyze.c (vect_compute_data_ref_alignment):
Update documentation.
(vect_update_misalignment_for_peel): New.
(vect_enhance_data_refs_alignment): Update to choose loop
peeling or loop versioning if appropriate for the (potentially)
unaligned data references in the loop.
(vect_analyze_data_refs_alignment): Remove call to
vect_enhance_data_refs_alignment so the checks can be done
earlier.
(vect_analyze_loop): Add call to vect_enhance_data_refs_alignment
and move up call to vect_analyze_data_refs_alignment.
* tree-vect-transform.c (vect_create_cond_for_align_checks): New.
(vect_transform_loop): Add call to loop_version.
From-SVN: r103941
Volker Reichelt [Tue, 6 Sep 2005 10:30:09 +0000 (10:30 +0000)]
* decl.c (check_elaborated_type_specifier): Remove redundant check.
From-SVN: r103939
Jakub Jelinek [Tue, 6 Sep 2005 09:08:07 +0000 (11:08 +0200)]
dwarf-char1.c: Accept more assembler comment start strings.
* gcc.dg/debug/dwarf2/dwarf-char1.c: Accept more assembler comment
start strings.
* gcc.dg/debug/dwarf2/dwarf-char2.c: Likewise.
* gcc.dg/debug/dwarf2/dwarf-char3.c: Likewise.
From-SVN: r103937
Jakub Jelinek [Tue, 6 Sep 2005 08:55:37 +0000 (10:55 +0200)]
re PR c++/23056 (ICE in write_template_arg_literal, at cp/mangle.c)
PR c++/23056
* typeck.c (ignore_overflows): New helper function.
(build_static_cast_1): Use it.
* g++.dg/opt/pr23056.C: New test.
From-SVN: r103936
Jakub Jelinek [Tue, 6 Sep 2005 08:53:11 +0000 (10:53 +0200)]
re PR rtl-optimization/23098 (store of 0.0 to float)
PR rtl-optimization/23098
* cse.c (fold_rtx_mem): Call delegitimize_address target hook.
* simplify-rtx.c (constant_pool_reference_p): New function.
* rtl.h (constant_pool_reference_p): New prototype.
* config/i386/i386.md (pushf split, mov[sdx]f split): Use
constant_pool_reference_p in condition and
avoid_constant_pool_reference in preparation statements.
* gcc.target/i386/pr23098.c: New test.
From-SVN: r103935