2015-07-03 Paolo Carlini <paolo.carlini@oracle.com>
* attribs.c (decl_attributes): Guard inform with the return value
of the preceding warning.
From-SVN: r225402
2015-07-03 Richard Biener <rguenther@suse.de>
* genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
Copy from tree.c
(dt_operand::gen_gimple_expr): After valueizing operands
re-canonicalize operand order for commutative tree codes.
From-SVN: r225378
x86intrin.h has useful intrinsics for instructions for IA MCU. This
patch adds __iamcu__ check to x86intrin.h and ia32intrin.h.
gcc/
PR target/66746.
* config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
is defined.
(__crc32w): Likewise.
(__crc32d): Likewise.
(__rdpmc): Likewise.
(__rdtscp): Likewise.
(_rdpmc): Likewise.
(_rdtscp): Likewise.
* config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
is defined.
gcc/testsuite/
PR target/66746.
* gcc.target/i386/pr66746.c: New file.
From-SVN: r225376
2015-07-03 Richard Biener <rguenther@suse.de>
* fold-const.c (fold_mathfn_compare): Remove.
(fold_inf_compare): Likewise.
(fold_comparison): Move floating point comparison simplifications...
* match.pd: ... to patterns here. Introduce simple_comparisons
operator list and use it for patterns formerly in fold_comparison.
From-SVN: r225375
gcc/
PR tree-optimization/66119
* toplev.c (process_options): Don't set up default values for
the sra_max_scalarization_size_{speed,size} parameters.
* tree-sra (analyze_all_variable_accesses): If no values
have been set for the sra_max_scalarization_size_{speed,size}
parameters, call get_move_ratio to get target defaults.
gcc/testsuite/
PR tree-optimization/66119
* g++.dg/opt/pr66119.C: New.
From-SVN: r225369
2015-07-02 Paul Thomas <pault@gcc.gnu.org>
PR fortran/52846
* decl.c (get_proc_name): Make a partially populated interface
symbol to carry the characteristics of a module procedure and
its result.
(variable_decl): Declarations of dummies or results in the
abreviated form of module procedure is an error.
(gfc_match_import): IMPORT is not permitted in the interface
declaration of module procedures.
(match_attr_spec): Submodule variables have implicit save
attribute for F2008 onwards.
(gfc_match_prefix): Add 'module' as the a prefix and set the
module_procedure attribute.
(gfc_match_formal_arglist): For a module procedure keep the
interface formal_arglist from the interface, match new the
formal arguments and then compare the number and names of each.
(gfc_match_procedure): Add case COMP_SUBMODULE.
(gfc_match_function_decl, gfc_match_subroutine_decl): Set the
module_procedure attribute.
(gfc_match_entry, gfc_match_end): Add case COMP_SUBMODULE. If
attr abr_modproc_decl is set, switch the message accordingly
for subroutines and functions.
(gfc_match_submod_proc): New function to match the abbreviated
style of submodule declaration.
* gfortran.h : Add ST_SUBMODULE and ST_END_SUBMODULE. Add the
attribute bits 'used_in_submodule' and 'module_procedure'. Add
the bit field 'abr_modproc_decl' to gfc_symbol. Add prototypes
for 'gfc_copy_dummy_sym', 'gfc_check_dummy_characteristics' and
'gfc_check_result_characteristics'.
* interface.c : Add the prefix 'gfc_' to the names of functions
'check_dummy(result)_characteristics' and all their references.
* match.h : Add prototype for 'gfc_match_submod_proc' and
'gfc_match_submodule'.
(check_sym_interfaces): A module procedure is not an error in
a module procedure statment in a generic interface.
* module.c (gfc_match_submodule): New function. Add handling
for the 'module_procedure' attribute bit.
(gfc_use_module): Make sure that a submodule cannot use itself.
* parse.c (decode_statement): Set attr has_'import_set' for
the interface declaration of module procedures. Handle a match
occurring in 'gfc_match_submod_proc' and a match for
'submodule'.
(gfc_enclosing_unit): Include the state COMP_SUBMODULE.
(gfc_ascii_statement): Add END SUBMODULE.
(accept_statement): Add ST_SUBMODULE.
(parse_spec): Disallow statement functions in a submodule
specification part.
(parse_contained): Add ST_END_SUBMODULE and COMP_SUBMODULE
twice each.
(get_modproc_result): Copy the result symbol of the interface.
(parse_progunit): Call it.
(set_syms_host_assoc): Make symbols from the ancestor module
and submodules use associated, as required by the standard and
set all private components public. Module procedures 'external'
attribute bit is reset and the 'used_in_submodule' bit is set.
(parse_module): If this is a submodule, use the ancestor module
and submodules. Traverse the namespace, calling
'set_syms_host_assoc'. Add ST_END_SUBMODULE and COMP_SUBMODULE.
* parse.h : Add COMP_SUBMODULE.
* primary.c (match_variable): Add COMP_SUBMODULE.
* resolve.c (compare_fsyms): New function to compare the dummy
characteristics of a module procedure with its interface.
(resolve_fl_procedure): Compare the procedure, result and dummy
characteristics of a module_procedure with its interface, using
'compare_fsyms' for the dummy arguments.
* symbol.c (gfc_add_procedure): Suppress the check for existing
procedures in the case of a module procedure.
(gfc_add_explicit_interface): Skip checks that must fail for
module procedures.
(gfc_add_type): Allow a new type to be added to module
procedures, their results or their dummy arguments.
(gfc_copy_dummy_sym): New function to generate new dummy args
and copy the characteristics from the interface.
* trans-decl.c (gfc_sym_mangled_function_id): Module procedures
must always have their names mangled as if they are symbols
coming from a declaration in a module.
(gfc_get_symbol_decl): Add 'used_in_submodule' to the assert.
(gfc_finish_var_decl): Symbols with the 'used_in_submodule' bit
set are set DECL_EXTERNAL as if they were use associated.
2015-07-02 Paul Thomas <pault@gcc.gnu.org>
PR fortran/52846
* gfortran.dg/submodule_1.f90: New test
* gfortran.dg/submodule_2.f90: New test
* gfortran.dg/submodule_3.f90: New test
* gfortran.dg/submodule_4.f90: New test
* gfortran.dg/submodule_5.f90: New test
* gfortran.dg/submodule_6.f90: New test
* gfortran.dg/submodule_7.f90: New test
From-SVN: r225354
2015-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/56520
* match.c (gfc_match_name): Special case unary minus and plus.
2015-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/56520
* gfortran.dg/pr56520.f90: New test.
From-SVN: r225349
2015-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66545
* primary.c (match_sym_complex_part): Do not dereference NULL pointer.
2015-07-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66545
* gfortran.dg/pr66545_1.f90: New test.
* gfortran.dg/pr66545_2.f90: New test.
From-SVN: r225348
PR rtl-optimization/66706
* combine.c (make_compound_operation): If an AND of SUBREG of
LSHIFTRT does not simplify, see if just the AND of SUBREG does.
From-SVN: r225344
2015-07-02 Richard Biener <rguenther@suse.de>
* builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
* fold-const.c (get_pointer_modulus_and_residue): Remove.
(fold_binary_loc): Implement (T)ptr & CST in terms of
get_pointer_alignment_1.
* tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
Make sure to build the alignment test on a SSA name without
final alignment info valid only after the prologue.
From-SVN: r225310
2015-07-02 Richard Biener <rguenther@suse.de>
* tree-ssa-dom.c (build_and_record_new_cond): Add optional
parameter to record a condition that is false.
(record_conditions): When recording an extra NE_EXPR that is
true also record a EQ_EXPR that is false.
* gcc.dg/tree-ssa/ssa-dom-cse-4.c: New testcase.
From-SVN: r225299
* libsupc++/guard.cc (__test_and_acquire): Use __p after __atomic_load
to avoid unused variable warning.
(__set_and_release): Use __p after __atomic_store to avoid unused
variable warning.
From-SVN: r225298
* tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
(tree_ssa_iv_optimize_init): Initialize iv_obstack.
(alloc_iv): New parameter. Allocate struct iv using obstack_alloc.
(set_iv, find_interesting_uses_address, add_candidate_1): New
argument to alloc_iv.
(find_interesting_uses_op, find_interesting_uses_cond): Don't
duplicate struct iv.
(free_loop_data): Don't free struct iv explicitly.
(tree_ssa_iv_optimize_finalize): Free iv_obstack.
From-SVN: r225293
gcc/c-family/
* c-opts.c (c_common_post_options): Highest ABI level is now 10.
gcc/cp/
* mangle.c (write_CV_qualifiers_for_type, write_nested_name):
Attribute mangling is now -fabi-version=10.
From-SVN: r225271
PR c++/65945
* decl.c (cxx_init_decl_processing): Set TYPE_ALIGN of nullptr_t.
* class.c (layout_nonempty_base_or_field): Warn if that affects
the offset of a field.
From-SVN: r225270
2015-07-01 Tom de Vries <tom@codesourcery.com>
PR testsuite/66723
* gcc.target/i386/vararg-loc.c: Use scan-rtl-dump instead of
scan-assembler.
From-SVN: r225266
gcc/
PR bootstrap/66685
* rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
there are no CALLs in the same pattern.
From-SVN: r225263
2015-07-01 Thomas Koenig <tkoenig@gcc.gnu.org>
* arith.c (gfc_arith_divide): With -Winteger-division,
warn about contant integer division if there is a non-zero
remainder.
* invoke.texi: Document -Winteger-division.
* lang.opt: Add -Winteger-division.
2015-07-01 Thomas Koenig <tkoenig@gcc.gnu.org>
* gfortran.dg/warn_conversion_8.f90: New test.
From-SVN: r225262
2015-07-01 Richard Biener <rguenther@suse.de>
* fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
~X CMP C -> X CMP' ~C to ...
* match.pd: ... patterns here.
From-SVN: r225249