Tobias Burnus [Sun, 25 Nov 2007 22:15:47 +0000 (23:15 +0100)]
Forgot trans-expr.c in previous commit:
2007-11-25 Tobias Burnus <burnus@net-b.de>
PR fortran/34079
* trans-types.c (gfc_return_by_reference,
gfc_get_function_type): Do not return result of
character-returning bind(C) functions as argument.
* trans-expr.c (gfc_conv_function_call): Ditto.
Jerry DeLisle [Sun, 25 Nov 2007 22:12:19 +0000 (22:12 +0000)]
re PR fortran/33152 (Initialization/declaration problems in block data)
2007-11-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/33152
* decl.c (add_init_expr_to_sym): Remove error message.
* resolve.c (check_data_variable): Add new check for a data variable
that has an array spec, but no ref and issue an error.
* match.c (gfc_match_common): Remove error message.
Tobias Burnus [Sun, 25 Nov 2007 22:02:53 +0000 (23:02 +0100)]
re PR fortran/34079 (Bind(C): Character argument/return value problems)
2007-11-25 Tobias Burnus <burnus@net-b.de>
PR fortran/34079
* trans-types.c (gfc_return_by_reference,
gfc_get_function_type): Do not return result of
character-returning bind(C) functions as argument.
* trans-expr.c (gfc_conv_function_call): Ditto.
Eric Botcazou [Sun, 25 Nov 2007 13:37:12 +0000 (13:37 +0000)]
decl.c (gnat_to_gnu_entity): If the type has strict alignment...
* decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
strict alignment, no alignment clause and a known static size, cap
the type alignment to the greatest power of 2 factor of the size.
(gnat_to_gnu_field): If the field has a component clause, is aliased
or of a type with strict alignment, require that its size be equal to
that of the type.
(validate_size): Use the type size as the minimum size for a type with
strict alignment.
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.