platform/upstream/gcc.git
7 years ago[ARM][1/2] Use generic_extra_costs in all remaining tuning structs
Kyrylo Tkachov [Tue, 8 Nov 2016 13:45:52 +0000 (13:45 +0000)]
[ARM][1/2] Use generic_extra_costs in all remaining tuning structs

* config/arm/arm.c (arm_slowmul_tune): Use generic_extra_costs.
(arm_fastmul_tune): Likewise.
(arm_strongarm_tune): Likewise.
(arm_xscale_tune): Likewise.
(arm_9e_tune): Likewise.
(arm_marvell_pj4_tune): Likewise.
(arm_v6t2_tune): Likewise.
(arm_v6m_tune): Likewise.
(arm_fa726te_tune): Likewise.

From-SVN: r241965

7 years ago[AArch64] Optimized implementation of search_line_fast for the CPP lexer
Richard Earnshaw [Tue, 8 Nov 2016 13:29:32 +0000 (13:29 +0000)]
[AArch64] Optimized implementation of search_line_fast for the CPP lexer

  * lex.c (search_line_fast): New implementation for AArch64.

From-SVN: r241964

7 years ago[1/2] Fix off-by-one error in clear_bit_region in store merging (PR tree-optimization...
Kyrylo Tkachov [Tue, 8 Nov 2016 12:31:31 +0000 (12:31 +0000)]
[1/2] Fix off-by-one error in clear_bit_region in store merging (PR tree-optimization/78234 ?)

PR tree-optimization/78234
* gimple-ssa-store-merging.c (clear_bit_region): Fix off-by-one error
in start != 0 case.

From-SVN: r241962

7 years agouse-after-scope fallout
Martin Liska [Tue, 8 Nov 2016 12:28:33 +0000 (13:28 +0100)]
use-after-scope fallout

PR testsuite/78242
* g++.dg/asan/use-after-scope-4.C: New test.
* g++.dg/asan/use-after-scope-types-4.C: Update scanned pattern.
* gcc.dg/asan/use-after-scope-8.c: Remove.
PR testsuite/78242
* dbgcnt.def: Add new debug counter asan_use_after_scope.
* gimplify.c (gimplify_decl_expr): Do not sanitize vars
with a value expr.  Do not add artificial variables to
live_switch_vars.  Use the debug counter.
(gimplify_target_expr): Use the debug counter.
* internal-fn.def: Remove ECF_TM_PURE from ASAN_MARK builtin.
* sanitizer.def: Set ATTR_NOTHROW_LEAF_LIST to
BUILT_IN_ASAN_CLOBBER_N and BUILT_IN_ASAN_UNCLOBBER_N.

From-SVN: r241961

7 years agotree-vect-stmts.c (get_group_load_store_type): If the access is aligned do not trigge...
Richard Biener [Tue, 8 Nov 2016 10:23:57 +0000 (10:23 +0000)]
tree-vect-stmts.c (get_group_load_store_type): If the access is aligned do not trigger peeling for gaps.

2016-11-08  Richard Biener  <rguenther@suse.de>

* tree-vect-stmts.c (get_group_load_store_type): If the
access is aligned do not trigger peeling for gaps.
* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
force alignment of vars with DECL_USER_ALIGN.

* gcc.dg/vect/vect-nb-iter-ub-2.c: Adjust.

From-SVN: r241959

7 years ago[Patch AArch64] aarch64-c.o should depend on TARGET_H
James Greenhalgh [Tue, 8 Nov 2016 09:53:07 +0000 (09:53 +0000)]
[Patch AArch64] aarch64-c.o should depend on TARGET_H

gcc/

* config/aarch64/t-aarch64 (aarch64-c.o): Depend on TARGET_H.

From-SVN: r241958

7 years agoFix traditional cpp test failure
Tamar Christina [Tue, 8 Nov 2016 09:41:11 +0000 (09:41 +0000)]
Fix traditional cpp test failure

* gcc.dg/cpp/trad/trad.exp
(dg-runtest): Added $srcdir/$subdir/ to Include dirs.
* gcc.dg/cpp/trad/include.c: Use local header file.

From-SVN: r241957

7 years agore PR tree-optimization/78205 (BB vectorization confused by too large load groups)
Richard Biener [Tue, 8 Nov 2016 08:06:42 +0000 (08:06 +0000)]
re PR tree-optimization/78205 (BB vectorization confused by too large load groups)

2016-11-08  Richard Biener  <rguenther@suse.de>

PR tree-optimization/78205
* tree-vect-stmts.c (vectorizable_load): Move check whether
we may run into gaps when BB vectorizing SLP permutations ...
* tree-vect-slp.c (vect_supported_load_permutation_p): ...
here where we can do a more precise check.

* gcc.dg/vect/bb-slp-pr78205.c: New testcase.

From-SVN: r241956

7 years agore PR tree-optimization/78224 (g++ ICE at -O2(-O1 on gcc6) and above in verify_loop_s...
Richard Biener [Tue, 8 Nov 2016 08:03:54 +0000 (08:03 +0000)]
re PR tree-optimization/78224 (g++ ICE at -O2(-O1 on gcc6) and above in verify_loop_structure, at cfgloop.c:1646)

2016-11-08  Richard Biener  <rguenther@suse.de>

PR tree-optimization/78224
* tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
Split the fallthru edge in case its successor may have PHIs.
Do not free dominance info.

* g++.dg/torture/pr78224.C: New testcase.

From-SVN: r241955

7 years agoFix bogus store_merging_x.c failures for avr.
Senthil Kumar Selvaraj [Tue, 8 Nov 2016 06:30:31 +0000 (06:30 +0000)]
Fix bogus store_merging_x.c failures for avr.

Store merging isn't profitable for the avr. Add a new
effective target keyword "store_merge", and turn it on
only if non_strict_align *and* int32plus, as targets with
smallish word sizes are unlikely to profit from this optimization.

gcc/testsuite/ChangeLog

2016-11-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* gcc.dg/store_merging_1.c: Require store_merge.
* gcc.dg/store_merging_2.c: Likewise.
* gcc.dg/store_merging_4.c: Likewise.
* gcc.dg/store_merging_5.c: Likewise.
* gcc.dg/store_merging_6.c: Likewise.
* gcc.dg/store_merging_7.c: Likewise.
* gcc.dg/store_merging_8.c: Likewise.
* lib/target-supports.exp (check_effective_target_store_merge): New.

From-SVN: r241953

7 years agoDaily bump.
GCC Administrator [Tue, 8 Nov 2016 00:16:22 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241949

7 years agofold-vec-add-1.c: Add dg-options -maltivec.
David Edelsohn [Mon, 7 Nov 2016 23:09:44 +0000 (23:09 +0000)]
fold-vec-add-1.c: Add dg-options -maltivec.

        * gcc.target/powerpc/fold-vec-add-1.c: Add dg-options -maltivec.
        * gcc.target/powerpc/fold-vec-add-2.c: Add dg-options -maltivec.
        * gcc.target/powerpc/fold-vec-add-3.c: Add dg-options -maltivec.
        * gcc.target/powerpc/fold-vec-add-4.c: Add dg-options -maltivec
        -mvsx -mpower8-vector.
        * gcc.target/powerpc/fold-vec-add-5.c: Add dg-options -maltivec -mno-vs\
x.
        * gcc.target/powerpc/fold-vec-add-6.c: Add dg-options -maltivec -mvsx.
        * gcc.target/powerpc/fold-vec-add-7.c: Add dg-options -maltivec
        -mvsx -mpower8-vector.

From-SVN: r241945

7 years agoImplement P0012R1, Make exception specifications part of the type system.
Jason Merrill [Mon, 7 Nov 2016 23:09:29 +0000 (18:09 -0500)]
Implement P0012R1, Make exception specifications part of the type system.

gcc/cp/
* cp-tree.h (enum tsubst_flags): Add tf_fndecl_type.
(flag_noexcept_type, ce_type): New.
* call.c (build_conv): Add ck_fnptr.
(enum conversion_kind): Change ck_tsafe to ck_fnptr.
(convert_like_real): Likewise.
(standard_conversion): Likewise.  Allow function pointer
conversions for pointers to member functions.
(reference_compatible_p): Allow function pointer conversions.
(direct_reference_binding): Likewise.
(reference_binding): Reference-compatible is no longer a subset of
reference-related.
(is_subseq): Also strip ck_lvalue after next_conversion.
* class.c (instantiate_type): Check fnptr_conv_p.
(resolve_address_of_overloaded_function): Likewise.
* cvt.c (can_convert_tx_safety): Now static.
(noexcept_conv_p, fnptr_conv_p, strip_fnptr_conv): New.
* decl.c (flag_noexcept_type): Define.
(cxx_init_decl_processing): Set it.
(bad_specifiers): Check it.
(grokdeclarator) [cdk_function]: Add exception-spec to type here.
* lambda.c (maybe_add_lambda_conv_op): Add exception-spec to
returned pointer.
* mangle.c (struct globals): Add need_cxx1z_warning.
(mangle_decl): Check it.
(write_exception_spec): New.
(write_function_type): Call it.
(canonicalize_for_substitution): Handle exception spec.
(write_type): Likewise.
(write_encoding): Set processing_template_decl across mangling of
partially-instantiated type.
* pt.c (determine_specialization): Pass tf_fndecl_type.
(tsubst_decl, fn_type_unification): Likewise.
(tsubst): Strip tf_fndecl_type, pass it to
tsubst_exception_specification.
(convert_nontype_argument_function): Handle function pointer
conversion.
(convert_nontype_argument): Likewise.
(unify, for_each_template_parm_r): Walk into noexcept-specifier.
* rtti.c (ptr_initializer): Encode noexcept.
* tree.c (canonical_eh_spec): New.
(build_exception_variant): Use it.
* typeck.c (composite_pointer_type): Handle fnptr conversion.
(comp_except_specs): Compare canonical EH specs.
(structural_comptypes): Call it.
gcc/c-family/
* c.opt (Wc++1z-compat): New.
* c-cppbuiltin.c (c_cpp_builtins): Add __cpp_noexcept_function_type.
libstdc++-v3/
* include/bits/c++config (_GLIBCXX_NOEXCEPT_PARM)
(_GLIBCXX_NOEXCEPT_QUAL): New.
* include/std/type_traits (is_function): Use them.
* libsubc++/new (launder): Likewise.
* libsupc++/cxxabi.h (__pbase_type_info::__masks): Add
__noexcept_mask.
* libsupc++/pbase_type_info.cc (__do_catch): Handle function
pointer conversion.
libiberty/
* cp-demangle.c (is_fnqual_component_type): New.
(d_encoding, d_print_comp_inner, d_print_mod_list): Use it.
(FNQUAL_COMPONENT_CASE): New.
(d_make_comp, has_return_type, d_print_comp_inner)
(d_print_function_type): Use it.
(next_is_type_qual): New.
(d_cv_qualifiers, d_print_mod): Handle noexcept and throw-spec.
include/
* demangle.h (enum demangle_component_type): Add
DEMANGLE_COMPONENT_NOEXCEPT, DEMANGLE_COMPONENT_THROW_SPEC.

From-SVN: r241944

7 years agoC++ cleanups before C++17 noexcept in types.
Jason Merrill [Mon, 7 Nov 2016 23:09:21 +0000 (18:09 -0500)]
C++ cleanups before C++17 noexcept in types.

* call.c (standard_conversion): Reorganize pointer conversions.
* pt.c (convert_nontype_argument_function): Convert to ref here.
(convert_nontype_argument): Not here.
(convert_template_argument): Add original type to error message.
(RECUR_AND_CHECK_FAILURE): Remove trailing semicolon.
(unify): Compare function-qualifiers.
* typeck.c (same_type_ignoring_top_level_qualifiers_p): Use
cp_build_qualified_type rather than TYPE_MAIN_VARIANT.

From-SVN: r241943

7 years agore PR target/78229 (ICE in redirect_eh_edge_1, at tree-eh.c:2305)
Jakub Jelinek [Mon, 7 Nov 2016 22:35:43 +0000 (23:35 +0100)]
re PR target/78229 (ICE in redirect_eh_edge_1, at tree-eh.c:2305)

PR target/78229
* config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust
EH info even for bzhi and pdep/pext.

From-SVN: r241942

7 years agoFix dates.
David Edelsohn [Mon, 7 Nov 2016 22:33:10 +0000 (17:33 -0500)]
Fix dates.

From-SVN: r241941

7 years agoAdd missing ChangeLog entry.
Peter Bergner [Mon, 7 Nov 2016 21:39:30 +0000 (15:39 -0600)]
Add missing ChangeLog entry.

* config.gcc (powerpc*-*-*, rs6000*-*-*): Remove setting of
INCLUDE_EXTRA_SPEC for Advance Toolchain builds.

From-SVN: r241939

7 years agoconfig.gcc (powerpc*-*-*, [...]): Remove setting of INCLUDE_EXTRA_SPEC for Advance...
Peter Bergner [Mon, 7 Nov 2016 21:22:02 +0000 (15:22 -0600)]
config.gcc (powerpc*-*-*, [...]): Remove setting of INCLUDE_EXTRA_SPEC for Advance Toolchain builds.

* config.gcc (powerpc*-*-*, rs6000*-*-*): Remove setting of
INCLUDE_EXTRA_SPEC for Advance Toolchain builds.

From-SVN: r241937

7 years agognu-versioned-namespace.ver: Export C++17 new of over-aligned types symbols.
François Dumont [Mon, 7 Nov 2016 21:12:36 +0000 (21:12 +0000)]
gnu-versioned-namespace.ver: Export C++17 new of over-aligned types symbols.

2016-11-07  François Dumont  <fdumont@gcc.gnu.org>

* config/abi/pre/gnu-versioned-namespace.ver: Export C++17 new of
over-aligned types symbols.

From-SVN: r241936

7 years agors6000: Do swdiv at expand time
Segher Boessenkool [Mon, 7 Nov 2016 20:54:42 +0000 (21:54 +0100)]
rs6000: Do swdiv at expand time

We transform floating point divide instructions to a faster series of
simple instructions, "swdiv".  Currently we do not do that until the
first splitter pass, which is much too late for most optimisations
that can happen on those new instructions, e.g. the constant loads
are not CSEd inside an unrolled loop.  This patch changes things so
those divide instructions are expanded during expand already.

* config/rs6000/rs6000.md (div<mode>3): Expand using rs6000_emit_swdiv
if appropriate.
* config/rs6000/vector.md (div<mode>3): Ditto.

From-SVN: r241935

7 years agoscanasm.exp (hidden-scan-for): Add XCOFF support.
David Edelsohn [Mon, 7 Nov 2016 20:33:30 +0000 (20:33 +0000)]
scanasm.exp (hidden-scan-for): Add XCOFF support.

        * lib/scanasm.exp (hidden-scan-for): Add XCOFF support.

        * gfortran.dg/implicit_class_1.f90: Skip on AIX.
        * gcc.dg/visibility-14.c: XFAIL AIX.
        * gcc.dg/visibility-15.c: XFAIL AIX.
        * gcc.dg/visibility-16.c: XFAIL AIX.
        * gcc.dg/visibility-17.c: XFAIL AIX.
        * gcc.dg/visibility-18.c: XFAIL AIX.
        * gcc.dg/visibility-19.c: XFAIL AIX.
        * g++.dg/ext/visibility/anon1.C: XFAIL AIX.
        * g++.dg/ext/visibility/anon2.C: XFAIL AIX.
        * g++.dg/ext/visibility/pragma-override1.C: XFAIL AIX.
        * g++.dg/ext/visibility/pragma-override2.C: XFAIL AIX.

From-SVN: r241934

7 years agoFix typo.
David Edelsohn [Mon, 7 Nov 2016 20:30:30 +0000 (15:30 -0500)]
Fix typo.

From-SVN: r241932

7 years agoconfigure.ac (.hidden): Change to conftest_s string.
David Edelsohn [Mon, 7 Nov 2016 20:16:13 +0000 (20:16 +0000)]
configure.ac (.hidden): Change to conftest_s string.

* configure.ac (.hidden): Change to conftest_s string. Provide string
for AIX assembler.
(gcc_cv_ld_hidden): Yes for AIX.
* configure: Regenerate.

* dwarf2asm.c (USE_LINKONCE_INDIRECT): Don't set for AIX (XCOFF).

* config/rs6000/rs6000-protos.h (rs6000_asm_weaken_decl): Declare
(rs6000_xcoff_asm_output_aligned_decl_common): Declare.
* config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_DECL_NAME): Define.
(ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
(ASM_OUTPUT_ALIGNED_COMMON): Delete.
* config/rs6000/rs6000.c (rs6000_init_builtins): Change clog rename
from #if to if.
(rs6000_xcoff_visibility): New.
(rs6000_xcoff_declare_function_name): Add visibility support.
(rs6000_xcoff_asm_globalize_decl_name): New.
(rs6000_xcoff_asm_output_aligned_decl_common): New.
(rs6000_asm_weaken_decl): New.
(rs6000_code_end): Disable HIDDEN_LINKONCE on XCOFF.
config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Change definition to
reference function.

From-SVN: r241930

7 years agoAdd template instantiations to the announce_function stream.
Jason Merrill [Mon, 7 Nov 2016 19:35:13 +0000 (14:35 -0500)]
Add template instantiations to the announce_function stream.

* pt.c (push_tinst_level_loc): Add template instantiations to the
announce_function stream.

From-SVN: r241928

7 years agore PR fortran/78226 (Fill out location information everywhere)
Thomas Koenig [Mon, 7 Nov 2016 19:33:27 +0000 (19:33 +0000)]
re PR fortran/78226 (Fill out location information everywhere)

2016-11-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/78226
* expr.c (gfc_generate_initializer):  Add where to EXPR_NULL
statement.
* iresolve.c (gfc_resolve_extends_type_of):  Add where to
both arguments of the function.
* resolve.c (resolve_select_type):  Add where to the
second argument of the new statement.

From-SVN: r241927

7 years ago* es.po: Update.
Joseph Myers [Mon, 7 Nov 2016 18:37:01 +0000 (18:37 +0000)]
* es.po: Update.

From-SVN: r241922

7 years agore PR driver/78206 (bootstrap failure under Apple sandbox that blacklists reads in...
Jack Howarth [Mon, 7 Nov 2016 18:33:49 +0000 (18:33 +0000)]
re PR driver/78206 (bootstrap failure under Apple sandbox that blacklists reads in /usr/local)

2016-11-06  Jack Howarth  <howarth.at.gcc@gmail.com>

PR driver/78206
* incpath.c: (remove_dup(): Also silently ignore EPERM.

From-SVN: r241919

7 years agoRemove a TODO from verify_type_variant
Martin Jambor [Mon, 7 Nov 2016 18:30:26 +0000 (19:30 +0100)]
Remove a TODO from verify_type_variant

2016-11-07  Martin Jambor  <mjambor@suse.cz>

* tree.c (verify_type_variant): Use pointer comparison to check that
TYPE_SIZE_UNIT match.

From-SVN: r241918

7 years agore PR target/77834 (ICE: in make_decl_rtl, at varasm.c:1311 with -O -ftree-pre -mstri...
Jakub Jelinek [Mon, 7 Nov 2016 17:35:16 +0000 (18:35 +0100)]
re PR target/77834 (ICE: in make_decl_rtl, at varasm.c:1311 with -O -ftree-pre -mstringop-strategy=libcall)

PR target/77834
* dse.c (dse_step5): Call scan_reads even if just
insn_info->frame_read.  Improve and fix dump file messages.

From-SVN: r241917

7 years agore PR target/78227 (ICE: unrecognizable insn: in extract_insn, at recog.c:2311 with...
Jakub Jelinek [Mon, 7 Nov 2016 17:33:27 +0000 (18:33 +0100)]
re PR target/78227 (ICE: unrecognizable insn: in extract_insn, at recog.c:2311 with -mavx512bw and vector comare)

PR target/78227
* config/i386/i386.c (ix86_expand_sse_cmp): Force dest into
cmp_mode argument even for -O0 if cmp_mode != mode and maskcmp.

* gcc.target/i386/pr78227-1.c: New test.
* gcc.target/i386/pr78227-2.c: New test.

From-SVN: r241916

7 years agore PR middle-end/35691 (Missed (a == 0) && (b == 0) into (a|(typeof(a)(b)) == 0 when...
Prathamesh Kulkarni [Mon, 7 Nov 2016 17:32:17 +0000 (17:32 +0000)]
re PR middle-end/35691 (Missed (a == 0) && (b == 0) into (a|(typeof(a)(b)) == 0 when the types don't match)

2016-11-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

PR middle-end/35691
* match.pd: Add following two patterns:
(x == 0 & y == 0) -> (x | typeof(x)(y)) == 0.
(x != 0 | y != 0) -> (x | typeof(x)(y)) != 0.

testsuite/
* gcc.dg/pr35691-1.c: New test-case.
* gcc.dg/pr35691-4.c: Likewise.

From-SVN: r241915

7 years agoemit-rtl.c (emit_copy_of_insn_after): Duplicate notes in order.
Bernd Schmidt [Mon, 7 Nov 2016 17:03:55 +0000 (17:03 +0000)]
emit-rtl.c (emit_copy_of_insn_after): Duplicate notes in order.

* emit-rtl.c (emit_copy_of_insn_after): Duplicate notes in order.
* sel-sched-ir.c (create_copy_of_insn_rtx): Likewise.
* rtl.h (duplicate_reg_notes): Declare.
* rtlanal.c (duplicate_reg_note): New function.

From-SVN: r241913

7 years agore PR tree-optimization/77309 (wrong code at -Os and above on x86_64-linux-gnu (in...
Bernd Schmidt [Mon, 7 Nov 2016 16:59:11 +0000 (16:59 +0000)]
re PR tree-optimization/77309 (wrong code at -Os and above on x86_64-linux-gnu (in the 64-bit mode))

PR rtl-optimization/77309
* combine.c (make_compound_operation): Allow EQ for IN_CODE, and
don't assume an equality comparison for plain COMPARE.
(simplify_comparison): Pass a more accurate code to
make_compound_operation.

testsuite/
PR rtl-optimization/77309
* gcc.dg/torture/pr77309.c: New test.

From-SVN: r241912

7 years agotarget.def (compute_pressure_classes): New target hook.
Pat Haugen [Mon, 7 Nov 2016 15:37:51 +0000 (15:37 +0000)]
target.def (compute_pressure_classes): New target hook.

* target.def (compute_pressure_classes): New target hook.
* doc/tm.texi.in: Document it.
* doc/tm.texi: Regenerate.
* ira.c (setup_pressure_classes): Call target hook if defined.

From-SVN: r241911

7 years agoFixed PR in ChangeLog entry.
Thomas Koenig [Mon, 7 Nov 2016 15:29:20 +0000 (15:29 +0000)]
Fixed PR in ChangeLog entry.

From-SVN: r241910

7 years agore PR fortran/78226 (Fill out location information everywhere)
Thomas Koenig [Mon, 7 Nov 2016 15:25:21 +0000 (15:25 +0000)]
re PR fortran/78226 (Fill out location information everywhere)

2016-11-07  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/78826
* match.c (gfc_match_select_type):  Add where for expr1.
* resolve.c (resolev_select_type): Add where for expr1 of new
statement.

From-SVN: r241909

7 years agortx_writer: avoid printing trailing default values
David Malcolm [Mon, 7 Nov 2016 15:19:17 +0000 (15:19 +0000)]
rtx_writer: avoid printing trailing default values

gcc/ChangeLog:
* print-rtl.c (rtx_writer::operand_has_default_value_p): New
method.
(rtx_writer::print_rtx): In compact mode, omit trailing operands
that have the default values.
* print-rtl.h (rtx_writer::operand_has_default_value_p): New
method.
* rtl-tests.c (selftest::test_dumping_insns): Remove empty
label string from expected dump.
(seltest::test_uncond_jump): Remove trailing "(nil)" for REG_NOTES
from expected dump.

From-SVN: r241908

7 years agoFix native windows build by adding signal.h back into the include list.
Tamar Christina [Mon, 7 Nov 2016 14:14:13 +0000 (14:14 +0000)]
Fix native windows build by adding signal.h back into the include list.

  * gcc/ada/adaint.c: Added signal.h for Windows.

From-SVN: r241907

7 years agore PR target/77834 (ICE: in make_decl_rtl, at varasm.c:1311 with -O -ftree-pre -mstri...
Jakub Jelinek [Mon, 7 Nov 2016 13:33:37 +0000 (14:33 +0100)]
re PR target/77834 (ICE: in make_decl_rtl, at varasm.c:1311 with -O -ftree-pre -mstringop-strategy=libcall)

PR target/77834
* alias.c (nonoverlapping_memrefs_p): If one decl is
FUNCTION_DECL or LABEL_DECL and the other is not, return 1.

From-SVN: r241905

7 years agore PR middle-end/71529 ([CHKP] ICE in expand_expr_real_1)
Jakub Jelinek [Mon, 7 Nov 2016 13:07:32 +0000 (14:07 +0100)]
re PR middle-end/71529 ([CHKP] ICE in expand_expr_real_1)

PR middle-end/71529
* gcc.target/i386/pr71529.C: Moved to ...
* g++.dg/opt/pr71529.C: ... here.  New test.  Guard for i?86/x86_64.

PR target/64411
* gcc.target/i386/pr64411.C: Moved to ...
* g++.dg/opt/pr64411.C: ... here.  New test.  Guard for i?86/x86_64
lp64.

PR target/65105
* gcc.target/i386/pr65105-4.C: Moved to ...
* g++.dg/opt/pr65105-4.C: ... here.  New test.  Guard for i?86/x86_64.
Run into compile test rather than execute test.

From-SVN: r241903

7 years agore PR target/78229 (ICE in redirect_eh_edge_1, at tree-eh.c:2305)
Richard Biener [Mon, 7 Nov 2016 12:26:48 +0000 (12:26 +0000)]
re PR target/78229 (ICE in redirect_eh_edge_1, at tree-eh.c:2305)

2016-11-07  Richard Biener  <rguenther@suse.de>

PR target/78229
* config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust
EH info.

* g++.dg/pr78229.C: New testcase.

From-SVN: r241901

7 years agore PR tree-optimization/78218 (wrong code at -Os and above on x86_64-linux-gnu (in...
Richard Biener [Mon, 7 Nov 2016 12:26:00 +0000 (12:26 +0000)]
re PR tree-optimization/78218 (wrong code at -Os and above on x86_64-linux-gnu (in both 32-bit and 64-bit modes))

2016-11-07  Richard Biener  <rguenther@suse.de>

PR tree-optimization/78218
* gimple-ssa-store-merging.c
(pass_store_merging::terminate_all_aliasing_chains):
Drop unused argument, fix alias check to also consider uses.
(pass_store_merging::execute): Adjust.

* gcc.dg/torture/pr78218.c: New testcase.

From-SVN: r241900

7 years agore PR middle-end/78228 (fstrict-overflow breaks code without overflow?)
Richard Biener [Mon, 7 Nov 2016 12:25:09 +0000 (12:25 +0000)]
re PR middle-end/78228 (fstrict-overflow breaks code without overflow?)

2016-11-07  Richard Biener  <rguenther@suse.de>

PR tree-optimization/78228
* tree-ssa-phiopt.c (abs_replacement): Avoid introducing
undefined behavior.

* gcc.dg/tree-ssa/phi-opt-15.c: New testcase.

From-SVN: r241899

7 years ago[AArch64] Fix PR target/77822: Use tighter predicates for zero_extract patterns
Kyrylo Tkachov [Mon, 7 Nov 2016 11:43:57 +0000 (11:43 +0000)]
[AArch64] Fix PR target/77822: Use tighter predicates for zero_extract patterns

PR target/77822
* config/aarch64/aarch64.md (*tb<optab><mode>1): Use
aarch64_simd_shift_imm_<mode> predicate for operand 1.
(<optab>, ANY_EXTRACT): Use tighter predicates on operands 2 and 3
to restrict them to an appropriate range and add FAIL check if the
region they specify is out of range.  Delete useless constraint
strings.
(*<optab><mode>, ANY_EXTRACT): Add appropriate predicates on operands
2 and 3 to restrict their range and add pattern predicate.

* g++.dg/torture/pr77822.C: New test.

From-SVN: r241898

7 years agoIntroduce tests for -fsanitize-address-use-after-scope
Martin Liska [Mon, 7 Nov 2016 10:25:18 +0000 (11:25 +0100)]
Introduce tests for -fsanitize-address-use-after-scope

* c-c++-common/asan/force-inline-opt0-1.c: Disable
-f-sanitize-address-use-after-scope.
* c-c++-common/asan/inc.c: Change number of expected ASAN_CHECK
internal fn calls.
* g++.dg/asan/use-after-scope-1.C: New test.
* g++.dg/asan/use-after-scope-2.C: Likewise.
* g++.dg/asan/use-after-scope-3.C: Likewise.
* g++.dg/asan/use-after-scope-types-1.C: Likewise.
* g++.dg/asan/use-after-scope-types-2.C: Likewise.
* g++.dg/asan/use-after-scope-types-3.C: Likewise.
* g++.dg/asan/use-after-scope-types-4.C: Likewise.
* g++.dg/asan/use-after-scope-types-5.C: Likewise.
* g++.dg/asan/use-after-scope-types.h: Likewise.
* gcc.dg/asan/use-after-scope-1.c: Likewise.
* gcc.dg/asan/use-after-scope-2.c: Likewise.
* gcc.dg/asan/use-after-scope-3.c: Likewise.
* gcc.dg/asan/use-after-scope-4.c: Likewise.
* gcc.dg/asan/use-after-scope-5.c: Likewise.
* gcc.dg/asan/use-after-scope-6.c: Likewise.
* gcc.dg/asan/use-after-scope-7.c: Likewise.
* gcc.dg/asan/use-after-scope-8.c: Likewise.
* gcc.dg/asan/use-after-scope-9.c: Likewise.
* gcc.dg/asan/use-after-scope-switch-1.c: Likewise.
* gcc.dg/asan/use-after-scope-switch-2.c: Likewise.
* gcc.dg/asan/use-after-scope-switch-3.c: Likewise.
* gcc.dg/asan/use-after-scope-goto-1.c: Likewise.
* gcc.dg/asan/use-after-scope-goto-2.c: Likewise.

From-SVN: r241897

7 years agoIntroduce -fsanitize-address-use-after-scope
Martin Liska [Mon, 7 Nov 2016 10:23:38 +0000 (11:23 +0100)]
Introduce -fsanitize-address-use-after-scope

* c-warn.c (warn_for_unused_label): Save all labels used
in goto or in &label.
* asan.c (enum asan_check_flags): Move the enum to header file.
(asan_init_shadow_ptr_types): Make type creation more generic.
(shadow_mem_size): New function.
(asan_emit_stack_protection): Use newly added ASAN_SHADOW_GRANULARITY.
Rewritten stack unpoisoning code.
(build_shadow_mem_access): Add new argument return_address.
(instrument_derefs): Instrument local variables if use after scope
sanitization is enabled.
(asan_store_shadow_bytes): New function.
(asan_expand_mark_ifn): Likewise.
(asan_sanitize_stack_p): Moved from asan_sanitize_stack_p.
* asan.h (enum asan_mark_flags): Moved here from asan.c
(asan_protect_stack_decl): Protect all declaration that need
to live in memory.
(asan_sanitize_use_after_scope): New function.
(asan_no_sanitize_address_p): Likewise.
* cfgexpand.c (partition_stack_vars): Consider
asan_sanitize_use_after_scope in condition.
(expand_stack_vars): Likewise.
* common.opt (-fsanitize-address-use-after-scope): New option.
* doc/invoke.texi (use-after-scope-direct-emission-threshold):
Explain the parameter.
* flag-types.h (enum sanitize_code): Define SANITIZE_USE_AFTER_SCOPE.
* gimplify.c (build_asan_poison_call_expr): New function.
(asan_poison_variable): Likewise.
(gimplify_bind_expr): Generate poisoning/unpoisoning for local
variables that have address taken.
(gimplify_decl_expr): Likewise.
(gimplify_target_expr): Likewise for C++ temporaries.
(sort_by_decl_uid): New function.
(gimplify_expr): Unpoison all variables for a label we can jump
from outside of a scope.
(gimplify_switch_expr): Unpoison variables defined in the switch
context.
(gimplify_function_tree): Clear asan_poisoned_variables.
(asan_poison_variables): New function.
(warn_switch_unreachable_r): Handle IFN_ASAN_MARK.
* internal-fn.c (expand_ASAN_MARK): New function.
* internal-fn.def (ASAN_MARK): Declare.
* opts.c (finish_options): Handle -fstack-reuse if
-fsanitize-address-use-after-scope is enabled.
(common_handle_option): Enable address sanitization if
-fsanitize-address-use-after-scope is enabled.
* params.def (PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD):
New parameter.
* params.h: Likewise.
* sancov.c (pass_sanopt::execute): Handle IFN_ASAN_MARK.
* sanitizer.def: Define __asan_poison_stack_memory and
__asan_unpoison_stack_memory functions.
* asan.c (asan_mark_poison_p): New function.
(transform_statements): Handle asan_mark_poison_p calls.
* gimple.c (nonfreeing_call_p): Handle IFN_ASAN_MARK.

From-SVN: r241896

7 years agoFix the Windows native x86-64 build.
Tamar Christina [Mon, 7 Nov 2016 09:17:55 +0000 (09:17 +0000)]
Fix the Windows native x86-64 build.

PR driver/78196
* Makefile.in (SELFTEST_FLAGS): Added -o /dev/null.

From-SVN: r241895

7 years agotime_profiler: Set proper type to time_profiler_counter_ptr.
Martin Liska [Mon, 7 Nov 2016 08:57:44 +0000 (09:57 +0100)]
time_profiler: Set proper type to time_profiler_counter_ptr.

* tree-profile.c (gimple_gen_time_profiler): Set proper type
to time_profiler_counter_ptr.

From-SVN: r241894

7 years agore PR middle-end/37150 (basic-block vectorization misses some unrolled loops)
Richard Biener [Mon, 7 Nov 2016 08:06:08 +0000 (08:06 +0000)]
re PR middle-end/37150 (basic-block vectorization misses some unrolled loops)

2016-11-07  Richard Biener  <rguenther@suse.de>

PR tree-optimization/37150
* tree-vectorizer.h (vect_transform_slp_perm_load): Add n_perms
parameter.
* tree-vect-slp.c (vect_supported_load_permutation_p): Adjust.
(vect_analyze_slp_cost_1): Account for the real number of
permutations emitted and for dead loads.
(vect_transform_slp_perm_load): Add n_perms parameter counting
the number of emitted permutations.
* tree-vect-stmts.c (vectorizable_load): Adjust.

From-SVN: r241893

7 years agore PR tree-optimization/78189 (movaps generated for unaligned store in aligned struct...
Richard Biener [Mon, 7 Nov 2016 08:05:08 +0000 (08:05 +0000)]
re PR tree-optimization/78189 (movaps generated for unaligned store in aligned struct, when struct is referenced via unaligned member.)

2016-11-07  Richard Biener  <rguenther@suse.de>

PR tree-optimization/78189
* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Fix
alignment computation.

* g++.dg/torture/pr78189.C: New testcase.

From-SVN: r241892

7 years agoDaily bump.
GCC Administrator [Mon, 7 Nov 2016 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241891

7 years ago* gcc.dg/Wtrampolines.c: XFAIL AIX.
David Edelsohn [Sun, 6 Nov 2016 22:29:38 +0000 (22:29 +0000)]
* gcc.dg/Wtrampolines.c: XFAIL AIX.

From-SVN: r241888

7 years agore PR fortran/78226 (Fill out location information everywhere)
Thomas Koenig [Sun, 6 Nov 2016 21:27:32 +0000 (21:27 +0000)]
re PR fortran/78226 (Fill out location information everywhere)

2016-11-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/78226
resolve.c (build_loc_call): Add location to return value.

From-SVN: r241887

7 years agoallocate_with_source_14.f03: Fixed number mallocs occuring.
Andre Vehreschild [Sun, 6 Nov 2016 16:10:22 +0000 (17:10 +0100)]
allocate_with_source_14.f03: Fixed number mallocs occuring.

gcc/testsuite/ChangeLog:

2016-11-06  Andre Vehreschild  <vehre@gcc.gnu.org>

* gfortran.dg/allocate_with_source_14.f03: Fixed number mallocs
occuring.

gcc/fortran/ChangeLog:

2016-11-06  Andre Vehreschild  <vehre@gcc.gnu.org>

* expr.c (is_non_empty_structure_constructor): New function to detect
non-empty structure constructor.
(gfc_has_default_initializer): Analyse initializers.
* resolve.c (cond_init): Removed.
(resolve_allocate_expr): Removed dead code.  Moved invariant code out
of the loop over all objects to allocate.
(resolve_allocate_deallocate): Added the invariant code remove from
resolve_allocate_expr.
* trans-array.c (gfc_array_allocate): Removed nullify of structure
components in favour of doing this in gfc_trans_allocate for both
scalars and arrays in the same place.
* trans-expr.c (gfc_trans_init_assign): Always using _vptr->copy for
class objects.
* trans-stmt.c (allocate_get_initializer): Get the initializer
expression for object allocated.
(gfc_trans_allocate): Nullify a derived type only, when no SOURCE=
or MOLD= is present preventing duplicate work.  Moved the creation
of the init-expression here to prevent code for conditions that
can not occur on freshly allocated object, like checking for the need
to free allocatable components.

From-SVN: r241885

7 years agore PR fortran/78221 (bogus warning: Non-zero imaginary part discarded in conversion...
Thomas Koenig [Sun, 6 Nov 2016 12:27:51 +0000 (12:27 +0000)]
re PR fortran/78221 (bogus warning: Non-zero imaginary part discarded in conversion [-Wconversion])

2016-11-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/78221
        * arith.c (gfc_complex2real):  Change gfc_warning_now to
        gfc_warning.

2016-11-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/78221
        * gfortran.dg/warn_conversion_9.f90:  New test.

From-SVN: r241884

7 years agoipa-cp.c (ipcp_bits_lattice::meet_with): Remove unreachable code.
Kugan Vivekanandarajah [Sun, 6 Nov 2016 08:25:36 +0000 (08:25 +0000)]
ipa-cp.c (ipcp_bits_lattice::meet_with): Remove unreachable code.

2016-11-06  Kugan Vivekanandarajah  <kuganv@linaro.org>

* ipa-cp.c (ipcp_bits_lattice::meet_with): Remove unreachable code.

From-SVN: r241883

7 years agoDaily bump.
GCC Administrator [Sun, 6 Nov 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241882

7 years agoinvoke.texi (Warning Options): Correct typos in -Walloca documentation.
Martin Sebor [Sat, 5 Nov 2016 19:54:17 +0000 (19:54 +0000)]
invoke.texi (Warning Options): Correct typos in -Walloca documentation.

gcc/ChangeLog:
* doc/invoke.texi (Warning Options): Correct typos in -Walloca
documentation.

From-SVN: r241875

7 years ago* es.po: Update.
Joseph Myers [Sat, 5 Nov 2016 19:34:21 +0000 (19:34 +0000)]
* es.po: Update.

From-SVN: r241873

7 years agocheck.c (gfc_check_move_alloc): Introduce error to prevent aliasing between to and...
Paul Thomas [Sat, 5 Nov 2016 14:25:25 +0000 (14:25 +0000)]
check.c (gfc_check_move_alloc): Introduce error to prevent aliasing between to and from arguments.

2016-11-05  Paul Thomas  <pault@gcc.gnu.org>

* check.c (gfc_check_move_alloc): Introduce error to prevent
aliasing between to and from arguments.

2016-11-05  Paul Thomas  <pault@gcc.gnu.org>

* gfortran.dg/move_alloc_17.f03: New test.

From-SVN: r241872

7 years agore PR ipa/78188 (AIX Bootstrap broken by tree-vrp.c change)
Richard Biener [Sat, 5 Nov 2016 13:06:08 +0000 (13:06 +0000)]
re PR ipa/78188 (AIX Bootstrap broken by tree-vrp.c change)

2016-11-05  Richard Biener  <rguenther@suse.de>

        PR bootstrap/78188
        * g++.dg/ipa/pr78188.C: New test.

From-SVN: r241871

7 years agore PR fortran/69495 (unused-label warning does not tell which flag triggered it)
Janus Weil [Sat, 5 Nov 2016 10:35:23 +0000 (11:35 +0100)]
re PR fortran/69495 (unused-label warning does not tell which flag triggered it)

2016-11-05  Janus Weil  <janus@gcc.gnu.org>
    Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

PR fortran/69495
* invoke.texi: Mention -Wpedantic as an alias of -pedantic.
* check.c (gfc_check_transfer): Mention responsible flag in warning
message.
* frontend-passes.c (do_warn_function_elimination): Ditto.
* resolve.c (resolve_elemental_actual): Ditto.
(resolve_operator): Ditto.
(warn_unused_fortran_label): Ditto.
* trans-common.c (translate_common): Ditto.

2016-11-05  Janus Weil  <janus@gcc.gnu.org>
    Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/69495
* gfortran.dg/elemental_optional_args_6.f90: Use -Wpedantic flag.

Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
From-SVN: r241870

7 years agore PR fortran/67564 (Segfault on sourced allocattion statement with class(*) arrays)
Paul Thomas [Sat, 5 Nov 2016 07:11:24 +0000 (07:11 +0000)]
re PR fortran/67564 (Segfault on sourced allocattion statement with class(*) arrays)

2016-11-05  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/67564
* trans-expr.c (gfc_conv_class_to_class): Return _len component
of unlimited polymorphic entities.

2016-11-05  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/67564
* gfortran.dg/select_type_39.f03: New test.

From-SVN: r241869

7 years agore PR go/78172 (gen-sysinfo.go vs AIX cred.h)
Ian Lance Taylor [Sat, 5 Nov 2016 00:21:33 +0000 (00:21 +0000)]
re PR go/78172 (gen-sysinfo.go vs AIX cred.h)

PR go/78172.
    libgo: avoid confusion in upcase_fields in mksysinfo.sh

    The mksysinfo.sh script could get confused when there were multiple
    types starting with the same name.  I believe this is the underlying
    cause of GCC PR 78172.

    Also redirect a grep to /dev/null to avoid extraneous messages during
    the build.

    Reviewed-on: https://go-review.googlesource.com/32821

From-SVN: r241868

7 years agoDaily bump.
GCC Administrator [Sat, 5 Nov 2016 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241867

7 years agolibiberty: Fix -Wimplicit-fallthrough warnings.
Mark Wielaard [Fri, 4 Nov 2016 23:55:01 +0000 (23:55 +0000)]
libiberty: Fix -Wimplicit-fallthrough warnings.

Adjust some comments, add some explicit fall through comments or explicit
returns where necessary to not get implicit-fallthrough warnings.

All fall throughs were deliberate. In one case I added an explicit return
false for clarity instead of falling through a default case (that also
would return false).

libiberty/ChangeLog:

       * cplus-dem.c (demangle_signature): Move fall through comment.
       (demangle_fund_type): Add fall through comment between 'G' and 'I'.
       * hashtab.c (iterative_hash): Add fall through comments.
       * regex.c (regex_compile): Add Fall through comment after '+'/'?'.
       (byte_re_match_2_internal): Add Fall through comment after jump_n.
       Change "Note fall through" to "Fall through".
       (common_op_match_null_string_p): Return false after set_number_at
       instead of fall through.

From-SVN: r241864

7 years agore PR ipa/78188 (AIX Bootstrap broken by tree-vrp.c change)
David Edelsohn [Fri, 4 Nov 2016 23:20:50 +0000 (23:20 +0000)]
re PR ipa/78188 (AIX Bootstrap broken by tree-vrp.c change)

PR bootstrap/78188
PR c++/71848
* ipa-comdats.c (pass_ipa_comdats::gate): Require HAVE_COMDAT_GROUP.

From-SVN: r241863

7 years agore PR fortran/64933 (ASSOCIATE on a character variable does not allow substring expre...
Paul Thomas [Fri, 4 Nov 2016 19:23:44 +0000 (19:23 +0000)]
re PR fortran/64933 (ASSOCIATE on a character variable does not allow substring expressions)

2016-04-19  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/64933
* primary.c (gfc_match_varspec): If selector expression is
unambiguously an array, make sure that the associate name
is an array and has an array spec. Modify the original
condition for doing this to exclude character types.

2016-04-19  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/64933
* gfortran.dg/associate_23.f90: New test.

From-SVN: r241860

7 years agore PR target/77834 (ICE: in make_decl_rtl, at varasm.c:1311 with -O -ftree-pre -mstri...
Jakub Jelinek [Fri, 4 Nov 2016 19:14:07 +0000 (20:14 +0100)]
re PR target/77834 (ICE: in make_decl_rtl, at varasm.c:1311 with -O -ftree-pre -mstringop-strategy=libcall)

PR target/77834
* alias.c (nonoverlapping_memrefs_p): Return 0 if exprx or expry
doesn't have rtl set.

* gcc.dg/pr77834.c: New test.

From-SVN: r241859

7 years agore PR c++/67980 (left shift count is negative [-Wshift-count-negative] generated...
Paolo Carlini [Fri, 4 Nov 2016 18:58:53 +0000 (18:58 +0000)]
re PR c++/67980 (left shift count is negative [-Wshift-count-negative] generated for unreachable code)

/cp
2016-11-04  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67980
* pt.c (tsubst_expr, case IF_STMT): Use fold_non_dependent_expr
to suppress unwanted warnings.

/testsuite
2016-11-04  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67980
* g++.dg/cpp1y/pr67980.C: New.

From-SVN: r241858

7 years agors6000.c (gimple-ssa.h): New #include.
Bill Schmidt [Fri, 4 Nov 2016 18:15:30 +0000 (18:15 +0000)]
rs6000.c (gimple-ssa.h): New #include.

[gcc]

2016-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (gimple-ssa.h): New #include.
(TARGET_GIMPLE_FOLD_BUILTIN): Define as
rs6000_gimple_fold_builtin.
(rs6000_gimple_fold_builtin): New function.  Add handling for
early expansion of vector addition builtins.

[gcc/testsuite]

2016-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/fold-vec-add-1.c: New.
* gcc.target/powerpc/fold-vec-add-2.c: New.
* gcc.target/powerpc/fold-vec-add-3.c: New.
* gcc.target/powerpc/fold-vec-add-4.c: New.
* gcc.target/powerpc/fold-vec-add-5.c: New.
* gcc.target/powerpc/fold-vec-add-6.c: New.
* gcc.target/powerpc/fold-vec-add-7.c: New.

From-SVN: r241857

7 years agoexpr.h (copy_blkmode_from_reg): Delete.
Eric Botcazou [Fri, 4 Nov 2016 17:44:48 +0000 (17:44 +0000)]
expr.h (copy_blkmode_from_reg): Delete.

* expr.h (copy_blkmode_from_reg): Delete.
* expr.c (copy_blkmode_from_reg): Make static.

From-SVN: r241856

7 years agodefaults.h (LOAD_EXTEND_OP): Define if not already defined.
Eric Botcazou [Fri, 4 Nov 2016 17:42:32 +0000 (17:42 +0000)]
defaults.h (LOAD_EXTEND_OP): Define if not already defined.

* defaults.h (LOAD_EXTEND_OP): Define if not already defined.
* combine.c (LOAD_EXTEND_OP): Delete.
(simplify_comparison): Fix comment about LOAD_EXTEND_OP.
* cse.c (LOAD_EXTEND_OP): Delete.
* fold-const.c (LOAD_EXTEND_OP): Likewise.
* fwprop.c (free_load_extend): Remove #ifdef LOAD_EXTEND_OP/#endif.
* postreload.c (LOAD_EXTEND_OP): Delete.
* reload.c (push_reload): Remove #ifdef LOAD_EXTEND_OP/#endif.
Convert conditional compilation based on WORD_REGISTER_OPERATIONS.
(find_reloads): Likewise.
* reload1.c (eliminate_regs_1): Likewise.
* rtlanal.c (nonzero_bits1): Remove #ifdef LOAD_EXTEND_OP/#endif.
(num_sign_bit_copies1): Likewise.

From-SVN: r241855

7 years agoCorrect typo in changelog author
Matthew Fortune [Fri, 4 Nov 2016 17:11:31 +0000 (17:11 +0000)]
Correct typo in changelog author

gcc/testsuite/ChangeLog
* Update toma.tobacu to toma.tabacu

From-SVN: r241852

7 years agoStart adding target-specific selftests
David Malcolm [Fri, 4 Nov 2016 17:05:38 +0000 (17:05 +0000)]
Start adding target-specific selftests

gcc/ChangeLog:
* config/i386/i386.c: Include "selftest.h" and "selftest-rtl.h".
(selftest::ix86_test_dumping_hard_regs): New function.
(selftest::ix86_run_selftests): New function.
(TARGET_RUN_TARGET_SELFTESTS): When CHECKING_P, wire this up to
selftest::ix86_run_selftests.
* doc/tm.texi.in (TARGET_RUN_TARGET_SELFTESTS): New.
* doc/tm.texi: Regenerate
* selftest-rtl.h: New file.
* rtl-tests.c: Include "selftest-rtl.h".
(selftest::assert_rtl_dump_eq): Make non-static.
(ASSERT_RTL_DUMP_EQ): Move to selftest-rtl.h.
(selftest::test_dumping_regs): Update comment.
* selftest-run-tests.c: Include "target.h".
(selftest::run_tests): If non-NULL, call
targetm.run_target_selftests.
* target.def (run_target_selftests): New hook.

From-SVN: r241851

7 years agoMIPS: Handle -mbranch-likely in testsuite options
Toma Tabacu [Fri, 4 Nov 2016 16:47:32 +0000 (16:47 +0000)]
MIPS: Handle -mbranch-likely in testsuite options

gcc/testsuite/
* gcc.target/mips/mips.exp (mips-dg-options): Downgrade to R5
for -mbranch-likely, infer -mno-branch-likely for R6.

From-SVN: r241850

7 years agoAdd support for ARM Cortex-M33 processor
Thomas Preud'homme [Fri, 4 Nov 2016 16:46:44 +0000 (16:46 +0000)]
Add support for ARM Cortex-M33 processor

2016-11-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm-arches.def (armv8-m.main+dsp): Set Cortex-M33 as
    representative core for this architecture.
    * config/arm/arm-cores.def (cortex-m33): Define new processor.
    * config/arm/arm-tables.opt: Regenerate.
    * config/arm/arm-tune.md: Likewise.
    * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M33 to the list of
    valid -mcpu options.
    * doc/invoke.texi (ARM Options): Document new Cortex-M33 processor.

From-SVN: r241849

7 years agoAdd support for ARM Cortex-M23 processor
Thomas Preud'homme [Fri, 4 Nov 2016 16:46:33 +0000 (16:46 +0000)]
Add support for ARM Cortex-M23 processor

2016-11-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm-arches.def (armv8-m.base): Set Cortex-M23 as
    representative core for this architecture.
    * config/arm/arm-cores.def (cortex-m23): Define new processor.
    * config/arm/arm-tables.opt: Regenerate.
    * config/arm/arm-tune.md: Likewise.
    * config/arm/arm.c (arm_v6m_tune): Add Cortex-M23 to the list of cores
    this tuning parameters apply to in the comment.
    * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M23 to the list of
    valid -mcpu options.
    * doc/invoke.texi (ARM Options): Document new Cortex-M23 processor.

From-SVN: r241848

7 years agofold-const.c (fold_cond_expr_with_comparison): Remove call to pedantic_non_lvalue_loc.
Bin Cheng [Fri, 4 Nov 2016 15:51:38 +0000 (15:51 +0000)]
fold-const.c (fold_cond_expr_with_comparison): Remove call to pedantic_non_lvalue_loc.

* fold-const.c (fold_cond_expr_with_comparison): Remove call
to pedantic_non_lvalue_loc.  Remove useless code for lvalue
where cond_expr can't be a lvalue.

From-SVN: r241847

7 years agore PR c++/71973 (c++ handles built-in functions inconsistently)
Bernd Edlinger [Fri, 4 Nov 2016 15:30:52 +0000 (15:30 +0000)]
re PR c++/71973 (c++ handles built-in functions inconsistently)

2016-11-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c++/71973
        * g++.dg/cpp1y/lambda-generic-udt.C: Fix builtin function declaration.
        * g++.dg/init/new15.C: Likewise.
        * g++.dg/ipa/inline-1.C: Likewise.
        * g++.dg/ipa/inline-2.C: Likewise.
        * g++.dg/lto/20080908-1_0.C: Likewise.
        * g++.dg/tc1/dr20.C: Likewise.
        * g++.dg/tree-ssa/inline-1.C: Likewise.
        * g++.dg/tree-ssa/inline-2.C: Likewise.
        * g++.old-deja/g++.law/except1.C: Likewise.
        * g++.old-deja/g++.other/vbase5.C: Likewise.
        * obj-c++.dg/lto/trivial-1_0.mm: Likewise.

From-SVN: r241846

7 years agore PR tree-optimization/78210 (slsr-8.c scan-tree-dump-times optimized fails)
Bill Schmidt [Fri, 4 Nov 2016 15:21:38 +0000 (15:21 +0000)]
re PR tree-optimization/78210 (slsr-8.c scan-tree-dump-times optimized fails)

2016-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/78210
* gcc.dg/tree-ssa/slsr-8.c: Fix slsr scan to include the
possibility of widening multiplies.

From-SVN: r241845

7 years agoPR c++/78198 - inherited template ctor with default arg
Jason Merrill [Fri, 4 Nov 2016 12:47:01 +0000 (08:47 -0400)]
PR c++/78198 - inherited template ctor with default arg

* call.c (convert_default_arg): Look through inheriting ctors.

From-SVN: r241843

7 years ago[ARC] Various small miscellaneous fixes.
Claudiu Zissulescu [Fri, 4 Nov 2016 12:13:43 +0000 (13:13 +0100)]
[ARC] Various small miscellaneous fixes.

gcc/
2016-11-04  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_process_double_reg_moves): Use
gen_dexcl_2op call.
* config/arc/arc.md (movsi_insn): Disable unsupported move
instructions for ARCv2 cores.
(movdi): Use prepare_move_operands.
(movsf, movdf): Use move_dest_operand predicate.
* config/arc/constraints.md (Chs): Enable when barrel shifter is
present.
* config/arc/fpu.md (divsf3): Change to divsf3_fpu.
* config/arc/fpx.md (dexcl_3op_peep2_insn): Dx data register is
also a destination.
(dexcl_3op_peep2_insn_nores): Likewise.
* config/arc/arc.h (SHIFT_COUNT_TRUNCATED): Define to one.
(LINK_COMMAND_SPEC): Remove.

From-SVN: r241842

7 years agore PR tree-optimization/78185 (Wrong branch optimization with -O1 on x86/x86_64)
Richard Biener [Fri, 4 Nov 2016 08:54:42 +0000 (08:54 +0000)]
re PR tree-optimization/78185 (Wrong branch optimization with -O1 on x86/x86_64)

2016-11-04  Richard Biener  <rguenther@suse.de>

PR middle-end/78185
* loop-invariant.c (find_exits): Record entering inner
loops as possibly exiting to handle infinite sub-loops.
* tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
(fill_always_executed_in_1): Honor infinite child loops.

* gcc.dg/pr78185.c: New testcase.

From-SVN: r241841

7 years agoFix wrong patch committed
Michael Meissner [Fri, 4 Nov 2016 04:37:07 +0000 (04:37 +0000)]
Fix wrong patch committed

From-SVN: r241840

7 years agoref-3.C: XFAIL AIX.
David Edelsohn [Fri, 4 Nov 2016 01:52:05 +0000 (01:52 +0000)]
ref-3.C: XFAIL AIX.

        * g++.dg/debug/dwarf2/ref-3.C: XFAIL AIX.
        * g++.dg/debug/dwarf2/ref-4.C: XFAIL AIX.

From-SVN: r241838

7 years agoDaily bump.
GCC Administrator [Fri, 4 Nov 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241837

7 years agore PR target/78192 (extract from vector registers to int results in wrong data order)
Michael Meissner [Thu, 3 Nov 2016 23:32:07 +0000 (23:32 +0000)]
re PR target/78192 (extract from vector registers to int results in wrong data order)

2016-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/78192
* config/rs6000/vsx.md (vsx_extract_<mode>_di): The element number
has already been adjusted for endianness, so don't adjust it any
further.

From-SVN: r241834

7 years agore PR bootstrap/77993 (bootstrap failure on PowerPC/Linux)
Michael Meissner [Thu, 3 Nov 2016 21:25:12 +0000 (21:25 +0000)]
re PR bootstrap/77993 (bootstrap failure on PowerPC/Linux)

2016-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/77993
* config/rs6000/rs6000.h (FLOAT128_IBM_P): Do not allow IFmode or
ICmode unless we have standard PowerPC floating point.
* config/rs6000/rs6000.md (FP iterator): Likewise.
(FMOVE128 iterator): Likewise.

From-SVN: r241833

7 years agore PR debug/28767 (GCC should output DW_TAG_ptr_to_member for member functions)
Jakub Jelinek [Thu, 3 Nov 2016 21:18:49 +0000 (22:18 +0100)]
re PR debug/28767 (GCC should output DW_TAG_ptr_to_member for member functions)

PR debug/28767
PR debug/56974
* langhooks.h (struct lang_hooks_for_types): Add type_dwarf_attribute
langhook.
* langhooks.c (lhd_type_dwarf_attribute): New function.
* langhooks-def.h (lhd_type_dwarf_attribute): Declare.
(LANG_HOOKS_TYPE_DWARF_ATTRIBUTE): Define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add
LANG_HOOKS_TYPE_DWARF_ATTRIBUTE.
(check_qualified_type, check_aligned_type): Call it.
* dwarf2out.c (modified_type_die): Don't use type_main_variant
for FUNCTION_TYPE or METHOD_TYPE, instead walk over variants with
check_base_type and check_lang_type.
(gen_ptr_to_mbr_type_die): If lookup_type_die is already non-NULL,
return early.  For pointer-to-data-member add DW_AT_use_location
attribute.
(gen_subroutine_type_die): Add DW_AT_{,rvalue_}reference attribute
if needed.
(gen_type_die_with_usage): Don't use type_main_variant
for FUNCTION_TYPE or METHOD_TYPE, instead walk over variants with
check_base_type and check_lang_type.  Formatting fixes. Call
get_debug_type langhook.
cp/
* tree.c (cp_check_qualified_type): Use check_base_type and
TYPE_QUALS comparison instead of check_qualified_type.
(cxx_type_hash_eq): Return false if type_memfn_rqual don't match.
* cp-objcp-common.c (cp_get_debug_type): New function.
(cp_decl_dwarf_attribute): Don't handle types here.
(cp_type_dwarf_attribute): New function.
* cp-objcp-common.h (cp_get_debug_type, cp_type_dwarf_attribute):
Declare.
(LANG_HOOKS_GET_DEBUG_TYPE, LANG_HOOKS_TYPE_DWARF_ATTRIBUTE):
Define.
testsuite/
* g++.dg/debug/dwarf2/ptrdmem-1.C: New test.
* g++.dg/debug/dwarf2/ref-3.C: New test.
* g++.dg/debug/dwarf2/ref-4.C: New test.
* g++.dg/debug/dwarf2/refqual-1.C: New test.
* g++.dg/debug/dwarf2/refqual-2.C: New test.

From-SVN: r241832

7 years agoUse type_hash_eq langhook in check_qualified_type.
Jason Merrill [Thu, 3 Nov 2016 19:52:58 +0000 (15:52 -0400)]
Use type_hash_eq langhook in check_qualified_type.

gcc/
* tree.c (check_lang_type): New.
(check_qualified_type): Use it.
(check_aligned_type): Use it.
* tree.h: Declare it.
gcc/cp/
* tree.c (cp_check_qualified_type): Call check_base_type instead
of check_qualified_type.
(cxx_type_hash_eq): Check ref-qualifiers.
* typeck.c (apply_memfn_quals): No need to mess with TYPE_CANONICAL.

From-SVN: r241831

7 years ago* c-cppbuiltin.c (c_cpp_builtins): Correct __cpp_inheriting_constructors.
Jason Merrill [Thu, 3 Nov 2016 19:52:19 +0000 (15:52 -0400)]
* c-cppbuiltin.c (c_cpp_builtins): Correct __cpp_inheriting_constructors.

From-SVN: r241830

7 years agoAdd missing hunk from previous commit.
Richard Earnshaw [Thu, 3 Nov 2016 19:12:40 +0000 (19:12 +0000)]
Add missing hunk from previous commit.

From-SVN: r241829

7 years agoDefault missing exponents to 0 with -fdec.
Fritz Reese [Thu, 3 Nov 2016 18:09:44 +0000 (18:09 +0000)]
Default missing exponents to 0 with -fdec.

gcc/fortran/
* gfortran.texi: Document.
* gfortran.h (gfc_dt): New field default_exp.
* primary.c (match_real_constant): Default exponent with -fdec.
* io.c (match_io): Set dt.default_exp with -fdec.
* ioparm.def (IOPARM_dt_default_exp): New.
* trans-io.c (build_dt): Set IOPARM_dt_default_exp with -fdec.

libgfortran/io/
* io.h (IOPARM_DT_DEFAULT_EXP): New flag bit.
* list_read.c (parse_real, read_real): Allow omission of exponent with
IOPARM_DT_DEFAULT_EXP.
* read.c (read_f): Ditto.

gcc/testsuite/gfortran.dg/
* dec_exp_1.f90, dec_exp_2.f90, dec_exp_3.f90: New testcases.

From-SVN: r241828

7 years ago[arm] Eliminate SUBTARGET_CPU_DEFAULT
Richard Earnshaw [Thu, 3 Nov 2016 18:08:19 +0000 (18:08 +0000)]
[arm] Eliminate SUBTARGET_CPU_DEFAULT

* config.gcc (arm-wrs-vxworks): Set target_cpu_cname.
(arm*-freebsd*): Likewise.
(arm*-*-netbsdelf*): Likewise.
(arm*-*-linux*): Likewise.
(arm*-*-uclinux*eabi*): Likewise.
(arm*-*-phoenix*): Likewise.
(arm*-*-eabi*, arm*-*-symbianelf*, arm*-*-rtems*): Likewise.
(arm*-*-*): Don't clobber target_cpu_cname when --with-cpu is not
specified.  Default to arm6 if target_cpu_cname is not set.
* arm/arm.c (arm_option_override): Simplify logic.  Assert that the
default cpu has been correctly configured.
* arm/arm.h (TARGET_CPU_DEFAULT): Delete.
(target_cpus): Delete TARGET_CPU_generic, add TARGET_CPU_num_cores.
* arm/freebsd.h (SUBTARGET_CPU_DEFAULT): Delete.
* arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Delete.
* arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Delete.
* arm/symbian.h (SUBTARGET_CPU_DEFAULT): Delete.
* arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Delete.

From-SVN: r241827

7 years ago[DWARF] Enable DW_CFA_VAL_EXPRESSION support
Jiong Wang [Thu, 3 Nov 2016 17:32:03 +0000 (17:32 +0000)]
[DWARF] Enable DW_CFA_VAL_EXPRESSION support

gcc/
* reg-notes.def (CFA_VAL_EXPRESSION): New entry.
* dwarf2cfi.c (dwarf2out_frame_debug_cfa_val_expression): New function.
(dwarf2out_frame_debug): Support REG_CFA_VAL_EXPRESSION.
(output_cfa_loc): Support DW_CFA_val_expression.
(output_cfa_loc_raw): Likewise.
(output_cfi): Likewise.
(output_cfi_directive): Likewise.
* dwarf2out.c (dw_cfi_oprnd1_desc): Support DW_CFA_val_expression.
(dw_cfi_oprnd2_desc): Likewise.
(mem_loc_descriptor): Recognize new pattern generated for value
expression.

From-SVN: r241826

7 years agocombine lhs zero_extract fix (PR78186)
Segher Boessenkool [Thu, 3 Nov 2016 16:04:22 +0000 (17:04 +0100)]
combine lhs zero_extract fix (PR78186)

PR rtl-optimization/78186
* combine.c (change_zero_ext): Mask the RHS of a zero_extract as
well, when converting to IOR.

From-SVN: r241824

7 years agoSupport legacy PARAMETER statements with -std=legacy.
Fritz O. Reese [Thu, 3 Nov 2016 16:00:58 +0000 (16:00 +0000)]
Support legacy PARAMETER statements with -std=legacy.

gcc/fortran/
* decl.c (gfc_match_parameter): Allow omitted '()' with -std=legacy.
* parse.c (decode_statement): Match "parameter" before assignments.
* gfortran.texi: Document.

gcc/testsuite/gfortran.dg/
* dec_parameter_1.f: New test.
* dec_parameter_2.f90: Likewise.
* dec_parameter_3.f90: Likewise.
* dec_parameter_4.f90: Likewise.

From-SVN: r241823

7 years agosparc.md (vec_interleave_lowv8qi): Delete.
Eric Botcazou [Thu, 3 Nov 2016 16:00:55 +0000 (16:00 +0000)]
sparc.md (vec_interleave_lowv8qi): Delete.

* config/sparc/sparc.md (vec_interleave_lowv8qi): Delete.
(vec_interleave_highv8qi): Likewise.

From-SVN: r241822

7 years agoMake direct emission of time profiler counter
Martin Liska [Thu, 3 Nov 2016 15:24:22 +0000 (16:24 +0100)]
Make direct emission of time profiler counter

* libgcov-profiler.c (__gcov_time_profiler): Remove.
(__gcov_time_profiler_atomic): Likewise.
* profile.c (instrument_values): Fix coding style.
(branch_prob): Use renamed function.
* tree-profile.c (init_ic_make_global_vars): Likewise.
(gimple_init_edge_profiler): Rename to
gimple_init_gcov_profiler.
tree_time_profiler_counter variable declaration.
(gimple_gen_time_profiler): Rewrite to do a direct gimple code
emission.
* value-prof.h: Remove an argument.
* gcc.dg/no_profile_instrument_function-attr-1.c: Update scanned
output.
* gcc.dg/tree-prof/time-profiler-3.c: New test.

From-SVN: r241821