Paul Thomas [Sun, 25 Nov 2007 09:59:42 +0000 (09:59 +0000)]
re PR fortran/33499 (Rejects valid module with a contained function with an ENTRY)
2007-11-25 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33499
* decl.c (get_proc_name): If ENTRY statement occurs before type
specification, set the symbol untyped and ensure that it is in
the procedure namespace.
2007-11-25 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33499
* gfortran.dg/entry_16.f90: New test.
rtlanal.c (label_is_jump_target_p): Return true for a matching REG_LABEL_TARGET.
* rtlanal.c (label_is_jump_target_p): Return true for a matching
REG_LABEL_TARGET.
* reorg.c (fill_slots_from_thread): Correct last change to use
NULL_RTX, not NULL. Outside of REG_NOTES loop, increase and
decrease LABEL_NUSES for JUMP_LABEL (trial), not XEXP (note, 0).
* jump.c (mark_jump_label_1): Add comment for last change
regarding JUMP_LABEL setting.
* gcse.c (add_label_notes): Remove conditional that the label is
mentioned in insn before adding regnote.
* sched-rgn.c (is_cfg_nonregular): Don't return 1 for a
single_set insn only feeding a label to a jump through a
register that dies there.
Paul Thomas [Sat, 24 Nov 2007 10:17:26 +0000 (10:17 +0000)]
re PR fortran/33541 (gfortran wrongly imports renamed-use-associated symbol unrenamed)
2007-11-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33541
* module.c (find_symtree_for_symbol): Move to new location.
(find_symbol): New function.
(load_generic_interfaces): Rework completely so that symtrees
have the local name and symbols have the use name. Renamed
generic interfaces exclude the use of the interface without an
ONLY clause (11.3.2).
(read_module): Implement 11.3.2 in the same way as for generic
interfaces.
2007-11-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/33541
* gfortran.dg/nested_modules_1.f90: Change the reference to
FOO, forbidden by the standard, to a reference to W.
* gfortran.dg/use_only_1.f90: New test.
Jerry DeLisle [Sat, 24 Nov 2007 00:25:01 +0000 (00:25 +0000)]
re PR libfortran/34209 (run-time lib: NEAREST(0.0_8, -1.0) produces wrong numbers)
2007-11-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/34209
* iresolve.c (gfc_resolve_nearest): If sign variable kind does not match
kind of input variable, convert it to match.
PR fortran/33317
* trans.h: Modify prototype for gfc_conv_missing_dummy.
* trans-expr.c (gfc_conv_missing_dummy): Modify to pass an integer kind
parameter in. Set the type of the dummy to the kind given.
(gfc_conv_function_call): Pass representation.length to
gfc_conv_missing_dummy.
* iresolve.c (gfc_resolve_cshift): Determine the correct kind to use and
if appropriate set representation.length to this kind value.
(gfc_resolve_eoshift): Likewise.
* check.c (gfc_check_cshift): Enable dim_check to allow DIM as an
optional argument. (gfc_check_eoshift): Likewise.
* trans_intrinsic.c (gfc_conv_intrinsic_function_args): Update call to
gfc_conv_missing_dummy.
Paolo Carlini [Fri, 23 Nov 2007 22:14:56 +0000 (22:14 +0000)]
bitset (bitset<>::all): Add, per DR 693 [Ready].
2007-11-23 Paolo Carlini <pcarlini@suse.de>
* include/std/bitset (bitset<>::all): Add, per DR 693 [Ready].
(_Base_bitset<>::_M_are_all_aux()): Add.
* include/debug/bitset (bitset<>::all): Add.
* testsuite/23_containers/bitset/all/1.cc: New.
* docs/html/ext/howto.html: Add an entry for DR 693.
* include/std/bitset (bitset<0>::set, reset, flip, test): Remove,
not necessary anymore.
Mark Mitchell [Fri, 23 Nov 2007 19:15:09 +0000 (19:15 +0000)]
re PR c++/5310 (Weird warnings about using (int)NULL)
2007-11-23 Mark Mitchell <mark@codesourcery.com>
Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR c++/5310
cp/
* call.c (convert_like_real): Build a zero constant when __null is
converted to an integer type.
testsuite/
* g++.dg/warn/pr5310.C: New.
* g++.dg/warn/pr33160.C: New
Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
From-SVN: r130381
Richard Guenther [Fri, 23 Nov 2007 14:28:59 +0000 (14:28 +0000)]
re PR tree-optimization/34176 (SCCVN breaks gettext)
2007-11-23 Richard Guenther <rguenther@suse.de>
Michael Matz <matz@suse.de>
PR tree-optimization/34176
* alloc-pool.h (empty_alloc_pool): Declare.
* alloc-pool.c (empty_alloc_pool): New function.
* tree-ssa-sccvn.c (vn_reference_lookup): Also lookup from the
valid table if a lookup from the optimistic table failed.
(vn_unary_op_lookup): Likewise.
(vn_binary_op_lookup): Likewise.
(vn_phi_lookup): Likewise.
(process_scc): Clear optimistic tables before every iteration.
* gcc.c-torture/execute/pr34176.c: New testcase.
Co-Authored-By: Michael Matz <matz@suse.de>
From-SVN: r130379
* tree-ssa-copy.c (may_propagate_copy): Remove redundant
checks.
(merge_alias_info): Do verification only if checking is
enabled. Merge flow-sensitive alias information in simple
cases.
* tree-ssa-operands.c (get_addr_dereference_operands): Also
complain about missing NMTs.
Jakub Jelinek [Fri, 23 Nov 2007 13:39:44 +0000 (14:39 +0100)]
re PR c++/34198 (-Wconversion gives apparent erroneous warning with g++ 4.3-20071109)
PR c++/34198
* c-common.c (conversion_warning): For INTEGER_TYPE to
INTEGER_TYPE conversions call get_narrower on expr to avoid
spurious warnings from binop shortening or when the implicit
conversion can't change the value.
* gcc.dg/Wconversion-5.c: New test.
* g++.dg/Wconversion3.C: New test.
Samuel Tardieu [Fri, 23 Nov 2007 13:16:54 +0000 (13:16 +0000)]
s-inmaop-posix.adb, [...]: Use 'Access instead of 'Unchecked_Access in second and third arguments of...
gcc/ada/
* s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
Use 'Access instead of 'Unchecked_Access in second and third
arguments of pthread_sigmask.
* tree-ssa-copy.c (may_propagate_copy): Remove redundant
checks.
(merge_alias_info): Do verification only if checking is
enabled. Merge flow-sensitive alias information in simple
cases.
* tree-ssa-operands.c (get_addr_dereference_operands): Also
complain about missing NMTs.
Jakub Jelinek [Thu, 22 Nov 2007 21:58:07 +0000 (22:58 +0100)]
re PR target/33947 (warning: 'const' attribute directive ignored)
PR target/33947
* config/arm/arm.c (arm_init_tls_builtins): Set TREE_NOTHROW
and TREE_READONLY on the fn decl rather than passing a chain
of attributes.
Jakub Jelinek [Thu, 22 Nov 2007 14:06:06 +0000 (15:06 +0100)]
re PR c++/34094 (Undefined static data member in anonymous namespace can acquire a definition anyway)
PR c++/34094
* decl2.c (cp_write_global_declarations): Issue error about static
data members in anonymous namespace which are declared and used,
but not defined.
Uros Bizjak [Thu, 22 Nov 2007 11:25:11 +0000 (12:25 +0100)]
i386.h (TARGET_CPU_CPP_BUILTINS): Change checking of ix86_arch and ix86_tune into a switch statement.
* config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Change checking
of ix86_arch and ix86_tune into a switch statement.
(enum processor_type): Default PROCESSOR_I386 to 0.
* config/i386/i386.c (ix86_decompose_address): Use TARGET_K6 instead
of "ix86_tune == PROCESSOR_K6".
(ia32_multipass_dfa_lookahead): Change checking of ix86_tune into
a switch statement.
Johannes Singler [Thu, 22 Nov 2007 10:13:08 +0000 (10:13 +0000)]
re PR libstdc++/33893 ([parallel mode] Algorithms rely on omp_set_dynamic(false))
2007-11-22 Johannes Singler <singler@ira.uka.de>
PR libstdc++/33893
* include/parallel/multiway_merge.h: made omp_dynamic-safe
* include/parallel/workstealing.h: made omp_dynamic-safe
* include/parallel/base.h: infrastructure, cleanup
* include/parallel/par_loop.h: made omp_dynamic-safe
* include/parallel/features.h: activate loser tree variant
* include/parallel/quicksort.h: made omp_dynamic-safe
* include/parallel/compiletime_settings.h: settings overridable
* include/parallel/equally_split.h: made omp_dynamic-safe
* include/parallel/omp_loop_static.h: made omp_dynamic-safe
* include/parallel/random_shuffle.h: made omp_dynamic-safe
* include/parallel/balanced_quicksort.h: made omp_dynamic-safe
* include/parallel/set_operations.h: made omp_dynamic-safe
* include/parallel/unique_copy.h: made omp_dynamic-safe
* include/parallel/multiway_mergesort.h: made omp_dynamic-safe
* include/parallel/search.h: made omp_dynamic-safe
* include/parallel/partition.h: made omp_dynamic-safe
* include/parallel/partial_sum.h: made omp_dynamic-safe
* include/parallel/find.h: made omp_dynamic-safe
* include/parallel/omp_loop.h: made omp_dynamic-safe
* include/parallel/losertree.h: avoid default constructor
Tobias Burnus [Thu, 22 Nov 2007 09:55:47 +0000 (10:55 +0100)]
re PR fortran/34079 (Bind(C): Character argument/return value problems)
2007-11-22 Tobias Burnus <burnus@net-b.de>
PR fortran/34079
* trans-expr.c (gfc_conv_function_call): Do not append
string length arguments when calling bind(c) procedures.
* trans-decl.c (create_function_arglist): Do not append
string length arguments when declaring bind(c) procedures.
Richard Guenther [Wed, 21 Nov 2007 10:16:21 +0000 (10:16 +0000)]
re PR tree-optimization/34148 (Too many VOPs, too deep tree-ssa-sccvn.c recursion)
2007-11-21 Richard Guenther <rguenther@suse.de>
PR tree-optimization/34148
* tree-ssa-structalias.c (create_variable_info_for): Do not use
field-sensitive PTA for single-element structures.
* tree-ssa-alias.c (create_overlap_variables_for): Do not create
SFTs for single-element structures.
Richard Guenther [Tue, 20 Nov 2007 22:51:23 +0000 (22:51 +0000)]
re PR middle-end/34154 (gcc 4.1.1 bug / case ranges / unsigned long long)
2007-11-20 Richard Guenther <rguenther@suse.de>
PR middle-end/34154
* gimplify.c (gimplify_switch_expr): Use tree_int_cst_lt instead
of the signed INT_CST_LT.
* stmt.c (expand_case): Likewise.
(estimate_case_costs): Likewise.
* testsuite/gcc.c-torture/execute/pr34154.c: New testcase.
Paolo Carlini [Tue, 20 Nov 2007 14:06:53 +0000 (14:06 +0000)]
functional_hash.h: Do not include ext/numeric_traits.h.
2007-11-20 Paolo Carlini <pcarlini@suse.de>
* include/bits/functional_hash.h: Do not include ext/numeric_traits.h.
* include/tr1/functional_hash.h: Likewise.
* include/std/functional: Include ext/type_traits.h.
* include/tr1/functional: Likewise.
Jason Merrill [Mon, 19 Nov 2007 21:35:13 +0000 (16:35 -0500)]
PR debug/29436, c/32326
PR debug/29436, c/32326
* tree.c (build_type_attribute_qual_variant): Refuse to make
a distinct copy of a struct/enum type. Use build_distinct_type_copy.
* doc/extend.texi (Type Attributes): Don't encourage people to add
attributes to struct/enum types in a typedef. Fix
transparent_union example.
* tree-inline.c (remap_type_1): Remove code that's redundant with
remap_type.
(build_duplicate_type): Set id.copy_decl.
* c-common.c (handle_transparent_union_attribute): Simplify logic.
Eric Botcazou [Mon, 19 Nov 2007 17:49:11 +0000 (17:49 +0000)]
re PR ada/34098 (xgcc: Internal error: Segmentation fault (program gnat1))
PR ada/34098
ada/
* misc.c (gnat_adjust_rli): Delete.
(gnat_init): Do not initialize the translation code here.
Do not call set_lang_adjust_rli.
* trans.c (init_code_table): Make static.
(gnat_init_stmt_group): Delete.
(gigi): Initialize the translation code entirely here.
Emit debug info for the common types here instead of...
* utils.c (gnat_init_decl_processing): ...here.
* gigi.h (init_code_table): Delete.
(gnat_init_stmt_group): Likewise.
* stor-layout.c (lang_adjust_rli): Delete.
(set_lang_adjust_rli): Likewise.
(layout_type): Do not call lang_adjust_rli hook.
* tree.h (set_lang_adjust_rli): Delete.
Bernd Schmidt [Mon, 19 Nov 2007 15:46:41 +0000 (15:46 +0000)]
bfin.c (must_save_p): New function, mostly broken out of n_dregs_to_save and n_pregs_to_save.
* config/bfin/bfin.c (must_save_p): New function, mostly broken out of
n_dregs_to_save and n_pregs_to_save.
(n_pregs_to_save, n_dregs_to_save): Use it. New argument CONSECUTIVE;
all callers changed.
(expand_prologue_reg_save, expand_epilogue_reg_restore): Enhance to be
able to save single D/P registers that aren't saved by the push/pop
multiple insns.
Richard Biener [Mon, 19 Nov 2007 12:52:58 +0000 (12:52 +0000)]
re PR tree-optimization/34099 (optimizer problem)
2007-11-19 Richard Guenther <rguenther@suse.de>
PR tree-optimization/34099
* tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
if only one operand is undefined.
* gcc.c-torture/execute/pr34099-2.c: New testcase.
Richard Guenther [Mon, 19 Nov 2007 12:52:09 +0000 (12:52 +0000)]
re PR tree-optimization/34099 (optimizer problem)
2007-11-19 Richard Guenther <rguenther@suse.de>
PR tree-optimization/34099
* tree-ssa-ccp.c (likely_value): Exclude all but PLUS_EXPR,
MINUS_EXPR and POINTER_PLUS_EXPR from handling as UNDEFINED
if only one operand is undefined.
* gcc.c-torture/execute/pr34099-2.c: New testcase.
Eric Botcazou [Mon, 19 Nov 2007 06:27:31 +0000 (07:27 +0100)]
re PR tree-optimization/34036 (ICE with control flow in the middle of basic block for -fnon-call-exceptions)
PR tree-optimization/34036
* opts.c (set_fast_math_flags): Do not set flags in common
with set_unsafe_math_optimizations_flags, invoke it directly.
(set_unsafe_math_optimizations_flags): Unset flag_trapping_math
and flag_signed_zeros.
* toplev.c (process_options): Force flag_associative_math to 0 and
warn, if it is set and either flag_trapping_math or flag_signed_zeros
is set too.
* doc/invoke.texi (Optimize Options): Document the new behavior
of -funsafe-math-optimizations, that -fassociative-math requires
both -fno-signed-zeros and -fno-trapping-math and make it clear
that -fno-trapping-math requires -fno-signaling-nans.
Jakub Jelinek [Sun, 18 Nov 2007 22:20:54 +0000 (23:20 +0100)]
re PR c++/30988 (Incorrect "no return statement" warning with __attribute__ ((noreturn)) and __FUNCTION__)
PR c++/30988
semantics.c (finish_call_expr): Set current_function_returns_abnormally
if fn is noreturn FUNCTION_DECL or OVERLOAD with all noreturn
functions.
* g++.dg/warn/noreturn-4.C: New test.
* g++.dg/warn/noreturn-5.C: New test.
* g++.dg/warn/noreturn-6.C: New test.
* g++.dg/warn/noreturn-7.C: New test.
Thomas Koenig [Sun, 18 Nov 2007 21:18:07 +0000 (21:18 +0000)]
re PR fortran/32770 ([Meta-bug] -fdefault-integer-8 issues)
2007-11-18 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/32770
* gfortran.fortran-torture/execute/equiv_5.f: Set kind on
integers so tests works with -fdefault-integer-8.
* gfortran.fortran-torture/execute/elemental.f90: Use default
integers so test passes with -fdefault-integer-8.
* gfortran.fortran-torture/execute/der_io.f90: Increase
buffer length so test passes with -fdefault-integer-8.
* gfortran.dg/bounds_check_8.f90: Likewise.
* gfortran.dg/arrayio_derived_1.f90: LIkewise.
* gfortran.dg/equiv_7.f90: Set kind so test passes
with -fdefault-integer-8.
* gfortran.dg/g77/20030326-1.f: Set kind explicitly to
provoke overflow.
Jerry DeLisle [Sun, 18 Nov 2007 20:53:16 +0000 (20:53 +0000)]
trans-expr.c (gfc_conv_missing_dummy): Set the type of the dummy argument to default integer if flagged to do so.
2007-11-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
* trans-expr.c (gfc_conv_missing_dummy): Set the type of the dummy
argument to default integer if flagged to do so. Fix typo in comment.
* resolve.c (gfc_resolve_dim_arg): Whitespace cleanup.
* iresolve.c (gfc_resolve_cshift): Do not convert type, mark attribute
for converting the DIM type appropriately in trans-expr.c.
(gfc_resolve_eoshift): Likewise.
* check.c (dim_check): Remove pre-existing dead code.
(gfc_check_cshift): Enable dim_check to allow DIM as an optional.
(gfc_check_eoshift): Likewise.
* trans_intrinsic.c (gfc_conv_intrinsic_function_args): Fix whitespace.
Jakub Jelinek [Sun, 18 Nov 2007 19:18:39 +0000 (20:18 +0100)]
re PR middle-end/33335 (FAIL: 26_numerics/complex/inserters_extractors/wchar_t/1.cc)
PR middle-end/33335
* optabs.h (optab_table): Change type to struct optab from optab.
(convert_optab_table): Similarly.
Adjust all _optab macros to expand to addresses of optab_table
resp. convert_optab_table elements rather than the values of the
elements.
* optabs.c (optab_table): Change typype to struct optab from optab.
If compiled by recent GCC, initialize all the insn_code fields in
the array using designated range initializers.
(convert_optab_table): Similarly.
(convert_optab_libfunc, optab_libfunc, set_optab_libfunc,
set_conv_libfunc): Into libfunc_entry's optab field store index within
optab_table resp. convert_optab_table array instead of difference
between two separately malloced addresses.
(new_optab): Add op argument, don't return anything. Initialize
just the insn_code field in handlers array and only when needed.
(init_optab, init_optabv): Add op argument, don't return anything.
Adjust new_optab caller.
(new_convert_optab): Removed.
(init_convert_optab): Add op argument, don't return anything, don't
call new_convert_optab. If needed, initialize insn_code field in
handlers array.
(init_optabs): Adjust init_optab, init_optabv and init_convert_optab
callers.
(debug_optab_libfuncs): Adjust uses of optab_table and
convert_optab_table arrays.
Paul Thomas [Sun, 18 Nov 2007 17:14:40 +0000 (17:14 +0000)]
re PR fortran/31608 (wrong types in character array/scalar binop)
2007-11-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31608
* trans-array.c (gfc_conv_expr_descriptor): Remove exception
for indirect references in the call to gfc_trans_scalar_assign.
* trans-expr.c (gfc_conv_string_parameter): Instead of asserting
that the expression is not an indirect reference, cast it to a
pointer type of the length given by se->string_length.
2007-11-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/31608
* gfortran.dg/char_cast_2.f90: New test based on achar_4.f90.