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.
* gcc/tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix
comments to reflect actual behavior and relationship between
DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
* gcc/doc/c-tree.texi (Working with declarations): Fix documentation
of FIELD_DECL likewise.
Paolo Carlini [Sun, 1 Oct 2006 08:27:49 +0000 (08:27 +0000)]
basic_file_stdio.cc: As an extension...
2006-10-01 Paolo Carlini <pcarlini@suse.de>
* config/io/basic_file_stdio.cc: As an extension, and
consistently with C facilities, allow for in|out|app and
in|out|app|binary openmodes.
* testsuite/27_io/basic_filebuf/open/char/4.cc: New.
Brooks Moses [Sun, 1 Oct 2006 00:51:21 +0000 (00:51 +0000)]
invoke.texi: Add mention of BOZ constants and integer overflow to -fno-range-check.
2006-09-30 Brooks Moses <bmoses@stanford.edu>
* invoke.texi: Add mention of BOZ constants and integer
overflow to -fno-range-check.
* fortran.texi: Add mention of -fno-range-check to
section on BOZ contants.
Keith Seitz [Sat, 30 Sep 2006 19:20:16 +0000 (19:20 +0000)]
java-interp.h (prepared): Change type to pc_t.
* include/java-interp.h (prepared): Change type to pc_t.
(insn_index): Define for both DIRECT_THREADED and bytecode interpreters.
* interpret.cc [!DIRECT_THREADED] (POKEI): Fix typo.
(insn_index): Implement for bytecode interpreter.
* interpret-run.cc [!DIRECT_THREADED] (AVAL1U): Add _Jv_Linker class
qualifier to resolve_pool_entry.
[!DIRECT_THREADED] (AVAL2U): Likewise.
[!DIRECT_THREADED] bytecode() cannot be called without an object.
Changed all typos.
[!DIRECT_THREADED] Likewise for defining_class.
Eric Botcazou [Sat, 30 Sep 2006 13:31:29 +0000 (13:31 +0000)]
re PR rtl-optimization/28096 (fdlibm/strtod.c miscompiled at -O2)
PR rtl-optimization/28096
* ifcvt.c (check_cond_move_block): Return FALSE if the source of an
assignment has already been used as a destination earlier in the
block.
Joseph Myers [Fri, 29 Sep 2006 21:18:51 +0000 (22:18 +0100)]
re PR other/25035 (libssp causes a failure with cross compilers with unified trees)
PR other/25035
* configure.ac (AC_EXEEXT): Remove.
(GCC_NO_EXECUTABLES): Call.
(ssp_use_symver): Default to no if unable to link.
(AC_CHECK_FUNCS): Hardwire results if unable to link.
* aclocal.m4, configure, Makefile.in: Regenerate.
re PR libfortran/18791 (CABS specifics declared of wrong type)
PR fortran/18791
* gfortran.dg/specifics_1.f90: New test.
* gfortran.fortran-torture/execute/specifics.f90: Add tests for
complex specifics.
* m4/specific.m4: Special-case cabs so that its return type is
real. Special-case conjg so that their suffices are _4, _8, _10 and
_16 instead of _c4, _c8, _c10 and _c16.
* intrinsics/f2c_specifics.F90: Special-case conjg functions so
that their suffices are _4 and _8 instead of _c4 and _c8.
* generated/_conjg_c4.F90: Regenerate.
* generated/_conjg_c8.F90: Regenerate.
* generated/_conjg_c10.F90: Regenerate.
* generated/_conjg_c16.F90: Regenerate.
* generated/_abs_c4.F90: Regenerate.
* generated/_abs_c8.F90: Regenerate.
* generated/_abs_c10.F90: Regenerate.
* generated/_abs_c16.F90: Regenerate.
inclhack.def (solaris_mutex_init_2): Update for Solaris9.
* inclhack.def (solaris_mutex_init_2): Update for Solaris9.
Prevent it from running on solaris10 or later.
(solaris_once_init_2): Fix comment.
* tests/base/pthread.h: Update.
Eric Botcazou [Fri, 29 Sep 2006 06:52:04 +0000 (06:52 +0000)]
decl.c (gnat_to_gnu_entity): Do not set "const" flag on "pure" Ada subprograms if SJLJ exceptions are used.
* decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
on "pure" Ada subprograms if SJLJ exceptions are used.
* trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
on the declaration node of JMPBUF_SAVE.
* utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
* utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
Eric Botcazou [Fri, 29 Sep 2006 06:32:58 +0000 (06:32 +0000)]
builtins.c (expand_builtin_setjmp): Delete.
* builtins.c (expand_builtin_setjmp): Delete.
(expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
<BUILT_IN_SETJMP_SETUP>: New case.
<BUILT_IN_SETJMP_DISPATCHER>: Likewise.
<BUILT_IN_SETJMP_RECEIVER>: Likewise.
* builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
(BUILT_IN_SETJMP_DISPATCHER): Likewise.
(BUILT_IN_SETJMP_RECEIVER): Likewise.
* gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
(lower_function_body): Initialize it to false. If it is set to true
at the end of the processing, emit the setjmp dispatcher.
(lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
is __builtin_setjmp and set calls_builtin_setjmp to true as well.
<MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
on the rhs of the assignment.
(lower_builtin_setjmp): New function.
* tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
* tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
to detect calls that can go to non-local labels. Use specific
helper to create the abnormal edges associated with them.
<MODIFY_EXPR>: Likewise.
(make_abnormal_goto_edges): New function extracted from...
(make_goto_expr_edges): ...here. Call it for computed gotos.
(simple_goto_p): Minor tweak.
(tree_can_make_abnormal_goto): New predicate.
(tree_redirect_edge_and_branch): Return zero on all abnormal edges.
(tree_purge_dead_abnormal_call_edges): New function.
* tree-flow.h (tree_can_make_abnormal_goto): Declare.
(tree_purge_dead_abnormal_call_edges): Likewise.
(make_abnormal_goto_edges): Likewise.
* tree-inline.c (expand_call_inline): Simplify statement frobbing.
Purge all dead abnormal edges if the call was in the last statement.
* tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
(execute_fixup_cfg): If there are non-local labels in the function,
scan the basic blocks and split them at calls that can go to non-local
labels or add missing abnormal call edges. Write down the CFG in the
dump file.
(pass_fixup_cfg): Remove TODO_dump_func flag.
* unwind-sjlj.c: Poison setjmp.
* doc/install.texi (enable-sjlj-exceptions): Use more general wording.
* doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
(TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
(DONT_USE_BUILTIN_SETJMP): Document it.
re PR target/28617 (___divti3 and ___umodti3 undefined for -m64 on powerpc-apple-darwin8)
PR target/28617
* config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
to 1 when __ppc64__ is defined.
* config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
darwin-64.c.
* config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
Steven G. Kargl [Thu, 28 Sep 2006 19:31:37 +0000 (19:31 +0000)]
arith.c: Change conditional test for inclusion of arctangent().
2006-09-28 Steven G. Kargl <kargl@gcc.gnu.org>
* arith.c: Change conditional test for inclusion of arctangent().
(gfc_check_real_range): Change conditional test for use of
mpfr_subnormalize.
* simplify.c (gfc_simplify_atan2): Fix conditional for use of
mpfr_atan2() instead of arctangent().
(gfc_simplify_exponent): Fix conditional for use of mpfr_get_exp().
(gfc_simplify_log): Fix conditional for use of mpfr_atan2() instead
of arctangent().
(gfc_simplify_nearest): Fix conditional for use of mpfr_nextafter().
Eric Botcazou [Thu, 28 Sep 2006 19:14:05 +0000 (19:14 +0000)]
gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr on the element before gimplifying it...
* gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
on the element before gimplifying it, instead of punting if it is of
variable size.
* testsuite/ext/pb_ds/example/hash_resize_neg.cc: Adjust line numbers.
* testsuite/util/regression/rand/priority_queue/detail/
operator_fn_imps.hpp: Set and clear label, throw
probability. Check only allocations of the marked label.
* testsuite/util/regression/rand/assoc/detail/
operator_fn_imps.hpp: Same.
Steven G. Kargl [Wed, 27 Sep 2006 20:15:22 +0000 (20:15 +0000)]
re PR fortran/28276 (EXPONENT() broken for real constants)
* configure.in: Check for GMP 4.1 or newer. Check for MPFR 2.2.0
or newer.
* configure: Regenerated.
* doc/install.texi: Document required versions of GMP and MPFR.
* fortran/arith.c: Conditionally include arctangent2().
(gfc_check_real_range): Use mpfr_subnormalize in preference to local
hack.
* fortran/trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Append
l for long double functions.
* fortran/simplify.c: Wrap Copyright to new line.
(gfc_simplify_atan2): Use mpfr_atan2 in preference to arctangent2().
(gfc_simplify_log): Ditto.
PR fortran/28276
* fortran/simplify.c (gfc_simplify_exponent): Use mpfr_get_exp in
preference to broken local hack.
PR fortran/27021
* fortran/simplify.c (gfc_simplify_nearest): Use mpfr_nexttoward and
mpfr_subnormalize to handle numbers near zero in preference to broken
local hack.
PR fortran/28276
* testsuite/gfortran.dg/exponent_1.f90: New test.
PR fortran/27021
* testsuite/gfortran.dg/nearest_1.f90: New test.
Dave Brolley [Wed, 27 Sep 2006 19:42:24 +0000 (15:42 -0400)]
configure.in (RUNTEST): Look for 'runtest' in the source tree by using $s instead of $r.
2006-09-27 Dave Brolley <brolley@redhat.com>
* configure.in (RUNTEST): Look for 'runtest' in the source tree by using
$s instead of $r.
* configure: Regenerated.
reload1.c (alter_reg): Require the alignment of the stack slot to be at least reg_max_ref_width bytes.
gcc/
* reload1.c (alter_reg): Require the alignment of the stack slot to
be at least reg_max_ref_width bytes.
(scan_paradoxical_subregs): Record the largest width in
reg_max_ref_width.