PR c++/42748
* config/arm/arm.c (arm_mangle_type): Do not warn about changes to
mangling of va_list in system headers.
PR c++/42748
* g++.dg/abi/arm_va_list2.C: New test.
* g++.dg/abi/arm_va_list2.h: Companion header file.
From-SVN: r156202
2010-01-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/41044
PR fortran/41167
* expr.c (remove_subobject_ref): If the constructor is NULL use
the expression as the source.
(simplify_const_ref): Change the type of expression if
there are component references. Allow for substring to be at
the end of an arbitrarily long chain of references. If an
element is found that is not in an EXPR_ARRAY, assume that this
is scalar initialization of array. Call remove_subobject_ref in
this case with NULL second argument.
2010-01-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/41044
* gfortran.dg/parameter_array_ref_2.f90 : New test.
PR fortran/41167
* gfortran.dg/char_array_arg_1.f90 : New test.
* gfortran.dg/pr25923.f90 : Remove XFAIL.
From-SVN: r156197
2010-01-24 Tobias Burnus <burnus@net-b.de>
PR fortran/39304
* array.c (gfc_array_dimen_size): Use correct specific
function in the check.
2010-01-24 Tobias Burnus <burnus@net-b.de>
PR fortran/39304
* gfortran.dg/generic_20.f90: New test.
From-SVN: r156195
PR tree-opt/42833
* tree-sra.c (sra_modify_assign): Delay re-gimplification of
the RHS until after generate_subtree_copies has insertted its
code before the current statement.
From-SVN: r156176
2010-01-22 Shujing Zhao <pearly.zhao@oracle.com>
* exgettext: Handle the functions and the macro definitions that the
arguments are broken into more than one line.
From-SVN: r156168
2010-01-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/42736
* trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
is required, turn any trailing array elements after a range
into ranges so that offsets can be calculated.
2010-01-21 Paul Thomas <pault@gcc.gnu.org>
PR fortran/42736
* gfortran.dg/dependency_25.f90 : New test.
From-SVN: r156161
2010-01-21 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/42585
* tree-sra.c (struct access): New field grp_total_scalarization.
(dump_access): Dump the new field.
(should_scalarize_away_bitmap): New variable.
(cannot_scalarize_away_bitmap): Likewise.
(sra_initialize): Allocate new bitmaps.
(sra_deinitialize): Free new bitmaps.
(create_access_1): New function.
(create_access): Parts moved to create_access_1.
(type_consists_of_records_p): New function.
(completely_scalarize_record): Likewise.
(build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
(build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
(sort_and_splice_var_accesses): Hint groups with a total_scalarization
access.
(analyze_all_variable_accesses): Completely scalarize small eligible
records.
* testsuite/gcc.dg/tree-ssa/pr42585.c: New test.
From-SVN: r156156
2010-01-21 Richard Guenther <rguenther@suse.de>
PR middle-end/19988
* fold-const.c (negate_expr_p): Pretend only negative
real constants are easily negatable.
* gcc.dg/pr19988.c: New testcase.
From-SVN: r156152
* tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
(TYPE_TRANSPARENT_AGGR): this, for union and record.
* calls.c (initialize argument_information): Handle it.
* c-common.c (handle_transparent_union_attribute): Use new name.
* c-decl.c (finish_struct): Ditto.
* c-typeck.c (type_lists_compatible_p): Ditto.
(convert_for_assignment): Use new name and also handle record.
* function.c (aggregate_value_p): Handle it.
(pass_by_reference): Ditto.
(assign_parm_data_types): Ditto.
* print-tree.c (print_node): Ditto.
* lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
* lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
* tree.c (first_field): New fn.
gcc/cp/
* mangle.c (write_type): Mangle transparent record as member type.
* semantics.c (begin_class_definition): Recognize decimal classes
and set TYPE_TRANSPARENT_AGGR.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r156106
PR c++/42338
* mangle.c (write_expression): Handle tree codes that have extra
arguments in the middle-end.
* cp-demangle.c (d_print_comp): Fix array index printing.
From-SVN: r156103
PR debug/42715
* var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
without a cselib val.
(count_uses): Accept MO_VAL_SET with no val on stores.
(add_stores): Likewise.
* gcc.dg/pr42715.c: New.
From-SVN: r156102
* var-tracking.c (check_value_val): Add a compile time assertion.
(dv_is_decl_p): Simplify.
(dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
gcc_assert if ENABLE_CHECKING.
From-SVN: r156101
PR c++/40750
* decl.c (grokdeclarator): Clear type_quals for a member function
declared using a typedef. Don't complain about adding cv-quals
to a function typedef in C++0x mode.
From-SVN: r156084
2010-01-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/42717
* tree-ssa-dce.c (get_live_post_dom): Remove.
(forward_edge_to_pdom): Take an arbitrary edge to copy
degenerate PHI args from.
(remove_dead_stmt): Use the first post-dominator even if it
does not contain live statements as redirection destination.
* gcc.c-torture/compile/pr42717.c: New testcase.
From-SVN: r156076
2010-01-20 Janis Johnson <janis187@us.ibm.com>
Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/21769
* testsuite/lib/dg-options.exp (add_options_for_no_pch): Add.
* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
Use it.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r156075
* sel-sched.c (create_speculation_check): Remove set but not used
variable twin.
(try_transformation_cache): Remove set but not used variable ds.
(calculate_privileged_insns): Remove set but not used variables
cur_insn and min_spec_insn.
(find_best_expr): Remove set but not used variable avail_n.
* tree-predcom.c (base_names_in_chain_on): Remove set but not used
variable e.
* cgraphunit.c (assemble_thunk): Remove set but not used variable
false_label.
* haifa-sched.c (remove_notes): Remove set but not used variable prev.
* graphite-clast-to-gimple.c (gloog): Remove set but not used variable
new_scop_exit_edge.
* decl.c (create_array_type_for_decl): Remove set but not used
variable error_msg. Remove break stmts after return stmts.
From-SVN: r156072
PR bootstrap/42786
* config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
cpu types. Add support for *-sse3 cpu types.
(x86_64-*-*): Ditto.
From-SVN: r156071
PR middle-end/42803
* varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
argument, call initializer_constant_valid_p_1 instead of
initializer_constant_valid_p, pass CACHE to it, return NULL
immediately if first call returns NULL.
(initializer_constant_valid_p_1): New function.
(initializer_constant_valid_p): Use it.
* g++.dg/parse/limits-initializer1.C: New test.
From-SVN: r156069