Eric Botcazou [Fri, 9 Apr 2010 10:10:25 +0000 (10:10 +0000)]
gigi.h (gnat_mark_addressable): Rename parameter.
* gcc-interface/gigi.h (gnat_mark_addressable): Rename parameter.
* gcc-interface/decl.c (maybe_variable): Do not set TREE_STATIC on _REF
node. Use the type of the operand to set TREE_READONLY.
* gcc-interface/trans.c (Identifier_to_gnu): Do not set TREE_STATIC on
_REF node. Do not overwrite TREE_READONLY.
(call_to_gnu): Rename local variable and fix various nits. In the
copy-in/copy-out case, build the SAVE_EXPR manually.
(convert_with_check): Call protect_multiple_eval in lieu of save_expr
and fold the computations.
(protect_multiple_eval): Always save entire fat pointers.
(maybe_stabilize_reference): Minor tweaks.
(gnat_stabilize_reference_1): Likewise. Do not deal with tcc_constant,
tcc_type and tcc_statement.
* gcc-interface/utils.c (convert_to_fat_pointer): Call
protect_multiple_eval in lieu of save_expr.
(convert): Minor tweaks.
(maybe_unconstrained_array): Do not set TREE_STATIC on _REF node.
(builtin_type_for_size): Call gnat_type_for_size directly.
* gcc-interface/utils2.c (contains_save_expr_p): Delete.
(contains_null_expr): Likewise
(gnat_build_constructor): Do not call it.
(compare_arrays): Deal with all side-effects, use protect_multiple_eval
instead of gnat_stabilize_reference to protect the operands.
(nonbinary_modular_operation): Call protect_multiple_eval in lieu of
save_expr.
(maybe_wrap_malloc): Likewise.
(build_allocator): Likewise.
(build_unary_op) <INDIRECT_REF>: Do not set TREE_STATIC on _REF node.
(gnat_mark_addressable): Rename parameter.
From-SVN: r158156
Kai Tietz [Fri, 9 Apr 2010 08:58:00 +0000 (08:58 +0000)]
cygming.h (TARGET_OS_CPP_BUILTINS): Add __thiscall and _thiscall as predefined macros.
2010-04-09 Kai Tietz <kai.tietz@onevision.com>
* config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
__thiscall and _thiscall as predefined macros.
* config/i386/i386.c (ix86_handle_cconv_attribute): Add
thiscall attribute handling.
(ix86_comp_type_attributes): Likewise.
(ix86_function_regparm): Likewise.
(ix86_return_pops_args): Likewise.
(init_cumulative_args): Likewise.
(find_drap_reg): Likewise.
(ix86_static_chain): Likewise.
(x86_this_parameter): Likewise.
(x86_output_mi_thunk): Likewise.
(ix86_attribute_table): Add description for thiscall attribute.
* config/i386/i386.h (ix86_args): Adjust comment for member
fastcall.
* doc/extend.texi: Add documentation for thiscall.
From-SVN: r158155
Kai Tietz [Fri, 9 Apr 2010 08:52:54 +0000 (08:52 +0000)]
pr35504.C: Add check for thiscall.
2010-04-09 Kai Tietz <kai.tietz@onevision.com>
* g++.dg/other/pr35504.C: Add check for thiscall.
* g++.dg/torture/stackalign/eh-thiscall-1.C: New.
* gcc.dg/torture/stackalign/thiscall-1.c: New.
From-SVN: r158153
Manuel López-Ibáñez [Fri, 9 Apr 2010 07:49:41 +0000 (07:49 +0000)]
re PR c++/28584 (Cast to pointer from integer of different size)
2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c++/28584
* c.opt (Wint-to-pointer-cast): Available in C++.
* doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
cp/
* typeck.c (cp_build_c_cast): Warn for casting integer to larger
pointer type.
testsuite/
* gcc.dg/Wint-to-pointer-cast-1.c: Move to...
* c-c++-common/Wint-to-pointer-cast-1.c: ... here.
* gcc.dg/Wint-to-pointer-cast-2.c: Move to...
* c-c++-common/Wint-to-pointer-cast-2.c: ... here.
* gcc.dg/Wint-to-pointer-cast-3.c: Move to...
* c-c++-common/Wint-to-pointer-cast-3.c: ... here. Update.
* g++.old-deja/g++.mike/warn1.C: Add -Wno-int-to-pointer-cast.
* g++.dg/other/increment1.C: Likewise.
From-SVN: r158150
Tobias Burnus [Fri, 9 Apr 2010 05:54:29 +0000 (07:54 +0200)]
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2010-04-09 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* decl.c (variable_decl, match_attr_spec): Fix setting the array
spec.
* array.c (match_subscript,gfc_match_array_ref): Add coarray
* support.
* data.c (gfc_assign_data_value): Ditto.
* expr.c (gfc_check_pointer_assign): Add check for coarray
* constraint.
(gfc_traverse_expr): Traverse also through codimension expressions.
(gfc_is_coindexed, gfc_has_ultimate_allocatable,
gfc_has_ultimate_pointer): New functions.
* gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for
* coarrays.
(gfc_array_ref): Add codimen.
(gfc_array_ref): Add in_allocate.
(gfc_is_coindexed, gfc_has_ultimate_allocatable,
gfc_has_ultimate_pointer): Add prototypes.
* interface.c (compare_parameter, compare_actual_formal,
check_intents): Add coarray constraints.
* match.c (gfc_match_iterator): Add coarray constraint.
* match.h (gfc_match_array_ref): Update interface.
* primary.c (gfc_match_varspec): Handle codimensions.
* resolve.c (coarray_alloc, inquiry_argument): New static
* variables.
(check_class_members): Return gfc_try instead for error recovery.
(resolve_typebound_function,resolve_typebound_subroutine,
check_members): Handle return value of check_class_members.
(resolve_structure_cons, resolve_actual_arglist, resolve_function,
check_dimension, compare_spec_to_ref, resolve_array_ref,
resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
resolve_allocate_expr, resolve_ordinary_assign): Add coarray
support.
* trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
Skip over coarray refs.
(gfc_array_allocate) Add support for references containing coindexes.
* trans-expr.c (gfc_add_interface_mapping): Copy coarray
* attribute.
(gfc_map_intrinsic_function): Ignore codimensions.
2010-04-09 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* gfortran.dg/coarray_7.f90: New test.
* gfortran.dg/coarray_8.f90: New test.
From-SVN: r158149
Bud Davis [Fri, 9 Apr 2010 03:25:09 +0000 (03:25 +0000)]
re PR fortran/28039 (Warn when ignoring extra characters in the format specification)
2010-04-08 Bud Davis <bdavis9659@sbcglobal.net>
PR fortran/28039
* gfortran.dg/fmt_with_extra.f: Remove xfail and update test.
From-SVN: r158148
Bud Davis [Fri, 9 Apr 2010 02:03:10 +0000 (02:03 +0000)]
re PR fortran/28039 (Warn when ignoring extra characters in the format specification)
2010-04-08 Bud Davis <bdavis9659@sbcglobal.net>
PR fortran/28039
* io.c (check_format_string): Added check for additional non
blank characters after the format string was successfully
parsed.
* io.c (check_format): Changed the error messages for positive
int required and period required to drop through the error logic
and report with gfc_error instead of gfc_error_now. Corrected
format postion for hollerith strings.
From-SVN: r158147
GCC Administrator [Fri, 9 Apr 2010 00:17:20 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r158143
Eric Botcazou [Thu, 8 Apr 2010 20:16:36 +0000 (20:16 +0000)]
tree.h (TREE_ADDRESSABLE): Document its effect for function types.
* tree.h (TREE_ADDRESSABLE): Document its effect for function types.
* calls.c (expand_call): Pass the function type to aggregate_value_p.
* function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
function type instead. Reorder and simplify checks.
* gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
ada/
* gcc-interface/ada-tree.h (TYPE_RETURNS_UNCONSTRAINED_P): Rename into.
(TYPE_RETURN_UNCONSTRAINED_P): ...this.
(TYPE_RETURNS_BY_REF_P): Rename into.
(TYPE_RETURN_BY_DIRECT_REF_P): ...this.
(TYPE_RETURNS_BY_TARGET_PTR_P): Delete.
* gcc-interface/gigi.h (create_subprog_type): Adjust parameter names.
(build_return_expr): Likewise.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>:
Rename local variables. If the return Mechanism is By_Reference, pass
return_by_invisible_ref_p to create_subprog_type instead of toggling
TREE_ADDRESSABLE. Test return_by_invisible_ref_p in order to annotate
the mechanism. Use regular return for contrained types with non-static
size and return by invisible reference for unconstrained return types
with default discriminants. Update comment.
* gcc-interface/trans.c (Subprogram_Body_to_gnu): If the function
returns by invisible reference, turn the RESULT_DECL into a pointer.
Do not handle DECL_BY_REF_P in the CICO case here.
(call_to_gnu): Remove code handling return by target pointer. For a
function call, if the return type has non-constant size, generate the
assignment with an INIT_EXPR.
(gnat_to_gnu) <N_Return_Statement>: Remove dead code in the CICO case.
If the function returns by invisible reference, build the copy return
operation manually.
(add_decl_expr): Initialize the variable with an INIT_EXPR.
* gcc-interface/utils.c (create_subprog_type): Adjust parameter names.
Adjust for renaming of macros. Copy the node only when necessary.
(create_subprog_decl): Do not toggle TREE_ADDRESSABLE on the return
type, only change DECL_BY_REFERENCE on the RETURN_DECL.
(convert_from_reference): Delete.
(is_byref_result): Likewise.
(gnat_genericize_r): Likewise.
(gnat_genericize): Likewise.
(end_subprog_body): Do not call gnat_genericize.
* gcc-interface/utils2.c (build_binary_op) <INIT_EXPR>: New case.
(build_return_expr): Adjust parameter names, logic and comment.
From-SVN: r158139
Jing Yu [Thu, 8 Apr 2010 18:16:57 +0000 (18:16 +0000)]
Fix a problematic logic at unswitch-loops pass.
2010-04-07 Jing Yu <jingyu@google.com>
Zdenek Dvorak <ook@ucw.cz>
PR tree-optimization/42720
* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
loop unswitch conditions here from
(tree_unswitch_single_loop).
Co-Authored-By: Zdenek Dvorak <ook@ucw.cz>
From-SVN: r158138
Sebastian Pop [Thu, 8 Apr 2010 17:32:23 +0000 (17:32 +0000)]
Fix comments, simplify logic.
2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
* tree-if-conv.c: Fix comments and simplify logic.
From-SVN: r158136
Sebastian Pop [Thu, 8 Apr 2010 17:32:17 +0000 (17:32 +0000)]
Remove unused parameter.
2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
* tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
(tree_if_conversion): Same. Update call to if_convertible_loop_p.
(main_tree_if_conversion): Update call to tree_if_conversion.
From-SVN: r158135
Manuel López-Ibáñez [Thu, 8 Apr 2010 17:21:26 +0000 (17:21 +0000)]
re PR driver/42485 (-V switch broken)
2010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR 42485
* doc/invoke.texi (-b,-V): Delete.
* doc/tm.texi: Do not mention -b.
* gcc.c (display_help): Delete -b and -V.
(process_command): Delete -b and -V.
* gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
From-SVN: r158134
Christian Borntraeger [Thu, 8 Apr 2010 15:07:57 +0000 (15:07 +0000)]
Implement target hook for loop unrolling
2010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
Wolfgang Gellerich <gellerich@de.ibm.com>
Implement target hook for loop unrolling
* target.h (loop_unroll_adjust): Add a new target hook function.
* target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
* doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
* config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
(s390_loop_unroll_adjust): Implement the new target hook for s390.
* loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll target hook
(decide_unroll_stupid): Likewise.
Co-Authored-By: Wolfgang Gellerich <gellerich@de.ibm.com>
From-SVN: r158132
Rainer Orth [Thu, 8 Apr 2010 14:48:46 +0000 (14:48 +0000)]
re PR target/43643 (gcc -m64 -pg corrupts %rdx / %rcx register)
gcc:
PR target/43643
* config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
gcc/testsuite:
PR target/43643
* gcc.dg/pr43643.c: New test.
From-SVN: r158130
Tobias Burnus [Thu, 8 Apr 2010 14:44:37 +0000 (16:44 +0200)]
module.c (use_iso_fortran_env_module): Fix standard check.
2010-04-08 Tobias Burnus <burnus@net-b.de>
* module.c (use_iso_fortran_env_module): Fix standard check.
2010-04-08 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/iso_fortran_env_6.f90: Add more checks.
From-SVN: r158129
Rainer Orth [Thu, 8 Apr 2010 14:41:43 +0000 (14:41 +0000)]
install.texi (Specific, [...]): Fix grammar.
* doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
(Specific, *-*-solaris2*): Likewise.
Don't prefer Sun as over GNU as.
From-SVN: r158127
Wolfgang Gellerich [Thu, 8 Apr 2010 11:45:34 +0000 (11:45 +0000)]
s390.c (override_options): Adjust the z10 defaults for max-unroll-times...
2010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
* config/s390/s390.c (override_options): Adjust the z10
defaults for max-unroll-times, max-completely-peeled-insns
and max-completely-peel-times.
From-SVN: r158122
Andreas Krebbel [Thu, 8 Apr 2010 11:23:23 +0000 (11:23 +0000)]
s390.c (s390_expand_movmem): Issue prefetch instructions for z10.
2010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.c (s390_expand_movmem): Issue prefetch
instructions for z10.
(s390_expand_setmem): Likewise.
(s390_expand_cmpmem): Likewise.
From-SVN: r158116
Richard Guenther [Thu, 8 Apr 2010 10:21:23 +0000 (10:21 +0000)]
re PR tree-optimization/43679 (ice in gen_lsm_tmp_name, at tree-ssa-loop-im.c:1812)
2010-04-08 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43679
* tree-ssa-pre.c (eliminate): Only propagate copies.
* gcc.c-torture/compile/pr43679.c: New testcase.
From-SVN: r158112
Jakub Jelinek [Thu, 8 Apr 2010 10:12:35 +0000 (12:12 +0200)]
re PR bootstrap/43681 (bootstrap fails with "unused" var message for an apparently used var.)
PR bootstrap/43681
* expr.c (block_move_libcall_safe_for_call_parm): Avoid
set but not used variable warning.
From-SVN: r158111
Wei Guozhi [Thu, 8 Apr 2010 09:27:44 +0000 (09:27 +0000)]
re PR target/41653 (not optimal result for multiplication with constant when -Os is specified)
PR target/41653
* config/arm/arm.c (thumb1_size_rtx_costs): New function.
(arm_size_rtx_costs): Call the new function when optimized for size.
From-SVN: r158110
Jakub Jelinek [Thu, 8 Apr 2010 09:16:28 +0000 (11:16 +0200)]
re PR debug/43670 ("-fcompare-debug failure (length)" with -O -ftree-vrp)
PR debug/43670
* cfgexpand.c (expand_debug_expr): If for non-NULL offset
op0 is not a MEM, just return NULL instead of assertion
failure.
(discover_nonconstant_array_refs): Don't walk debug stmts.
* gcc.dg/pr43670.c: New test.
From-SVN: r158108
Doug Kwan [Thu, 8 Apr 2010 08:41:50 +0000 (08:41 +0000)]
configure.ac: Recognize gold and do not use its version number to test ld features.
2010-04-07 Doug Kwan <dougkwan@google.com>
* configure.ac: Recognize gold and do not use its version number
to test ld features.
* configure: Regenerate.
From-SVN: r158106
Maxim Kuvyrkov [Thu, 8 Apr 2010 08:20:36 +0000 (08:20 +0000)]
re PR middle-end/40815 (redundant neg instruction caused by loop-invariant)
PR middle-end/40815
* tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
(negate_value): Move code to push elements to broken_up_substracts ...
(eliminate_plus_minus_pair): ... here. Push operands that have no
negative pair to plus_negates.
(repropagate_negates, init_reassoc, fini_reassoc): Update.
PR middle-end/40815
* gcc.dg/tree-ssa/reassoc-19.c: New.
From-SVN: r158105
GCC Administrator [Thu, 8 Apr 2010 00:17:39 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r158103
Jason Merrill [Wed, 7 Apr 2010 22:16:15 +0000 (18:16 -0400)]
re PR c++/43016 ([C++0x] Inappropriate multiple definition error for lambda function when inside inline functions)
PR c++/43016
* decl.c (start_preparsed_function): Do defer nested functions.
From-SVN: r158095
Joseph Myers [Wed, 7 Apr 2010 21:36:44 +0000 (22:36 +0100)]
* crontab: Switch 4.5 snapshots to 4.5 branch.
From-SVN: r158091
Ralf Wildenhues [Wed, 7 Apr 2010 20:52:27 +0000 (20:52 +0000)]
Move LTO build option description to correct subheading.
gcc/:
* doc/install.texi (Configuration): Move description of
--enable-lto, --with-libelf*, --enable-gold from Java section to
general section.
From-SVN: r158089
Ralf Wildenhues [Wed, 7 Apr 2010 20:49:41 +0000 (20:49 +0000)]
Fix documentation typos.
gcc/:
* doc/generic.texi (Working with declarations)
(Function Properties, C and C++ Trees): Fix typos.
* doc/sourcebuild.texi (Top Level): Likewise.
From-SVN: r158088
Jakub Jelinek [Wed, 7 Apr 2010 20:33:36 +0000 (22:33 +0200)]
re PR c/18624 (GCC does not detect local variable set but never used)
PR c/18624
* tree.h (DECL_READ_P): Define.
(struct tree_decl_common): Add decl_read_flag.
* c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
a set but not used warning.
(merge_decls): Merge DECL_READ_P flag.
(finish_decl, build_compound_literal): Set DECL_READ_P flag.
(finish_function): Issue -Wunused-but-set-parameter diagnostics.
* c-common.c (handle_used_attribute, handle_unused_attribute):
Likewise.
* c-tree.h (default_function_array_read_conversion, mark_exp_read):
New prototypes.
* c-typeck.c (default_function_array_read_conversion, mark_exp_read):
New functions.
(default_conversion, c_process_expr_stmt): Call mark_exp_read.
* c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
c_parser_binary_expression, c_parser_cast_expression,
c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
Call default_function_array_read_conversion instead of
default_function_array_conversion where needed.
(c_parser_unary_expression, c_parser_conditional_expression,
c_parser_postfix_expression_after_primary, c_parser_initelt):
Likewise. Call mark_exp_read where needed.
(c_parser_statement_after_labels, c_parser_asm_operands,
c_parser_typeof_specifier, c_parser_sizeof_expression,
c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
where needed.
* common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
New.
* toplev.c (warn_unused_but_set_variable): Default to warn_unused.
(warn_unused_but_set_parameter): Default to warn_unused
&& extra_warnings.
* doc/invoke.texi: Document -Wunused-but-set-variable and
-Wunused-but-set-parameter.
* objc-act.c (finish_var_decl, objc_begin_catch_clause,
really_start_method, get_super_receiver, handle_class_ref): Set
DECL_READ_P in addition to TREE_USED.
* gcc.dg/Wunused-var-1.c: New test.
* gcc.dg/Wunused-var-2.c: New test.
* gcc.dg/Wunused-var-3.c: New test.
* gcc.dg/Wunused-var-4.c: New test.
* gcc.dg/Wunused-var-5.c: New test.
* gcc.dg/Wunused-var-6.c: New test.
* gcc.dg/Wunused-parm-1.c: New test.
From-SVN: r158086
Jakub Jelinek [Wed, 7 Apr 2010 20:29:01 +0000 (22:29 +0200)]
tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not used count variable.
* tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
used count variable.
* genemit.c (gen_expand, gen_split): Avoid set but not used warnings
when operandN variables aren't used in the body of the expander
or splitter.
* tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
* tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
* tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
FOR_EACH_IMM_USE_ON_STMT): Likewise.
* tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
* tree.c (PROCESS_ARG): Likewise.
fortran/
* parse.c (parse_derived, parse_enum): Avoid set but not used
warning.
java/
* expr.c (process_jvm_instruction): Avoid set but not used warning.
* builtins.c (compareAndSwapInt_builtin, compareAndSwapLong_builtin,
getVolatile_builtin): Likewise.
libjava/
* exception.cc (_Jv_Throw): Avoid set but not used warning.
* include/java-assert.h (JvAssertMessage, JvAssert): Use argument in
sizeof to avoid set but not used warnings.
libjava/classpath/
* native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c
(Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1):
Avoid set but not used warning.
libiberty/
* regex.c (byte_re_match_2_internal): Avoid set but not used
warning.
gcc/testsuite/
* gcc.dg/builtin-choose-expr.c: Avoid set but not used warnings.
* gcc.dg/trunc-1.c: Likewise.
* gcc.dg/vla-9.c: Likewise.
* gcc.dg/dfp/composite-type.c: Likewise.
libffi/
* testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
From-SVN: r158085
Jakub Jelinek [Wed, 7 Apr 2010 20:27:37 +0000 (22:27 +0200)]
tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not used count variable.
* tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
used count variable.
* genemit.c (gen_expand, gen_split): Avoid set but not used warnings
when operandN variables aren't used in the body of the expander
or splitter.
* tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
* tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
* tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
FOR_EACH_IMM_USE_ON_STMT): Likewise.
* tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
* tree.c (PROCESS_ARG): Likewise.
fortran/
* parse.c (parse_derived, parse_enum): Avoid set but not used
warning.
java/
* expr.c (process_jvm_instruction): Avoid set but not used warning.
* builtins.c (compareAndSwapInt_builtin, compareAndSwapLong_builtin,
getVolatile_builtin): Likewise.
libjava/
* exception.cc (_Jv_Throw): Avoid set but not used warning.
* include/java-assert.h (JvAssertMessage, JvAssert): Use argument in
sizeof to avoid set but not used warnings.
libjava/classpath/
* native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c
(Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1):
Avoid set but not used warning.
libiberty/
* regex.c (byte_re_match_2_internal): Avoid set but not used
warning.
gcc/testsuite/
* gcc.dg/builtin-choose-expr.c: Avoid set but not used warnings.
* gcc.dg/trunc-1.c: Likewise.
* gcc.dg/vla-9.c: Likewise.
* gcc.dg/dfp/composite-type.c: Likewise.
libffi/
* testsuite/libffi.call/err_bad_abi.c: Remove unused args variable.
From-SVN: r158084
Iain Sandoe [Wed, 7 Apr 2010 19:57:46 +0000 (19:57 +0000)]
re PR objc/35996 (ICE while building simple ObjC code with -fobjc-gc)
gcc/objc/Changelog:
2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
PR objc/35996
* objc-act.c (objc_init): Warn that -fobjc-gc is ignored for
-fgnu-runtime and set flag_objc_gc to zero.
testsuite:
2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
PR objc/35996
* objc.dg/objc-gc-4.m: Run for all targets, prune new warning.
* obj-c++.dg/objc-gc-3.mm: Ditto.
From-SVN: r158083
Janne Blomqvist [Wed, 7 Apr 2010 18:01:24 +0000 (21:01 +0300)]
PR fortran/40539 Document LOGICAL representation
From-SVN: r158080
Simon Baldwin [Wed, 7 Apr 2010 17:18:10 +0000 (17:18 +0000)]
diagnostic.h (diagnostic_override_option_index): New macro to set a diagnostic's option_index.
* diagnostic.h (diagnostic_override_option_index): New macro to
set a diagnostic's option_index.
* c-tree.h (c_cpp_error): Add warning reason argument.
* opts.c (_warning_as_error_callback): New.
(register_warning_as_error_callback): Store callback for
warnings enabled via enable_warning_as_error.
(enable_warning_as_error): Call callback, minor code tidy.
* opts.h (register_warning_as_error_callback): Declare.
* c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
response to -Werror=.
(c_common_init_options): Register warning_as_error_callback in opts.c.
* common.opt: Add -Wno-cpp option.
* c-common.c (struct reason_option_codes_t): Map cpp warning
reason codes to gcc option indexes.
* (c_option_controlling_cpp_error): New function, lookup the gcc
option index for a cpp warning reason code.
* (c_cpp_error): Add warning reason argument, call
c_option_controlling_cpp_error for diagnostic_override_option_index.
* doc/invoke.texi: Document -Wno-cpp.
* cpp.c (cb_cpp_error): Add warning reason argument, set a value
for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
* directives.c (do_diagnostic): Add warning reason argument,
call appropriate error reporting function for code.
(directive_diagnostics): Call specific warning functions with
warning reason where appropriate.
(do_error, do_warning, do_pragma_dependency): Add warning reason
argument to do_diagnostic calls.
* macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
_cpp_create_definition): Call specific warning functions with
warning reason where appropriate.
* Makefile.in: Add new diagnostic functions to gettext translations.
* include/cpplib.h (struct cpp_callbacks): Add warning reason code
to error callback.
(CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
(CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
warning reason codes.
(cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
cpp_warning_with_line, cpp_pedwarning_with_line,
cpp_warning_with_line_syshdr): New specific error reporting functions.
* pch.c (cpp_valid_state): Call specific warning functions with
warning reason where appropriate.
* errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
diagnostic handlers.
(cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
cpp_warning_with_line, cpp_pedwarning_with_line,
cpp_warning_with_line_syshdr): New specific error reporting functions.
* expr.c (cpp_classify_number, eval_token, num_unary_op): Call
specific warning functions with warning reason where appropriate.
* lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
warn_about_normalization, lex_identifier_intern, lex_identifier,
_cpp_lex_direct): Ditto.
* charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
narrow_str_to_charconst): Ditto.
* gcc.dg/cpp/warn-undef-2.c: New.
* gcc.dg/cpp/warn-traditional-2.c: New.
* gcc.dg/cpp/warn-comments-2.c: New.
* gcc.dg/cpp/warning-directive-1.c: New.
* gcc.dg/cpp/warn-long-long.c: New.
* gcc.dg/cpp/warn-traditional.c: New.
* gcc.dg/cpp/warn-variadic-2.c: New.
* gcc.dg/cpp/warn-undef.c: New.
* gcc.dg/cpp/warn-normalized-1.c: New.
* gcc.dg/cpp/warning-directive-2.c: New.
* gcc.dg/cpp/warn-long-long-2.c: New.
* gcc.dg/cpp/warn-variadic.c: New.
* gcc.dg/cpp/warn-normalized-2.c: New.
* gcc.dg/cpp/warning-directive-3.c: New.
* gcc.dg/cpp/warn-deprecated-2.c: New.
* gcc.dg/cpp/warn-trigraphs-1.c: New.
* gcc.dg/cpp/warn-multichar-2.c: New.
* gcc.dg/cpp/warn-normalized-3.c: New.
* gcc.dg/cpp/warning-directive-4.c: New.
* gcc.dg/cpp/warn-unused-macros.c: New.
* gcc.dg/cpp/warn-trigraphs-2.c: New.
* gcc.dg/cpp/warn-cxx-compat-2.c: New.
* gcc.dg/cpp/warn-cxx-compat.c: New.
* gcc.dg/cpp/warn-redefined.c: New.
* gcc.dg/cpp/warn-trigraphs-3.c: New.
* gcc.dg/cpp/warn-unused-macros-2.c: New.
* gcc.dg/cpp/warn-deprecated.c: New.
* gcc.dg/cpp/warn-trigraphs-4.c: New.
* gcc.dg/cpp/warn-redefined-2.c: New.
* gcc.dg/cpp/warn-comments.c: New.
* gcc.dg/cpp/warn-multichar.c: New.
* g++.dg/cpp/warning-directive-1.C: New.
* g++.dg/cpp/warning-directive-2.C: New.
* g++.dg/cpp/warning-directive-3.C: New.
* g++.dg/cpp/warning-directive-4.C: New.
* gfortran.dg/warning-directive-1.F90: New.
* gfortran.dg/warning-directive-3.F90: New.
* gfortran.dg/warning-directive-2.F90: New.
* gfortran.dg/warning-directive-4.F90: New.
From-SVN: r158079
Iain Sandoe [Wed, 7 Apr 2010 16:20:08 +0000 (16:20 +0000)]
re PR objc++/23716 (obj-c++.dg/comp-types-10.mm ICE with the GNU runtime)
fix PR23716
2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
PR objc++/23716
* objc-act.c (build_module_initializer_routine): Make the argument
to objc_start_function NULL_TREE when compiling ObjC++.
2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
PR objc++/23716
* obj-c++.dg/comp-types-10.mm: Remove XFAIL.
From-SVN: r158076
Jason Merrill [Wed, 7 Apr 2010 15:55:20 +0000 (11:55 -0400)]
PR c++/11094, DR 408
PR c++/11094, DR 408
* cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
* decl2.c (finish_static_data_member_decl): Set it.
* decl.c (duplicate_decls): Propagate it.
* pt.c (tsubst_decl): Don't substitute the domain of an array
VAR_DECL if it's set.
(regenerate_decl_from_template): Substitute it here.
(type_dependent_expression_p): Return true if it's set.
* semantics.c (finish_decltype_type): Instantiate such a variable.
* typeck.c (cxx_sizeof_expr): Likewise.
(strip_array_domain): New.
From-SVN: r158075
Jason Merrill [Wed, 7 Apr 2010 15:55:02 +0000 (11:55 -0400)]
name-lookup.c (current_decl_namespace): Non-static.
* name-lookup.c (current_decl_namespace): Non-static.
(pop_nested_namespace): Sanity check.
* cp-tree.h: Declare current_decl_namespace.
* decl.c (grokvardecl): Use it instead of current_namespace.
(grokfndecl): Likewise.
* gnu/gcj/runtime/natSharedLibLoader.cc (findCore): Move
declaration of _Jv_create_core out of the function.
From-SVN: r158074
Jason Merrill [Wed, 7 Apr 2010 15:54:42 +0000 (11:54 -0400)]
re PR c++/38392 (Template friend function injection)
PR c++/38392
* pt.c (tsubst_friend_function): Instatiate a friend that has already
been used.
From-SVN: r158073
Jason Merrill [Wed, 7 Apr 2010 15:54:29 +0000 (11:54 -0400)]
pt.c (print_template_statistics): New.
* pt.c (print_template_statistics): New.
* cp-tree.h: Declare it.
* tree.c (cxx_print_statistics): Call it.
From-SVN: r158072
Jason Merrill [Wed, 7 Apr 2010 15:54:17 +0000 (11:54 -0400)]
re PR c++/41970 (use of a type with no linkage to declare a variable with linkage)
PR c++/41970
* decl.c (grokvardecl): Tweak warning message.
(grokfndecl): Likewise.
From-SVN: r158071
Richard Guenther [Wed, 7 Apr 2010 15:31:37 +0000 (15:31 +0000)]
ipa-reference.c (mark_load): Use get_base_address.
2010-04-07 Richard Guenther <rguenther@suse.de>
* ipa-reference.c (mark_load): Use get_base_address.
(mark_store): Likewise.
* tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
inserting GIMPLE_NOPs into the IL.
* tree-ssa-structalias.c (get_constraint_for_component_ref):
Explicitly strip handled components and indirect references.
* fold-const.c (fold_unary_loc): Do not strip qualifiers when
folding address expressions.
* gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
* tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
operand_equal_p to compare decls.
(ptr_deref_may_alias_decl_p): Likewise.
* tree-ssa-operands.c (get_asm_expr_operands): Simplify
* tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
Handle reversed comparison ops.
* tree-sra.c (asm_visit_addr): Use get_base_address.
* ipa-prop.c (visit_store_addr_for_mod_analysis): Use
get_base_address.
* ipa-reference.c (mark_address): Use get_base_address.
From-SVN: r158069
Dodji Seketeli [Wed, 7 Apr 2010 15:16:12 +0000 (15:16 +0000)]
re PR c++/42697 (ice-on-legal-code: template class template function local objects)
Fix PR c++/42697
gcc/cp/ChangeLog:
PR c++/42697
*pt.c (tsubst_decl): Get the arguments of a specialization from
the specialization template, not from the most general template.
gcc/testsuite/ChangeLog:
PR c++/42697
* g++.dg/template/crash94.C: New test.
From-SVN: r158068
Dodji Seketeli [Wed, 7 Apr 2010 15:11:42 +0000 (15:11 +0000)]
re PR c++/40239 (Aggregate initialization requires copy constructor)
Fix PR c++/40239
gcc/cp/ChangeLog:
PR c++/40239
* typeck2.c (process_init_constructor_record):
value-initialize members that are are not explicitely
initialized.
gcc/testsuite/ChangeLog:
PR c++/40239
* g++.dg/init/aggr5.C: New test.
* g++.dg/init/aggr5.C: New test.
From-SVN: r158066
Richard Guenther [Wed, 7 Apr 2010 14:34:35 +0000 (14:34 +0000)]
tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate constants everywhere.
2010-04-07 Richard Guenther <rguenther@suse.de>
* tree-ssa-forwprop.c (forward_propagate_addr_expr):
Propagate constants everywhere.
From-SVN: r158063
Jakub Jelinek [Wed, 7 Apr 2010 14:23:35 +0000 (16:23 +0200)]
re PR debug/43516 ("-fcompare-debug failure" at -O2)
PR debug/43516
* tree.c (MAX_INT_CACHED_PREC): Define.
(nonstandard_integer_type_cache): New array.
(build_nonstandard_integer_type): Cache results for precision
<= MAX_INT_CACHED_PREC.
From-SVN: r158062
Richard Guenther [Wed, 7 Apr 2010 13:08:24 +0000 (13:08 +0000)]
invoke.texi (-fargument-alias, [...]): Remove.
2010-04-07 Richard Guenther <rguenther@suse.de>
* doc/invoke.texi (-fargument-alias, -fargument-noalias,
-fargument-noalias-global, -fargument-noalias-anything): Remove.
* common.opt: Likewise.
* tree-ssa-structalias.c (intra_create_variable_infos): Adjust
comment.
* alias.c (base_alias_check): Remove flag_argument_noalias
handling.
(nonoverlapping_memrefs_p): Likewise.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
* opts.c (common_handle_option): Handle OPT_fargument_alias,
OPT_fargument_noalias, OPT_fargument_noalias_anything and
OPT_fargument_noalias_global for backward compatibility.
fortran/
* options.c (gfc_init_options): Do not set.
From-SVN: r158060
Richard Guenther [Wed, 7 Apr 2010 12:31:32 +0000 (12:31 +0000)]
re PR tree-optimization/43270 (array-bounds false negative)
2010-04-07 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43270
* tree-vrp.c (check_array_ref): Fix flexible array member
detection.
* tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
* tree-ssa-pre.c (phi_translate_1): Adjust.
(fully_constant_expression): Split out vn_reference handling to ...
* tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
Fold reads from constant strings.
(vn_reference_lookup): Handle fully constant references.
(vn_reference_lookup_pieces): Likewise.
* Makefile.in (expmed.o-warn): Add -Wno-error.
* g++.dg/warn/Warray-bounds-4.C: New testcase.
* gcc.dg/Warray-bounds-7.c: Likewise.
From-SVN: r158058
Martin Jambor [Wed, 7 Apr 2010 11:43:38 +0000 (13:43 +0200)]
tree-sra.c (find_param_candidates): Allow scalar va_list types.
2010-04-07 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (find_param_candidates): Allow scalar va_list types.
From-SVN: r158057
Eric Botcazou [Wed, 7 Apr 2010 11:38:06 +0000 (11:38 +0000)]
exp_pakd.adb (Create_Packed_Array_Type): Always use a modular type if the size is small enough.
* exp_pakd.adb (Create_Packed_Array_Type): Always use a modular type
if the size is small enough. Propagate the alignment if there is an
alignment clause on the original array type.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>
Deal with under-aligned packed array types. Copy the size onto the
justified modular type and don't lay it out again. Likewise for the
padding type built for other under-aligned subtypes.
* gcc-interface/utils.c (finish_record_type): Do not set a default mode
on the type.
From-SVN: r158056
Eric Botcazou [Wed, 7 Apr 2010 10:51:30 +0000 (10:51 +0000)]
decl.c (gnat_to_gnu_entity): Set default alignment on the RETURN type built for the Copy-In Copy-Out mechanism.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set default
alignment on the RETURN type built for the Copy-In Copy-Out mechanism.
From-SVN: r158054
Eric Botcazou [Wed, 7 Apr 2010 10:49:53 +0000 (10:49 +0000)]
trans.c (call_to_gnu): In the return-by-target-ptr case do not set the result type if...
* gcc-interface/trans.c (call_to_gnu): In the return-by-target-ptr case
do not set the result type if there is a specified target and do not
convert the result in any cases.
(protect_multiple_eval): Make direct SAVE_EXPR for CALL_EXPR.
(maybe_stabilize_reference) <COMPOUND_EXPR>: Merge with CALL_EXPR.
From-SVN: r158053
Iain Sandoe [Wed, 7 Apr 2010 10:40:06 +0000 (10:40 +0000)]
re PR driver/41594 (-static-libstdc++ is not recognized as valid by the gcc driver.)
2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
PR driver/41594
* gcc.c: Add -static-libstdc++ to list of recognized options.
From-SVN: r158052
Rainer Orth [Wed, 7 Apr 2010 10:35:19 +0000 (10:35 +0000)]
Update comment for last commit.
From-SVN: r158051
Rainer Orth [Wed, 7 Apr 2010 10:30:32 +0000 (10:30 +0000)]
config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
* config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to
generic.
From-SVN: r158049
Richard Guenther [Wed, 7 Apr 2010 10:15:05 +0000 (10:15 +0000)]
re PR rtl-optimization/42617 (TARGET_MEM_REF and plain INDIRECT_REFs are not handled by the RTL oracle)
2010-04-07 Richard Guenther <rguenther@suse.de>
PR middle-end/42617
* expr.c (expand_expr_real_1): For TARGET_MEM_REFs with
pointer bases build simple mem attributes to retain
points-to information.
From-SVN: r158048
Jie Zhang [Wed, 7 Apr 2010 10:14:45 +0000 (10:14 +0000)]
re PR c++/42556 (Unnecessary generation of a zero initializer for array with C++)
cp/
PR c++/42556
* typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
when all of its elements are non-constant and have been split out.
testsuite/
PR c++/42556
* g++.dg/init/pr42556.C: New test.
From-SVN: r158047
Richard Guenther [Wed, 7 Apr 2010 10:14:17 +0000 (10:14 +0000)]
re PR rtl-optimization/42617 (TARGET_MEM_REF and plain INDIRECT_REFs are not handled by the RTL oracle)
2010-04-07 Richard Guenther <rguenther@suse.de>
PR middle-end/42617
* alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
preserve points-to related information.
From-SVN: r158046
Richard Guenther [Wed, 7 Apr 2010 10:13:25 +0000 (10:13 +0000)]
re PR rtl-optimization/42617 (TARGET_MEM_REF and plain INDIRECT_REFs are not handled by the RTL oracle)
2010-04-07 Richard Guenther <rguenther@suse.de>
PR middle-end/42617
* emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
discard plain indirect references.
* fold-const.c (operand_equal_p): Guard against NULL_TREE
type.
* tree.c (tree_nop_conversion): Likewise.
From-SVN: r158045
Dodji Seketeli [Wed, 7 Apr 2010 09:59:04 +0000 (09:59 +0000)]
re PR debug/43628 (in-class func-ptr type parameter has unspecified DW_AT_type)
Fix PR debug/43628
gcc/ChangeLog:
PR debug/43628
* dwarf2out.c (modified_type_die): Ignore artificial typedefs.
gcc/testsuite/ChangeLog:
PR debug/43628
* g++.dg/debug/dwarf2/typedef2.C: New test.
From-SVN: r158044
Kai Tietz [Wed, 7 Apr 2010 08:04:59 +0000 (08:04 +0000)]
i386.c (ix86_handle_cconv_attribute): Ignore calling convention attributes on METHOD_TYPEs for w64 ABI, too.
2010-04-06 Kai Tietz <kai.tietz@onevision.com>
* config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
calling convention attributes on METHOD_TYPEs for w64 ABI, too.
From-SVN: r158042
Sebastian Pop [Wed, 7 Apr 2010 06:33:55 +0000 (06:33 +0000)]
Fix comments.
2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
* tree-if-conv.c: Fix indentation and comments.
From-SVN: r158041
Sebastian Pop [Wed, 7 Apr 2010 06:33:45 +0000 (06:33 +0000)]
Sort static functions in topological order.
2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
* tree-if-conv.c: Sort static functions in topological order.
From-SVN: r158040
Sebastian Pop [Wed, 7 Apr 2010 06:33:35 +0000 (06:33 +0000)]
Fix comments in ifconvert.
2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
* tree-if-conv.c: Fix indentation and comments.
From-SVN: r158039
GCC Administrator [Wed, 7 Apr 2010 00:19:41 +0000 (00:19 +0000)]
Daily bump.
From-SVN: r158038
Dodji Seketeli [Tue, 6 Apr 2010 21:26:35 +0000 (21:26 +0000)]
redeclaration-1.C: Moved from c-c++-common/dwarf2/redeclaration-1.C
2010-04-06 Dodji Seketeli <dodji@redhat.com>
* g++.dg/debug/dwarf2/redeclaration-1.C: Moved from
c-c++-common/dwarf2/redeclaration-1.C
From-SVN: r158031
Jason Merrill [Tue, 6 Apr 2010 21:13:07 +0000 (17:13 -0400)]
parser.c (cp_parser_class_specifier): Set class location to that of IDENTIFIER_NODE instead of '{' when possible.
* parser.c (cp_parser_class_specifier): Set class location to that
of IDENTIFIER_NODE instead of '{' when possible.
* semantics.c (begin_class_definition): Do not overide locations
with less precise ones.
From-SVN: r158030
Sebastian Pop [Tue, 6 Apr 2010 21:05:06 +0000 (21:05 +0000)]
Add ChangeLog entries.
From-SVN: r158029
Sebastian Pop [Tue, 6 Apr 2010 21:03:37 +0000 (21:03 +0000)]
Fix 473.astar miscompile.
2010-04-05 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/43519
* graphite-clast-to-gimple.c (max_signed_precision_type): Use
lang_hooks.types.type_for_size instead of build_nonstandard_integer_type.
When converting an unsigned type to signed, double its precision.
(gcc_type_for_interval): Use lang_hooks.types.type_for_size.
(gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
(graphite_create_new_loop_guard): When ub + 1 wraps around, use lb <= ub.
From-SVN: r158028
Sebastian Pop [Tue, 6 Apr 2010 21:02:25 +0000 (21:02 +0000)]
Use POINTER_PLUS_EXPR for pointer types.
2010-04-04 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/43519
* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
POINTER_PLUS_EXPR for pointer types.
* gcc.dg/graphite/id-19.c: New.
From-SVN: r158027
Sebastian Pop [Tue, 6 Apr 2010 21:01:16 +0000 (21:01 +0000)]
Compute min and max bounds for IVs and infer types.
2010-04-04 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/43519
* Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
* graphite-clast-to-gimple.c: Include langhooks.h.
(max_signed_precision_type): New.
(max_precision_type): Takes two types as arguments.
(precision_for_value): New.
(precision_for_interval): New.
(gcc_type_for_interval): New.
(gcc_type_for_value): New.
(gcc_type_for_clast_term): New.
(gcc_type_for_clast_red): New.
(gcc_type_for_clast_bin): New.
(gcc_type_for_clast_expr): Split up into several functions.
(gcc_type_for_clast_eq): Rewritten.
(compute_bounds_for_level): New.
(compute_type_for_level_1): New.
(compute_type_for_level): New.
(gcc_type_for_cloog_iv): Removed.
(gcc_type_for_iv_of_clast_loop): Rewritten.
(graphite_create_new_loop): Compute the lower and upper bound types
with gcc_type_for_clast_expr.
(graphite_create_new_loop_guard): Same.
(find_cloog_iv_in_expr): Removed.
(compute_cloog_iv_types_1): Removed.
(compute_cloog_iv_types): Removed.
(gloog): Do not call compute_cloog_iv_types.
* graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
GBB_CLOOG_IV_TYPES.
(free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
* sese.h (struct gimple_bb): Removed field cloog_iv_types.
(GBB_CLOOG_IV_TYPES): Removed.
* gcc.dg/graphite/run-id-pr42644.c: Call abort.
From-SVN: r158026
Sebastian Pop [Tue, 6 Apr 2010 21:00:12 +0000 (21:00 +0000)]
Add extra checks for places assuming one argument loop close SSA form.
2010-04-01 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
gimple_phi_num_args of the loop close SSA phi node is equal to 1.
(detect_commutative_reduction): Same.
From-SVN: r158025
Sebastian Pop [Tue, 6 Apr 2010 19:20:47 +0000 (19:20 +0000)]
Avoid calling verify_ssa twice in verify_loop_closed_ssa.
2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (graphite_verify): Remove redundant
call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
argument.
* graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
(rewrite_commutative_reductions_out_of_ssa): Same.
* passes.c (execute_function_todo): Call verify_ssa for every pass
in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
* tree-flow.h (verify_loop_closed_ssa): Update declaration.
* tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
with an extra argument.
* tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
verify_ssa only when the extra argument is true.
(gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
with an extra argument.
(tree_transform_and_unroll_loop): Same.
From-SVN: r158021
Sebastian Pop [Tue, 6 Apr 2010 19:20:29 +0000 (19:20 +0000)]
Always execute verify_loop_closed_ssa at LNO level.
2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
* passes.c (execute_function_todo): Call verify_loop_closed_ssa
for all the passes of the LNO having LOOP_CLOSED_SSA.
* tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
* tree-loop-distribution.c (pass_loop_distribution): Same.
* tree-pass.h (TODO_verify_loops): Removed.
* tree-ssa-loop.c (pass_tree_loop_init): Same.
(pass_lim): Same.
(pass_tree_unswitch): Same.
(pass_predcom): Same.
(pass_vectorize): Same.
(pass_linear_transform): Same.
(pass_graphite_transforms): Same.
(pass_iv_canon): Same.
(pass_complete_unroll): Same.
(pass_complete_unrolli): Same.
(pass_parallelize_loops): Same.
(pass_loop_prefetch): Same.
(pass_iv_optimize): Same.
From-SVN: r158020
Changpeng Fang [Tue, 6 Apr 2010 19:19:41 +0000 (19:19 +0000)]
re PR tree-optimization/32824 (Missed reduction vectorizer after store to global is LIM'd)
Fix PR32824.
2010-04-06 Changpeng Fang <changpeng.fang@amd.com>
PR middle-end/32824
* passes.c (init_optimization_passes): Move pass_lim before
pass_copy_prop and pass_dce_loop.
* gcc.dg/vect/pr32824: New.
From-SVN: r158018
Tobias Burnus [Tue, 6 Apr 2010 19:03:10 +0000 (21:03 +0200)]
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* array.c (gfc_match_array_spec): Add error for -fcoarray=none.
* match.c (gfc_match_critical, sync_statement): Ditto.
* gfortran.h (gfc_fcoarray): New enum.
(gfc_option_t): Use it.
* lang.opt (fcoarray): Add new flag.
* invoke.texi (fcoarray): Document it.
* options.c (gfc_init_options,gfc_handle_option): Handle
* -fcoarray=.
(gfc_handle_coarray_option): New function.
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* gfortran.dg/coarray_2.f90: Add dg-options -fcoarray=single.
* gfortran.dg/coarray_3.f90: Ditto.
* gfortran.dg/coarray_4.f90: Ditto.
* gfortran.dg/coarray_5.f90: Ditto.
* gfortran.dg/coarray_6.f90: Ditto.
* gfortran.dg/coarray_7.f90: Ditto.
* gfortran.dg/coarray_8.f90: Ditto.
* gfortran.dg/coarray_9.f90: New -fcoarray=none test.
From-SVN: r158016
Jakub Jelinek [Tue, 6 Apr 2010 18:41:25 +0000 (20:41 +0200)]
re PR target/43667 (ICE with __builtin_ia32_vpermil2p* and -mavx)
PR target/43667
* config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
(ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
MULTI_* defines for 4 argument vpermil2p* builtins.
From-SVN: r158015
Tobias Burnus [Tue, 6 Apr 2010 18:23:56 +0000 (20:23 +0200)]
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* gfortran.h (gfc_array_spec): Add cotype.
* array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
and defer error diagnostic.
* resolve.c (resolve_fl_derived): Add missing check.
(resolve_symbol): Add cotype/type check.
* parse.c (parse_derived): Fix setting of coarray_comp.
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* gfortran.dg/coarray_4.f90: Fix test.
* gfortran.dg/coarray_6.f90: Add more tests.
From-SVN: r158014
Uros Bizjak [Tue, 6 Apr 2010 18:18:42 +0000 (20:18 +0200)]
i386-protos.h (x86_maybe_negate_const_int): Declare.
* config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
* config/i386/i386.c (x86_maybe_negate_const_int): New.
(x86_output_mi_thunk): Use x86_maybe_negate_const_int.
* config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
*addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
*addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
*addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
Use x86_maybe_negate_const_int to output insn mnemonic.
(*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
check from instruction predicate. Update comments.
* config/i386/sync.md (sync_add<mode>): Use
x86_maybe_negate_const_int to output insn mnemonic.
From-SVN: r158013
Tobias Burnus [Tue, 6 Apr 2010 18:16:13 +0000 (20:16 +0200)]
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* array.c (gfc_free_array_spec,gfc_resolve_array_spec,
match_array_element_spec,gfc_copy_array_spec,
gfc_compare_array_spec): Include corank.
(match_array_element_spec,gfc_set_array_spec): Support codimension.
* decl.c (build_sym,build_struct,variable_decl,
match_attr_spec,attr_decl1,cray_pointer_decl,
gfc_match_volatile): Add codimension.
(gfc_match_codimension): New function.
* dump-parse-tree.c (show_array_spec,show_attr): Support
* codimension.
* gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
(gfc_add_codimension): New function prototype.
* match.h (gfc_match_codimension): New function prototype.
(gfc_match_array_spec): Update prototype
* match.c (gfc_match_common): Update gfc_match_array_spec call.
* module.c (MOD_VERSION): Bump.
(mio_symbol_attribute): Support coarray attributes.
(mio_array_spec): Add corank support.
* parse.c (decode_specification_statement,decode_statement,
parse_derived): Add coarray support.
* resolve.c (resolve_formal_arglist, was_declared,
is_non_constant_shape_array, resolve_fl_variable,
resolve_fl_derived, resolve_symbol): Add coarray support.
* symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
gfc_build_class_symbol): Add coarray support.
(gfc_add_codimension): New function.
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* gfortran.dg/coarray_4.f90: New test.
* gfortran.dg/coarray_5.f90: New test.
* gfortran.dg/coarray_6.f90: New test.
From-SVN: r158012
Tobias Burnus [Tue, 6 Apr 2010 17:58:50 +0000 (19:58 +0200)]
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* iso-fortran-env.def: Add the integer parameters
* atomic_int_kind,
atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
stat_locked_other_image, stat_stopped_image and stat_unlocked of
Fortran 2008.
* intrinsic.texi (iso_fortran_env): Ditto.
* libgfortran.h (libgfortran_stat_codes): New enum.
* module.c (use_iso_fortran_env_module): Honour -std= when
* loading
constants from the intrinsic module.
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* gfortran.dg/iso_fortran_env_5.f90: New test.
* gfortran.dg/iso_fortran_env_6.f90: New test.
From-SVN: r158011
Tobias Burnus [Tue, 6 Apr 2010 16:26:02 +0000 (18:26 +0200)]
re PR fortran/39997 (Procedure(), pointer & implicit typing: rejects-valid / accepts-invalid?)
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/39997
* intrinsic.c (add_functions): Add num_images.
* decl.c (gfc_match_end): Handle END CRITICAL.
* intrinsic.h (gfc_simplify_num_images): Add prototype.
* dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
and SYNC.
* gfortran.h (gfc_statement): Add enum items for those.
(gfc_exec_op) Ditto.
(gfc_isym_id): Add num_images.
* trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
(gfc_trans_sync,gfc_trans_critical): New functions.
* trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
gfc_trans_critical): Add/update prototypes.
* trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
and SYNC statements.
* trans.h (gfor_fndecl_error_stop_string) Add variable.
* resolve.c (resolve_sync): Add function.
(gfc_resolve_blocks): Handle CRITICAL.
(resolve_code): Handle CRITICAL, ERROR STOP,
(resolve_branch): Add CRITICAL constraint check.
and SYNC statements.
* st.c (gfc_free_statement): Add new statements.
* trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
(gfc_build_builtin_function_decls): Initialize it.
* match.c (gfc_match_if): Handle ERROR STOP and SYNC.
(gfc_match_critical, gfc_match_error_stop, sync_statement,
gfc_match_sync_all, gfc_match_sync_images,
gfc_match_sync_memory):
New functions.
(match_exit_cycle): Handle CRITICAL constraint.
(gfc_match_stopcode): Handle ERROR STOP.
* match.h (gfc_match_critical, gfc_match_error_stop,
gfc_match_sync_all, gfc_match_sync_images,
gfc_match_sync_memory): Add prototype.
* parse.c (decode_statement, gfc_ascii_statement,
parse_executable): Handle new statements.
(parse_critical_block): New function.
* parse.h (gfc_compile_state): Add COMP_CRITICAL.
* intrinsic.texi (num_images): Document new function.
* simplify.c (gfc_simplify_num_images): Add function.
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/39997
* gfortran.dg/coarray_1.f90: New test.
* gfortran.dg/coarray_2.f90: New test.
* gfortran.dg/coarray_3.f90: New test.
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/39997
* runtime/stop.c (error_stop_string): New function.
* gfortran.map (_gfortran_error_stop_string): Add.
From-SVN: r158008
Jason Merrill [Tue, 6 Apr 2010 16:12:15 +0000 (12:12 -0400)]
re PR c++/43648 (ICE with explicit destructor call and typedef)
PR c++/43648
* name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
From-SVN: r158007
Jason Merrill [Tue, 6 Apr 2010 16:10:47 +0000 (12:10 -0400)]
re PR c++/43621 (ICE: in poplevel_class, at cp/name-lookup.c:2615 with invalid qualified name)
PR c++/43621
* pt.c (maybe_update_decl_type): Check the return value from
push_scope.
From-SVN: r158006
Iain Sandoe [Tue, 6 Apr 2010 15:25:35 +0000 (15:25 +0000)]
MAINTAINERS (Write After Approval): Add myself.
2010-04-06 Iain Sandoe <iains@gcc.gnu.org>
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r158005
Jan Hubicka [Tue, 6 Apr 2010 15:18:18 +0000 (15:18 +0000)]
re PR tree-optimization/42906 (Empty loop not removed)
PR tree-optimization/42906
* tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add IGNORE_SELF
argument; set visited_control_parents for fully processed BBs.
(find_obviously_necessary_stmts): Update call of
mark_control_dependent_edges_necessary.
(propagate_necessity): Likewise; handle PHI edges more curefully.
* gcc.dg/tree-ssa/dce-1.c: New testcase.
From-SVN: r158004
Joseph Myers [Tue, 6 Apr 2010 14:21:32 +0000 (15:21 +0100)]
gcc.pot: Regenerate.
gcc/po:
* gcc.pot: Regenerate.
libcpp/po:
* cpplib.pot: Regenerate.
From-SVN: r158003
Joseph Myers [Tue, 6 Apr 2010 14:06:04 +0000 (15:06 +0100)]
* gennews (files): Add files for GCC 4.5.
From-SVN: r157998
Uros Bizjak [Tue, 6 Apr 2010 13:20:39 +0000 (15:20 +0200)]
i386.md: Remove comment about 'e' and 'E' operand modifier.
* config/i386/i386.md: Remove comment about 'e' and 'E'
operand modifier.
From-SVN: r157994
Tobias Burnus [Tue, 6 Apr 2010 12:46:19 +0000 (14:46 +0200)]
re PR fortran/43178 (Pointless resetting to NULL for local ALLOCATABLEs)
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/43178
* trans-array.c (gfc_conv_expr_descriptor): Update
gfc_trans_scalar_assign call.
(has_default_initializer): New function.
(gfc_trans_deferred_array): Nullify less often.
* trans-expr.c (gfc_conv_subref_array_arg,
gfc_trans_subcomponent_assign): Update call to
gfc_trans_scalar_assign.
(gfc_trans_scalar_assign): Add parameter and pass it on.
(gfc_trans_assignment_1): Optionally, do not dealloc before
assignment.
* trans-openmp.c (gfc_trans_omp_array_reduction): Update
call to gfc_trans_scalar_assign.
* trans-decl.c (gfc_get_symbol_decl): Do not always apply
initializer to static variables.
(gfc_init_default_dt): Add dealloc parameter and pass it on.
* trans-stmt.c (forall_make_variable_temp,
generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
gfc_trans_allocate): Update gfc_trans_assignment call.
* trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
parameter to prototype.
2010-04-06 Tobias Burnus <burnus@net-b.de>
PR fortran/43178
* gfortran.dg/alloc_comp_basics_1.f90: Update
* scan-tree-dump-times.
* gfortran.dg/alloc_comp_constructor_1.f90: Ditto.
* gfortran.dg/auto_dealloc_1.f90: Ditto.
From-SVN: r157993
Richard Guenther [Tue, 6 Apr 2010 12:32:25 +0000 (12:32 +0000)]
re PR tree-optimization/43627 (slow compilation (tree canonical iv takes 75%))
2010-04-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43627
* tree-vrp.c (extract_range_from_unary_expr): Widenings
of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
not varying.
* gcc.dg/tree-ssa/vrp49.c: New testcase.
From-SVN: r157992
Jakub Jelinek [Tue, 6 Apr 2010 11:14:22 +0000 (13:14 +0200)]
* BASE-VER: Change to 4.6.0.
From-SVN: r157990
Jakub Jelinek [Tue, 6 Apr 2010 11:04:58 +0000 (13:04 +0200)]
re PR target/43638 (Internal compiler error with inline asm)
PR target/43638
* config/i386/i386.c (print_operand): Remove 'e' and 'E' code
handling.
* gcc.target/i386/pr43638.c: New test.
From-SVN: r157987
Richard Guenther [Tue, 6 Apr 2010 10:36:57 +0000 (10:36 +0000)]
re PR c/43661 (ice in fold_comparison, at fold-const.c:9579)
2010-04-06 Richard Guenther <rguenther@suse.de>
PR middle-end/43661
* fold-const.c (fold_comparison): Handle X * 0 CMP 0.
* gcc.c-torture/compile/pr43661.c: New testcase.
From-SVN: r157984
Jakub Jelinek [Tue, 6 Apr 2010 07:37:37 +0000 (09:37 +0200)]
dwarf2.h (DWARF2_Internal_LineInfo): Add li_max_ops_per_insn field.
* dwarf2.h (DWARF2_Internal_LineInfo): Add li_max_ops_per_insn
field.
From-SVN: r157983
Jakub Jelinek [Tue, 6 Apr 2010 07:08:11 +0000 (09:08 +0200)]
* gcc.target/s390/stackcheck1.c: Add dg-warning.
From-SVN: r157980
Jakub Jelinek [Tue, 6 Apr 2010 07:02:40 +0000 (09:02 +0200)]
re PR preprocessor/43642 (FAIL: c-c++-common/raw-string-1.c)
PR preprocessor/43642
* lex.c (lex_raw_string): Change type of TYPE variable to
unsigned char.
From-SVN: r157979
Matthias Klose [Tue, 6 Apr 2010 01:27:44 +0000 (01:27 +0000)]
acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Show test result.
2010-04-06 Matthias Klose <doko@ubuntu.com>
* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Show test result.
* configure: Regenerate.
* doc/xml/manual/configure.xml, doc/html/manual/configure.html:
Document --enable-libstdcxx-time as the short form for
--enable-libstdcxx-time=yes.
From-SVN: r157975
GCC Administrator [Tue, 6 Apr 2010 00:19:07 +0000 (00:19 +0000)]
Daily bump.
From-SVN: r157974