Paolo Carlini [Sun, 8 Oct 2006 01:13:03 +0000 (01:13 +0000)]
PR libstdc++/28277 (partial: money_get bits)
2006-10-07 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/28277 (partial: money_get bits)
* include/bits/locale_facets.tcc (money_get<>::do_get(iter_type,
iter_type, bool, ios_base&, ios_base::iostate&, string_type&)):
Avoid __builtin_alloca with no limit, do the work in place.
Kaveh R. Ghazi [Sun, 8 Oct 2006 00:48:26 +0000 (00:48 +0000)]
builtins-config.h: Ensure we use -std=c99 on solaris2.
* gcc.dg/builtins-config.h: Ensure we use -std=c99 on solaris2.
* gcc.dg/torture/builtin-convert-1.c,
gcc.dg/torture/builtin-convert-2.c,
gcc.dg/torture/builtin-convert-3.c,
gcc.dg/torture/builtin-power-1.c: Use -std=c99 on solaris2.
re PR fortran/16580 ([4.1 only] gfortran ICE on test g77.f-torture/execute/intrinsic77.f)
PR fortran/16580
PR fortran/29288
* gcc/fortran/intrinsic.c (add_sym): Define the actual_ok when a
gfc_intrinsic_sym structure is filled.
(gfc_intrinsic_actual_ok): New function.
(add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s, add_sym_4s,
add_sym_5s): Intrinsic subroutines are not allowed as actual
arguments, so we remove argument actual_ok.
(add_functions): Correct the values for actual_ok of all intrinsics.
(add_subroutines): Remove the actual_ok argument, which was never used.
* gcc/fortran/intrinsic.h (gfc_intrinsic_actual_ok): New prototype.
* gcc/fortran/gfortran.h (gfc_resolve_index_func): New prototype.
* gcc/fortran/resolve.c (resolve_actual_arglist): Check whether
an intrinsic used as an argument list is allowed there.
* gcc/fortran/iresolve.c (gfc_resolve_index_func): New function.
(gfc_resolve_len): Change intrinsic function name to agree with
libgfortran.
* gcc/fortran/trans-decl.c (gfc_get_extern_function_decl): Add
new case, because some specific intrinsics take 3 arguments.
* gcc/fortran/intrinsic.texi: DIMAG is a GNU extension.
* libgfortran/Makefile.am: Add the new files to the build
process, and rules to build them.
* libgfortran/Makefile.in: Regenerate.
* libgfortran/m4/misc_specifics.m4: New file.
* libgfortran/m4/specific.m4: Add new special cases for function
with complex argument and real result, like abs_c* and aimag_c*.
* libgfortran/intrinsics/f2c_specifics.F90: Add specifics for
AIMAG, ASINH, ACOSH and ATANH.
* libgfortran/generated/_aimag_c4.F90: New file.
* libgfortran/generated/_aimag_c8.F90: New file.
* libgfortran/generated/_asinh_r10.F90: New file.
* libgfortran/generated/_acosh_r16.F90: New file.
* libgfortran/generated/_aimag_c10.F90: New file.
* libgfortran/generated/_atanh_r16.F90: New file.
* libgfortran/generated/_acosh_r4.F90: New file.
* libgfortran/generated/_acosh_r8.F90: New file.
* libgfortran/generated/_asinh_r4.F90: New file.
* libgfortran/generated/_asinh_r8.F90: New file.
* libgfortran/generated/_asinh_r16.F90: New file.
* libgfortran/generated/_atanh_r4.F90: New file.
* libgfortran/generated/_atanh_r8.F90: New file.
* libgfortran/generated/_acosh_r10.F90: New file.
* libgfortran/generated/misc_specifics.F90: New file.
* libgfortran/generated/_aimag_c16.F90: New file.
* libgfortran/generated/_atanh_r10.F90: New file.
* gcc/testsuite/gfortran.fortran-torture/execute/specifics.f90:
Add tests for using all possible intrinsics as actual arguments.
* gcc/testsuite/gfortran.dg/specifics_1.f90: Add tests for using
all possible intrinsics as actual arguments.
* gcc/testsuite/gfortran.dg/specifics_2.f90: New file.
* gcc/testsuite/gfortran.dg/specifics_3.f90: New file.
Maxim Kuvyrkov [Fri, 6 Oct 2006 21:45:13 +0000 (21:45 +0000)]
re PR rtl-optimization/29128 (ICE: in move_block_after_check, at haifa-sched.c:4337)
2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
PR rtl-optimization/29128
* sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
* sched-ebb.c (advance_target_bb): Use it to fix condition to
allow interblock movement of speculation checks.
Zdenek Dvorak [Fri, 6 Oct 2006 19:32:04 +0000 (21:32 +0200)]
re PR target/29256 (loop performance regression)
PR middle-end/29256
* tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
casted to integer type.
(get_address_cost): Decrease cost of [symbol + index] addressing modes
if they are significantly more expensive than [reg + index] ones.
Paolo Carlini [Fri, 6 Oct 2006 09:57:43 +0000 (09:57 +0000)]
re PR libstdc++/29354 (Error when seeking on an ostringstream)
2006-10-06 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/29354
* include/bits/sstream.tcc (basic_stringbuf<>::seekpos(pos_type,
ios_base::openmode)): Allow for seek to pos_type(off_type(0))
when the stream is empty.
* testsuite/27_io/basic_stringbuf/seekpos/char/29354.cc: New.
* testsuite/27_io/basic_stringbuf/seekpos/wchar_t/29354.cc: New.
Olivier Hainque [Fri, 6 Oct 2006 09:12:09 +0000 (09:12 +0000)]
gimplify.c (gimplify_type_sizes): Don't recurse on the pointed-to type.
* gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
Don't recurse on the pointed-to type.
* c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
types with components of variable size.
* testsuite/gcc.dg/typename-vla-1.c: New case.
* testsuite/gnat.dg/forward_vla.adb: New case.
Jakub Jelinek [Fri, 6 Oct 2006 07:23:00 +0000 (09:23 +0200)]
re PR fortran/28415 (4.2.0 ICE when using automatic array and -fno-automatic)
PR fortran/28415
* trans-decl.c (gfc_finish_var_decl): With -fno-automatic, don't
make artificial variables or pointer to variable automatic array
TREE_STATIC.
Jakub Jelinek [Fri, 6 Oct 2006 07:10:55 +0000 (09:10 +0200)]
scanner.c (skip_free_comments): Return bool instead of void.
* scanner.c (skip_free_comments): Return bool instead of void.
(gfc_next_char_literal): Don't return ' ' if & is missing after
!$omp or !$. Use skip_{free,fixed}_comments directly instead
of gfc_skip_comments.
Paul Thomas [Wed, 4 Oct 2006 16:54:19 +0000 (16:54 +0000)]
[multiple changes]
2006-10-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29343
* resolve.c (resolve_allocate_expr): Exclude derived types from
search for dependences between allocated variables and the
specification expressions for other allocations in the same
statement.
2006-10-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29343
* gfortran.dg/alloc_alloc_expr_2.f90: New test.
Zack Weinberg [Wed, 4 Oct 2006 16:41:55 +0000 (16:41 +0000)]
Fix bug in constraint-check generator, reported by Rask Ingemann Lambertsen:
Fix bug in constraint-check generator, reported by Rask Ingemann
Lambertsen:
* genpreds.c (add_constraint): Don't remove anything from the
expression here.
(write_tm_constrs_h): Detect whether "op" argument is used, and
mark it ARG_UNUSED if it isn't.
(write_insn_const_int_ok_for_constraint): Skip the part of the
expression that would test whether "op" (which is not available
here) is a CONST_INT.
Mark Mitchell [Wed, 4 Oct 2006 06:53:55 +0000 (06:53 +0000)]
re PR c++/29020 (ICE using A<N>::A instead of A<N> in friend declaration)
PR c++/29020
* friend.c (do_friend): Improve comments; add assertion.
* parser.c (cp_parser_nested_name_specifier_opt): Resolve
typenames for qualified names used in declarations, even when
caching qualified name lookup.
PR c++/29020
* g++.dg/template/friend48.C: New test.
Paul Thomas [Tue, 3 Oct 2006 21:40:24 +0000 (21:40 +0000)]
re PR fortran/20779 (ALLOCATEing the STAT variable not detected)
2006-10-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/20779
PR fortran/20891
* resolve.c (find_sym_in_expr): New function that returns true
if a symbol is found in an expression.
(resolve_allocate_expr): Check whether the STAT variable is
itself allocated in the same statement. Use the call above to
check whether any of the allocated arrays are used in array
specifications in the same statement.
2006-10-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/20779
PR fortran/20891
* gfortran.dg/alloc_alloc_expr_1.f90: New test.
Paul Thomas [Tue, 3 Oct 2006 20:13:03 +0000 (20:13 +0000)]
re PR fortran/29284 (ICE for optional subroutine argument)
2006-10-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29284
PR fortran/29321
PR fortran/29322
* trans-expr.c (gfc_conv_function_call): Check the expression
and the formal symbol are present when testing the actual
argument.
PR fortran/25091
PR fortran/25092
* resolve.c (resolve_entries): It is an error if the entries
of an array-valued function do not have the same shape.
2006-10-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29284
* gfortran.dg/optional_assumed_charlen_1.f90: New test.
PR fortran/29321
PR fortran/29322
* gfortran.dg/missing_optional_dummy_2.f90: New test.
PR fortran/25091
PR fortran/25092
* gfortran.dg/entry_array_specs_1.f90: New test.
Uros Bizjak [Tue, 3 Oct 2006 05:52:05 +0000 (07:52 +0200)]
inclhack.def (glibc_mutex_init): Also fix PTHREAD_MUTEX_(RECURSIVE|ERRORCHECK|ADAPTIVE)_NP and...
* inclhack.def (glibc_mutex_init): Also fix
PTHREAD_MUTEX_(RECURSIVE|ERRORCHECK|ADAPTIVE)_NP and
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP initializers.
Jerry DeLisle [Tue, 3 Oct 2006 04:09:49 +0000 (04:09 +0000)]
re PR fortran/19260 (& not required when splitting a token in continuation)
2006-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/19260
* gfortran.dg/continuation.f90: Rename to continuation_1.f90.
* gfortran.dg/continuation_2.f90: New test.
PR fortran/19262
* gfortran.dg/continuation_3.f90: New test.
* gfortran.dg/continuation_4.f90: New test.
* gfortran.dg/continuation_5.f: New test.
* gfortran.dg/continuation_6.f: New test.
Jerry DeLisle [Tue, 3 Oct 2006 03:58:20 +0000 (03:58 +0000)]
re PR fortran/19262 (more than thirty-nine continuation lines should issue a std-warn)
2006-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/19262
* gfortran.h (gfc_option_t): Add max_continue_fixed and max_continue_free.
* options.c (gfc_init_options): Initialize fixed form and free form
consecutive continuation line limits.
* scanner.c (gfc_scanner_init_1): Initialize continue_line
and continue_count. (gfc_next_char_literal): Count the number of
continuation lines in the current statement and warn if
limit is exceeded.
2006-10-02 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/19260
* scanner.c (gfc_next_char_literal): Add check for missing '&'
and warn if in_string, otherwise return ' '.
Mark Mitchell [Mon, 2 Oct 2006 22:21:02 +0000 (22:21 +0000)]
re PR c++/29226 (ICE in make_decl_rtl, at varasm.c:886)
PR c++/29226
* typeck.c (cxx_sizeof_or_alignof_type): Tidy. In templates, do
not try to actually evaluate sizeof for a VLA type.
PR c++/29226
* g++.dg/template/vla1.C: New test.
Mark Mitchell [Mon, 2 Oct 2006 04:12:51 +0000 (04:12 +0000)]
re PR c++/29105 (segfault in add_candidates with a non template base class and a template member function)
PR c++/29105
* pt.c (tsubst_baselink): Substituteinto the qualifying scope.
* semantics.c (baselink_for_fns): Build a baselink, even when
processing a template.
PR c++/29105
* g++.dg/template/member6.C: New test.
* g++.dg/parse/typename7.C: Adjust error markers.
Mark Mitchell [Mon, 2 Oct 2006 04:12:30 +0000 (04:12 +0000)]
re PR c++/29080 (Multiple-inheritance with template method function code triggers "internal compiler error: in build_base_path, at cp/class.c:273")
PR c++/29080
* parser.c (cp_parser_postfix_dot_deref_expression): Use
BASELINK_ACCESS_BINFO as the qualifying scope when calling
adjust_result_of_qualified_name_lookup.
PR c++/29080
* g++.dg/template/member7.C: New test.