Eric Botcazou [Wed, 14 Sep 2005 15:04:56 +0000 (15:04 +0000)]
* tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF.
From-SVN: r104271
Uros Bizjak [Wed, 14 Sep 2005 09:27:01 +0000 (11:27 +0200)]
re PR middle-end/22480 (ICE in convert_move, at expr.c:390 with -ftree-vectorize)
2005-09-14 Uros Bizjak <uros@kss-loka.si>
PR middle-end/22480
* tree-vect-transform.c (vectorizable_operation): Return false for
scalar shift operations and for vector shift operations with
non-invariant shift arguments. Use scalar tree operand op1 as
a shift operand when vector shift insn pattern uses scalar shift
operand.
* Makefile.in (tree-vect-transform.o): Depend on recog.h.
From-SVN: r104264
Olivier Hainque [Wed, 14 Sep 2005 06:59:10 +0000 (06:59 +0000)]
gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized value if it has side-effects.
* gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized
value if it has side-effects.
From-SVN: r104262
Paul Thomas [Wed, 14 Sep 2005 05:12:04 +0000 (05:12 +0000)]
re PR fortran/19358 ([gfortran] Segfault with missing upper bound)
2005-09-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/19358
* trans-array.c (gfc_trans_dummy_array_bias): correct the typo
which uses dim[i].upper for lbound, rather than dim[i].lower.
2005-09-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/19358
* gfortran.fortran-torture/assumed_dummy_1.f90: New test.
From-SVN: r104259
Jonathan Wakely [Wed, 14 Sep 2005 03:22:17 +0000 (04:22 +0100)]
re PR libstdc++/21674 (basic_string vs debug_mode)
2005-09-13 Jonathan Wakely <cow@compsoc.man.ac.uk>
Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/21674
* testsuite/21_strings/basic_string/element_access/char/21674.cc: New.
* testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc:
New.
Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>
From-SVN: r104256
David Edelsohn [Wed, 14 Sep 2005 01:12:43 +0000 (01:12 +0000)]
re PR target/22068 (Multiply-immediate opportunity)
PR target/22068
* config/rs6000/rs6000.md (muldi3): Add mulli alternative.
From-SVN: r104255
Josh Conner [Wed, 14 Sep 2005 00:25:01 +0000 (00:25 +0000)]
re PR c++/23180 (Segfault on const initializer with bogus pointer arithmetics)
PR c++/23180
* g++.dg/init/struct2.C: New test.
* g++.dg/init/struct3.C: New test.
From-SVN: r104254
GCC Administrator [Wed, 14 Sep 2005 00:16:25 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r104251.2
Janis Johnson [Tue, 13 Sep 2005 23:46:26 +0000 (23:46 +0000)]
pr15784-4.c, [...]: Clean up temp files.
* gcc.dg/pr15784-4.c, gcc.dg/pr20130-1.c, gcc.dg/ucnid-6.c:
Clean up temp files.
* gcc.dg/tree-ssa/
20030821-1.c, gcc.dg/tree-ssa/
20040514-2.c,
gcc.dg/tree-ssa/builtin-fprintf-1.c,
gcc.dg/tree-ssa/builtin-fprintf-chk-1.c,
gcc.dg/tree-ssa/builtin-printf-1.c,
gcc.dg/tree-ssa/builtin-printf-chk-1.c,
gcc.dg/tree-ssa/builtin-vfprintf-1.c,
gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c,
gcc.dg/tree-ssa/builtin-vprintf-1.c,
gcc.dg/tree-ssa/builtin-vprintf-chk-1.c, gcc.dg/tree-ssa/ltrans-8.c,
gcc.dg/tree-ssa/pr19055-2.c, gcc.dg/tree-ssa/pr19055.c,
gcc.dg/tree-ssa/pr21985.c: Clean up dump files.
* gcc.dg/vect/fast-math-vect-reduc-5.c, gcc.dg/vect/pr22506.c,
gcc.dg/vect/trapv-vect-reduc-4.c, gcc.dg/vect/vect-116.c,
gcc.dg/vect/vect-reduc-6.c, gcc.dg/vect/vect-reduc-7.c,
gcc.dg/vect/vect-reduc-8.c, gcc.dg/vect/vect-reduc-9.c,
gcc.dg/vect/vect-shift-1.c: Clean up .vect files.
From-SVN: r104247
Alan Modra [Tue, 13 Sep 2005 23:29:31 +0000 (23:29 +0000)]
linux64.h (DBX_OUTPUT_BRAC): Treat function name passed as NAME as if it were label at start of function code.
* config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
passed as NAME as if it were label at start of function code.
From-SVN: r104245
Josh Conner [Tue, 13 Sep 2005 23:27:25 +0000 (23:27 +0000)]
gcc-dg.exp: Load scanipa.exp.
* lib/gcc-dg.exp: Load scanipa.exp.
(cleanup-dump): New procedure.
(cleanup-rtl-dump, cleanup-tree-dump, cleanup-ipa-dump): Use it.
* lib/scandump.exp: New file.
* lib/scantree.exp: Use it.
* lib/scanipa.exp: New file.
From-SVN: r104244
Kaz Kojima [Tue, 13 Sep 2005 22:03:18 +0000 (22:03 +0000)]
sh.md (*movv4sf_i): Add general register cases to the constraints.
* config/sh/sh.md (*movv4sf_i): Add general register cases to
the constraints.
From-SVN: r104242
Andrew Pinski [Tue, 13 Sep 2005 21:50:47 +0000 (21:50 +0000)]
darwin.md (movdf_low_si): Mark the outgoing r constraint as early clobber.
2005-09-13 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint
as early clobber. Rewrite so the PIC register is not implicitly used.
From-SVN: r104241
Erik Edelmann [Tue, 13 Sep 2005 21:46:04 +0000 (00:46 +0300)]
re PR fortran/17740 (ICE in gfc_trans_arrayfunc_assign, at fortran/trans-expr.c:2011)
2005-09-13 Erik Edelmann <erik.edelmann@iki.fi>
fortran/
PR fortran/17740
* trans-expr.c (gfc_trans_arrayfunc_assign): Check value
of attr.elemental for specific function instead of generic name.
testsuite/
PR fortran/17740
* gfortran.dg/generic_4.f90: New test.
From-SVN: r104240
Volker Reichelt [Tue, 13 Sep 2005 21:12:57 +0000 (21:12 +0000)]
tree.c (annotate_with_file_line): Compare line numbers before file names.
* tree.c (annotate_with_file_line): Compare line numbers before
file names.
From-SVN: r104239
David Edelsohn [Tue, 13 Sep 2005 19:22:52 +0000 (19:22 +0000)]
re PR libstdc++/22554 (pb_assoc header build and install overflows exec)
2005-09-12 David Edelsohn <dje@gcc.gnu.org>
PR libstdc++/22554
PR libstdc++/23734
* include/Makefile.am (stamp-assoc): Install each subgroup
of headers separately.
* include/Makefile.in: Regenerate.
From-SVN: r104238
Uros Bizjak [Tue, 13 Sep 2005 19:02:04 +0000 (21:02 +0200)]
re PR target/23816 (ICE in extract_insn, at recog.c:2084)
PR target/23816
* config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3)
(*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns.
From-SVN: r104236
Benjamin Kosnik [Tue, 13 Sep 2005 18:36:39 +0000 (18:36 +0000)]
22309_thread.cc: Remove dg-do run.
2005-09-12 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/ext/mt_allocator/22309_thread.cc: Remove dg-do run.
* testsuite/lib/libstdc++.exp ( proc libstdc++_init): Enable
shared only for linux.
From-SVN: r104235
Ian Lance Taylor [Tue, 13 Sep 2005 17:28:02 +0000 (17:28 +0000)]
loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather than a HOST_WIDEST_INT to gen_doloop_begin.
* loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather
than a HOST_WIDEST_INT to gen_doloop_begin.
From-SVN: r104234
Diego Novillo [Tue, 13 Sep 2005 16:05:37 +0000 (16:05 +0000)]
* tree-dfa.c (dump_variable): Guard against NULL annotations.
From-SVN: r104233
Joseph Myers [Tue, 13 Sep 2005 15:48:36 +0000 (16:48 +0100)]
* zh_CN.po: Update.
From-SVN: r104231
Bastian Blank [Tue, 13 Sep 2005 15:15:37 +0000 (15:15 +0000)]
re PR c++/16171 ([ABI] Problems with standard names in different namespaces)
PR c++/16171
* mangle.c (find_substitution): Do not use special substitutions
for identifiers not in std::.
PR c++/16171
* g++.dg/abi/mangle26.C: New test.
* g++.dg/abi/mangle27.C: New test.
* g++.dg/abi/mangle28.C: New test.
* g++.dg/abi/mangle29.C: New test.
From-SVN: r104228
Mark Mitchell [Tue, 13 Sep 2005 14:45:13 +0000 (14:45 +0000)]
re PR c++/23839 (ICE: expected var_decl, have parm_decl in cxx_mark_addressable, at cp/typeck.c:4343)
PR c++/23839
* typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
for VAR_DECLs.
PR c++/23839
* g++.dg/parse/register1.C: New test.
From-SVN: r104225
Mark Mitchell [Tue, 13 Sep 2005 14:44:08 +0000 (14:44 +0000)]
re PR c++/23842 (Incorrect access control context)
PR c++/23842
* pt.c (tsubst_default_argument): Do treat default argument
expressions as occurring in the context of the function called.
PR c++/23842
* g++.dg/template/access16.C: New test.
From-SVN: r104224
Richard Sandiford [Tue, 13 Sep 2005 11:01:23 +0000 (11:01 +0000)]
* gfortran.dg/char_pack_2.f90: Increase the vector size.
From-SVN: r104220
Richard Sandiford [Tue, 13 Sep 2005 08:07:15 +0000 (08:07 +0000)]
re PR fortran/18899 ([gfortran] ubound wrongly calculated for passed array)
PR fortran/18899
* trans-intrinsic.c (gfc_conv_intrinsic_bound): Move initialization
of argse. Remove now-redundant want_pointer assignment.
* trans-array.c (gfc_conv_expr_descriptor): When not assigning to
a pointer, keep the original bounds of a full array reference.
From-SVN: r104219
Zdenek Dvorak [Tue, 13 Sep 2005 07:33:49 +0000 (09:33 +0200)]
re PR tree-optimization/23817 (ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:398)
PR tree-optimize/23817
* tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
From-SVN: r104218
Richard Sandiford [Tue, 13 Sep 2005 07:15:01 +0000 (07:15 +0000)]
re PR fortran/19269 (transpose(reshape(...)) of character array segfaults.)
gcc/fortran/
PR target/19269
* iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift)
(gfc_resolve_pack, gfc_resolve_reshape, gfc_resolve_spread)
(gfc_resolve_transpose, gfc_resolve_unpack): Add "_char" to the name
for character-based operations.
(gfc_resolve_pack): Remove ATTRIBUTE_UNUSED from array argument.
(gfc_resolve_unpack): Copy the whole typespec from the vector.
* trans-array.c (gfc_conv_expr_descriptor): In the EXPR_FUNCTION
case, get the string length from the scalarization state.
libgfortran/
PR target/19269
* intrinsics/cshift0.c (cshift0): Add an extra size argument.
(cshift0_1, cshift0_2, cshift0_4, cshift0_8): Replace explicit
implementations with...
(DEFINE_CSHIFT): ...this new macro. Define character versions too.
* intrinsics/eoshift0.c (zeros): Delete.
(eoshift0): Add extra size and filler arguments. Use memset if no
bound is provided.
(eoshift0_1, eoshift0_2, eoshift0_4, eoshift0_8): Replace explicit
implementations with...
(DEFINE_EOSHIFT): ...this new macro. Define character versions too.
* intrinsics/eoshift2.c (zeros): Delete.
(eoshift2): Add extra size and filler arguments. Use memset if no
bound is provided.
(eoshift2_1, eoshift2_2, eoshift2_4, eoshift2_8): Replace explicit
implementations with...
(DEFINE_EOSHIFT): ...this new macro. Define character versions too.
* intrinsics/pack.c (pack_internal): New static function, reusing
the contents of pack and adding an extra size argument. Change
"mptr" rather than "m" when calculating the array size.
(pack): Redefine as a forwarder to pack_internal.
(pack_s_internal): New static function, reusing the contents of
pack_s and adding an extra size argument.
(pack_s): Redefine as a forwarder to pack_s_internal.
(pack_char, pack_s_char): New functions.
* intrinsics/reshape.c (reshape_internal): New static function,
reusing the contents of reshape and adding an extra size argument.
(reshape): Redefine as a forwarder to reshape_internal.
(reshape_char): New function.
* intrinsics/spread.c (spread_internal): New static function,
reusing the contents of spread and adding an extra size argument.
(spread): Redefine as a forwarder to spread_internal.
(spread_char): New function.
* intrinsics/transpose.c (transpose_internal): New static function,
reusing the contents of transpose and adding an extra size argument.
(transpose): Redefine as a forwarder to transpose_internal.
(transpose_char): New function.
* intrinsics/unpack.c (unpack_internal): New static function, reusing
the contents of unpack1 and adding extra size and fsize arguments.
(unpack1): Redefine as a forwarder to unpack_internal.
(unpack0): Call unpack_internal instead of unpack1.
(unpack1_char, unpack0_char): New functions.
* m4/cshift1.m4 (cshift1): New static function, reusing the contents
of cshift1_<kind> and adding an extra size argument.
(cshift1_<kind>): Redefine as a forwarder to cshift1.
(cshift1_<kind>_char): New function.
* m4/eoshift1.m4 (zeros): Delete.
(eoshift1): New static function, reusing the contents of
eoshift1_<kind> and adding extra size and filler arguments.
Fix calculation of hstride. Use memset if no bound is provided.
(eoshift1_<kind>): Redefine as a forwarder to eoshift1.
(eoshift1_<kind>_char): New function.
* m4/eoshift3.m4 (zeros): Delete.
(eoshift3): New static function, reusing the contents of
eoshift3_<kind> and adding extra size and filler arguments.
Use memset if no bound is provided.
(eoshift3_<kind>): Redefine as a forwarder to eoshift3.
(eoshift3_<kind>_char): New function.
* generated/cshift1_4.c, generated/cshift1_8.c,
* generated/eoshift1_4.c, generated/eoshift1_8.c,
* generated/eoshift3_4.c, generated/eoshift3_8.c: Regenerate.
From-SVN: r104217
Francois-Xavier Coudert [Tue, 13 Sep 2005 06:24:18 +0000 (08:24 +0200)]
configure.in: Recognize f95 in the --enable-languages option...
* configure.in: Recognize f95 in the --enable-languages option,
and substitute it for fortran, issuing a warning.
* configure: Regenerate.
* Make-lang.in: Change targets prefixes from f95 to fortran.
* config-lang.in: Change language name to "fortran".
* lang.opt: Change language name to "fortran".
* options.c: Change CL_F95 to CL_Fortran.
From-SVN: r104215
Benjamin Kosnik [Tue, 13 Sep 2005 02:47:14 +0000 (02:47 +0000)]
libstdc++.exp (v3-build_support): Use sharedlib for type of target_compile.
2005-09-12 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/lib/libstdc++.exp (v3-build_support): Use sharedlib for
type of target_compile.
(v3_target_compile): Set flags for sharelib type.
From-SVN: r104209
Mark Mitchell [Tue, 13 Sep 2005 02:41:07 +0000 (02:41 +0000)]
re PR c++/23841 (Floating-point literals cast to integral types should be accepted in integer constant expressions)
PR c++/23841
* parser.c (cp_parser_primary_expression): Recognize the closing
">" of a template-argument-list after a floating-point literal as
the end of a cast expression.
PR c++/23841
* g++.dg/parse/template17.C: New test.
From-SVN: r104208
Alan Modra [Tue, 13 Sep 2005 02:00:53 +0000 (02:00 +0000)]
re PR target/23774 (dealloc of dynamic stack space breaks backchain)
PR target/23774
* config/rs6000/rs6000.md (restore_stack_block): Write the backchain
word before changing the stack pointer. Use gen_frame_mem for MEMs.
Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
(restore_stack_nonlocal): Likewise.
(save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
From-SVN: r104206
GCC Administrator [Tue, 13 Sep 2005 00:16:23 +0000 (00:16 +0000)]
Daily bump.
[[Split portion of a mixed commit.]]
From-SVN: r104200.2
Thomas Fitzsimmons [Mon, 12 Sep 2005 23:50:01 +0000 (23:50 +0000)]
re PR libgcj/23762 (java.library.path should default to value of environment variable specified by LTDL_SHLIBPATH_VAR)
2005-09-12 Thomas Fitzsimmons <fitzsim@redhat.com>
PR libgcj/23762
* shlibpath.m4: New file.
* configure.ac: If libltdl is being used call AC_LTDL_SHLIBPATH
macro.
* gnu/classpath/natSystemProperties.cc (insertSystemProperties)
[USE_LTDL]: If it was not defined with -D set java.library.path to
the value of LTDL_SHLIBPATH_VAR.
From-SVN: r104198
Benjamin Kosnik [Mon, 12 Sep 2005 23:09:41 +0000 (23:09 +0000)]
re PR libstdc++/22554 (pb_assoc header build and install overflows exec)
2005-09-12 Benjamin Kosnik <bkoz@redhat.com>
David Edelsohn <dje@gcc.gnu.org>
PR libstdc++/22554
PR libstdc++/23734
* include/Makefile.am (assoc_headers): Break into five sub values.
(install-headers): Use them.
(stamp-assoc): Same.
* include/Makefile.in: Regenerate.
From-SVN: r104196
Mark Mitchell [Mon, 12 Sep 2005 22:38:34 +0000 (22:38 +0000)]
re PR c++/23789 (compilation error when template parameters have certain complexity)
PR c++/23789
* cvt.c (perform_qualification_conversions): Don't create
unnecessary NOP_EXPRs.
* pt.c (tsubst_template_arg): Use fold_non_dependent_expr.
PR c++/23789
* g++.dg/template/nontype14.C: New test.
From-SVN: r104193
Paolo Carlini [Mon, 12 Sep 2005 21:13:04 +0000 (21:13 +0000)]
[multiple changes]
2005-09-12 Chris Jefferson <chris@bubblescope.net>
* include/bits/stl_algo.h (search_n): Delegate to specializations.
(search_n(,,,,binary_predicate)): Likewise.
(__search_n(forward_iterator_tag)): Original search_n, tweak to
remove an unnecessary comparison.
(__search_n(,,,,binary_predicate,forward_iterator_tag)): Likewise.
2005-09-12 Jim Xochellis <jimxoch@yahoo.gr>
* include/bits/stl_algo.h (__search_n(std::random_access_iterator_tag)):
Add specialization.
(__search_n(,,,,binary_predicate,std::random_access_iterator_tag)):
Likewise.
From-SVN: r104192
Benjamin Kosnik [Mon, 12 Sep 2005 20:32:54 +0000 (20:32 +0000)]
re PR libstdc++/23417 (bits/stl_tree.h isn't -Weffc++ clean)
2005-09-12 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/23417
* include/bits/stl_list.h (_List_impl): Use member initialization
list for -Weffc++.
* include/bits/stl_tree.h (_Rb_tree_impl): Same.
From-SVN: r104191
Ian Lance Taylor [Mon, 12 Sep 2005 19:54:23 +0000 (19:54 +0000)]
re PR c++/7874 (g++ finds friend functions defined in class-definition but not declared in the enclosing namespace)
./ PR g++/7874
* c.opt (ffriend-injection): New C++ option.
* doc/invoke.texi (Option Summary): Mention -ffriend-injection.
(C++ Dialect Options): Document -ffriend-injection.
cp/
PR g++/7874
* cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
bitfield. Make dummy bitfield one bit smaller.
(DECL_HIDDEN_FRIEND_P): Define.
(pushdecl_maybe_friend): Declare.
(pushdecl_top_level_maybe_friend): Declare.
* decl.c (duplicate_decls): Add newdecl_is_friend parameter.
Change prototype and all callers. Add assertion that a
DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P. Set
DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
appropriate.
* name-lookup.c (supplement_binding): Don't ignore a
DECL_HIDDEN_FRIEND_P.
(pushdecl_maybe_friend): Break out contents of pushdecl. Add
is_friend parameter. Set DECL_ANTICIPATED and
DECL_HIDDEN_FRIEND_P for a friend function.
(pushdecl): Just call pushdecl_maybe_friend.
(pushdecl_with_scope): Add is_friend parameter. Change prototype
and all callers.
(pushdecl_namespace_level): Likewise.
(push_overloaded_decl): Likewise. Check DECL_HIDDEN_FRIEND_P as
well as DECL_ANTICIPATED when checking for a builtin.
(do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
DECL_ANTICIPATED when checking for a builtin.
(do_nonmember_using_decl): Likewise.
(pushdecl_top_level_1): Add is_friend parameter. Change all
callers.
(pushdecl_top_level_maybe_friend): New function.
(remove_hidden_names): New function.
(struct arg_lookup): Add args field.
(friend_of_associated_class_p): New static function.
(arg_assoc_namespace): Ignore hidden functions which are not
friends of an associated class of some argument.
(lookup_arg_dependent): Remove hidden functions from list passed
in. Initialize k.args.
* name-lookup.h (remove_hidden_names): Declare.
* friend.c (do_friend): Call pushdecl_maybe_friend instead of
pushdecl.
* call.c (add_function_candidate): Change DECL_ANTICIPATED test to
an assertion, with a check for DECL_HIDDEN_FRIEND_P.
(build_new_function_call): Add koenig_p parameter. Change
prototype and callers.
* pt.c (register_specialization): Add is_friend parameter. Change
all callers.
(push_template_decl_real): Change is_friend parameter to bool.
Change prototype and all callers.
(tsubst_friend_class): Call pushdecl_top_level_maybe_friend
instead of pushdecl_top_level.
testsuite/
PR g++/7874
* g++.dg/lookup/friend7.C: New test.
* g++.dg/lookup/friend8.C: New test.
* g++.dg/parse/defarg4.C: Add a parameter to the friend function,
so that it will be found via argument dependent lookup.
* g++.old-deja/g++.brendan/crash56.C: Don't expect errors for
friend functions which will no longer be found.
* g++.old-deja/g++.jason/friend.C: Add a parameter to the friend
function g, so that it will be found via argument dependent
lookup.
* g++.old-deja/g++.jason/scoping15.C: Use -ffriend-injection.
* g++.old-deja/g++.mike/net43.C: Likewise.
From-SVN: r104188
Benjamin Kosnik [Mon, 12 Sep 2005 19:48:04 +0000 (19:48 +0000)]
re PR libstdc++/23417 (bits/stl_tree.h isn't -Weffc++ clean)
2005-09-12 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/23417
* include/bits/stl_list.h (_List_impl): Use member initialization
list for -Weffc++.
From-SVN: r104187
Mark Mitchell [Mon, 12 Sep 2005 19:00:57 +0000 (19:00 +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
* g++.dg/template/static16.C: New test.
From-SVN: r104186
Tom Tromey [Mon, 12 Sep 2005 17:42:53 +0000 (17:42 +0000)]
* Imported zlib 1.2.3; merged local changes.
From-SVN: r104184
Tom Tromey [Mon, 12 Sep 2005 17:04:02 +0000 (17:04 +0000)]
This commit was generated by cvs2svn to compensate for changes in r104181,
which included commits to RCS files with non-trunk default branches.
From-SVN: r104182
Tom Tromey [Mon, 12 Sep 2005 17:03:48 +0000 (17:03 +0000)]
Initial revision
From-SVN: r104179
Josh Conner [Mon, 12 Sep 2005 15:50:08 +0000 (15:50 +0000)]
pr middle-end/23237
pr middle-end/23237
* gcc.c-torture/compile/pr23237.c: New test.
From-SVN: r104177
Josh Conner [Mon, 12 Sep 2005 15:46:35 +0000 (15:46 +0000)]
pr middle-end/23237
pr middle-end/23237
* ipa-reference.c (static_execute): Don't mark variables in
named sections TREE_READONLY.
From-SVN: r104176
Alan Modra [Mon, 12 Sep 2005 14:14:21 +0000 (23:44 +0930)]
rs6000.c (get_next_active_insn): Simplify test for stack_tie.
* config/rs6000/rs6000.c (get_next_active_insn): Simplify test for
stack_tie.
From-SVN: r104173
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