gcc.git
8 years ago[AArch64] Model CSEL instruction in Cortex-A57 scheduling model
Kyrylo Tkachov [Thu, 9 Jun 2016 08:45:22 +0000 (08:45 +0000)]
[AArch64] Model CSEL instruction in Cortex-A57 scheduling model

* config/arm/cortex-a57.md (cortex_a57_alu):
Handle csel type.

From-SVN: r237249

8 years agoDaily bump.
GCC Administrator [Thu, 9 Jun 2016 00:17:08 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r237248

8 years agodecl.c (maybe_deduce_size_from_array_init): Use DECL_SOURCE_LOCATION in error_at.
Paolo Carlini [Wed, 8 Jun 2016 19:31:55 +0000 (19:31 +0000)]
decl.c (maybe_deduce_size_from_array_init): Use DECL_SOURCE_LOCATION in error_at.

/cp
2016-06-08  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (maybe_deduce_size_from_array_init): Use
DECL_SOURCE_LOCATION in error_at.
(layout_var_decl): Likewise.
(check_array_initializer): Likewise.
(check_initializer): Likewise.
(duplicate_decls, check_elaborated_type_specifier): Tidy.

/testsuite
2016-06-08  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/init/array42.C: New.
* g++.dg/init/array43.C: Likewise.
* g++.dg/init/array44.C: Likewise.
* g++.dg/init/array45.C: Likewise.
* g++.dg/cpp0x/constexpr-ice10.C: Test column number too.
* g++.dg/cpp0x/constexpr-incomplete1.C: Likewise.
* g++.dg/cpp1y/auto-fn27.C: Likewise.
* g++.dg/gomp/pr35751.C: Likewise.
* g++.dg/init/array23.C: Likewise.
* g++.dg/init/brace2.C: Likewise.
* g++.dg/init/brace6.C: Likewise.

From-SVN: r237240

8 years agore PR c++/70507 (integer overflow builtins not constant expressions)
Martin Sebor [Wed, 8 Jun 2016 19:03:17 +0000 (19:03 +0000)]
re PR c++/70507 (integer overflow builtins not constant expressions)

PR c++/70507
PR c/68120
* builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
BUILT_IN_MUL_OVERFLOW_P): New builtins.
* builtins.c: Include gimple-fold.h.
(fold_builtin_arith_overflow): Handle
BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
(fold_builtin_3): Likewise.
* doc/extend.texi (Integer Overflow Builtins): Document
__builtin_{add,sub,mul}_overflow_p.
gcc/c/
* c-typeck.c (convert_arguments): Don't promote last argument
of BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
gcc/cp/
* constexpr.c: Include gimple-fold.h.
(cxx_eval_internal_function): New function.
(cxx_eval_call_expression): Call it.
(potential_constant_expression_1): Handle integer arithmetic
overflow built-ins.
* tree.c (builtin_valid_in_constant_expr_p): Handle
BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
gcc/c-family/
* c-common.c (check_builtin_function_arguments): Handle
BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
gcc/testsuite/
* c-c++-common/builtin-arith-overflow-1.c: Add test cases.
* c-c++-common/builtin-arith-overflow-2.c: New test.
* g++.dg/ext/builtin-arith-overflow-1.C: New test.
* g++.dg/cpp0x/constexpr-arith-overflow.C: New test.
* g++.dg/cpp1y/constexpr-arith-overflow.C: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r237238

8 years agodriver-sparc.c (cpu_names): Fix the entry for the SPARC-M7 and add an entry for SPARC...
Jose E. Marchesi [Wed, 8 Jun 2016 18:32:16 +0000 (20:32 +0200)]
driver-sparc.c (cpu_names): Fix the entry for the SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).

2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>

* config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).

From-SVN: r237237

8 years agopt.c (tsubst, [...]): Don't delay checking the return value of tsubst_aggr_type for...
Paolo Carlini [Wed, 8 Jun 2016 18:29:42 +0000 (18:29 +0000)]
pt.c (tsubst, [...]): Don't delay checking the return value of tsubst_aggr_type for error_mark_node.

2016-06-08  Paolo Carlini  <paolo.carlini@oracle.com>

* pt.c (tsubst, case TYPENAME_TYPE): Don't delay checking the
return value of tsubst_aggr_type for error_mark_node.

From-SVN: r237236

8 years agore PR c++/71442 (r232569 breaks -Wunused-*)
Jakub Jelinek [Wed, 8 Jun 2016 17:57:30 +0000 (19:57 +0200)]
re PR c++/71442 (r232569 breaks -Wunused-*)

PR c++/71442
* pt.c (tsubst_copy): Only set TREE_USED on DECLs.

* g++.dg/cpp0x/Wunused-variable-1.C: New test.

From-SVN: r237232

8 years ago[PATCH 2/2][AArch64] Tests of AAPCS64 updates for alignment attribute
Alan Lawrence [Wed, 8 Jun 2016 17:02:24 +0000 (17:02 +0000)]
[PATCH 2/2][AArch64] Tests of AAPCS64 updates for alignment attribute

gcc/testsuite/

* gcc.target/aarch64/aapcs64/aapcs64.exp: Also execute rec_*.c
* gcc.target/aarch64/aapcs64/rec_align-5.c: New.
* gcc.target/aarch64/aapcs64/rec_align-6.c: New.
* gcc.target/aarch64/aapcs64/rec_align-7.c: New.
* gcc.target/aarch64/aapcs64/rec_align-8.c: New.
* gcc.target/aarch64/aapcs64/rec_align-9.c: New.
* gcc.target/aarch64/aapcs64/test_align-5.c: New.
* gcc.target/aarch64/aapcs64/test_align-6.c: New.
* gcc.target/aarch64/aapcs64/test_align-7.c: New.
* gcc.target/aarch64/aapcs64/test_align-8.c: New.
* gcc.target/aarch64/aapcs64/test_align-9.c: New.
* gcc.target/aarch64/aapcs64/rec_vaarg-1.c: New.
* gcc.target/aarch64/aapcs64/rec_vaarg-2.c: New.

From-SVN: r237225

8 years ago[PATCH 1/2][AArch64] Implement AAPCS64 updates for alignment attribute
Alan Lawrence [Wed, 8 Jun 2016 17:00:23 +0000 (17:00 +0000)]
[PATCH 1/2][AArch64] Implement AAPCS64 updates for alignment attribute

gcc/ChangeLog:

* config/aarch64/aarch64.c (aarch64_function_arg_alignment):
Rewrite, looking one level down for records and arrays.

From-SVN: r237224

8 years agoAdd selftest for pretty-print.c
David Malcolm [Wed, 8 Jun 2016 15:53:56 +0000 (15:53 +0000)]
Add selftest for pretty-print.c

gcc/ChangeLog:
* pretty-print.c: Include "selftest.h".
(pp_format): Fix comment.
(identifier_to_locale): Likewise.
(selftest::test_basic_printing): New function.
(selftest::assert_pp_format): New function.
(selftest::test_pp_format): New function.
(selftest::pretty_print_c_tests): New function.
* selftest-run-tests.c (selftest::run_tests): Call
selftest::pretty_print_c_tests.
* selftest.h (pretty_print_c_tests): New declaration.

From-SVN: r237221

8 years agoinvoke.texi (max-loop-headers-insns): Document.
Jan Hubicka [Wed, 8 Jun 2016 14:11:51 +0000 (16:11 +0200)]
invoke.texi (max-loop-headers-insns): Document.

* invoke.texi (max-loop-headers-insns): Document.
* params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
(ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.

From-SVN: r237219

8 years agore PR tree-optimization/68558 (Fails to SLP loop)
Richard Biener [Wed, 8 Jun 2016 13:28:21 +0000 (13:28 +0000)]
re PR tree-optimization/68558 (Fails to SLP loop)

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

PR tree-optimization/68558
* gcc.dg/vect/slp-44.c: New testcase.

From-SVN: r237216

8 years agotree-vect-stmts.c (vectorizable_load): Remove restrictions on strided SLP loads and...
Richard Biener [Wed, 8 Jun 2016 13:17:41 +0000 (13:17 +0000)]
tree-vect-stmts.c (vectorizable_load): Remove restrictions on strided SLP loads and fall back to scalar loads in case...

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

* tree-vect-stmts.c (vectorizable_load): Remove restrictions
on strided SLP loads and fall back to scalar loads in case
we can't chunk them.

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

From-SVN: r237215

8 years agore PR tree-optimization/71452 (Wrong optimization of stores to _Bool via char*)
Richard Biener [Wed, 8 Jun 2016 13:11:43 +0000 (13:11 +0000)]
re PR tree-optimization/71452 (Wrong optimization of stores to _Bool via char*)

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

PR tree-optimization/71452
* tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
type used for the SSA rewrite has enough precision to cover
the dynamic type of the location.

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

From-SVN: r237214

8 years agore PR c++/71448 (pointer relational comparison fails inside constant expression)
Jakub Jelinek [Wed, 8 Jun 2016 12:57:26 +0000 (14:57 +0200)]
re PR c++/71448 (pointer relational comparison fails inside constant expression)

PR c++/71448
* fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
the same as DECL_P (base0) for indirect_base0.  Use equality_code
in one further place.

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

Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r237212

8 years agoRemove word_mode hack for split bitfields
Richard Sandiford [Wed, 8 Jun 2016 12:18:27 +0000 (12:18 +0000)]
Remove word_mode hack for split bitfields

This patch is effectively reverting a change from 1994.  The reason
I think it's a hack is that store_bit_field_1 is creating a subreg
reference to one word of a field even though it has already proven that
the field spills into the following word.  We then rely on the special
SUBREG handling in store_split_bit_field to ignore the extent of op0 and
look inside the SUBREG_REG regardless.  I don't see any reason why we can't
pass the original op0 to store_split_bit_field instead.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.

gcc/
* expmed.c (store_bit_field_1): Do not restrict a multiword op0
to one word if the field is known to overlap other words.
(extract_bit_field_1): Likewise.
(store_split_bit_field): Remove compensating code.
(extract_split_bit_field): Likewise.

From-SVN: r237211

8 years agoAdd ChangeLog entry missed in last commit:
Chung-Lin Tang [Wed, 8 Jun 2016 11:48:12 +0000 (11:48 +0000)]
Add ChangeLog entry missed in last commit:

2016-06-03  Chung-Lin Tang  <cltang@codesourcery.com>

libgomp/
* testsuite/libgomp.oacc-fortran/reduction-8.f90: New testcase.
* testsuite/libgomp.oacc-c-c++-common/reduction-8.c: New testcase.

From-SVN: r237209

8 years agore PR debug/71432 (-fcompare-debug failure (length))
Bernd Schmidt [Wed, 8 Jun 2016 11:41:54 +0000 (11:41 +0000)]
re PR debug/71432 (-fcompare-debug failure (length))

PR debug/71432
PR ada/71413
* tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.

* g++.dg/debug/pr71432.C: New test.

From-SVN: r237208

8 years agosection-anchors-vect-70.c: Rename to aligned-section-anchors-vect-71.c.
Prathamesh Kulkarni [Wed, 8 Jun 2016 11:15:17 +0000 (11:15 +0000)]
section-anchors-vect-70.c: Rename to aligned-section-anchors-vect-71.c.

2016-06-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* gcc.dg/vect/section-anchors-vect-70.c: Rename to aligned-section-anchors-vect-71.c.
* gcc.dg/vect/section-anchors-vect-71.c: Rename to aligned-section-anchors-vect-72.c.
* gcc.dg/vect/section-anchors-vect-72.c: Rename to aligned-section-anchors-vect-72.c.

From-SVN: r237207

8 years agoc-common.c (parse_optimize_options): Improve diagnostic messages.
Richard Biener [Wed, 8 Jun 2016 10:26:54 +0000 (10:26 +0000)]
c-common.c (parse_optimize_options): Improve diagnostic messages.

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

* c-common.c (parse_optimize_options): Improve diagnostic messages.

From-SVN: r237206

8 years ago[AArch64, 6/6] Reimplement vpadd intrinsics & extend rtl patterns to all modes
Jiong Wang [Wed, 8 Jun 2016 10:17:58 +0000 (10:17 +0000)]
[AArch64, 6/6] Reimplement vpadd intrinsics & extend rtl patterns to all modes

* config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
VDQF.
* config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
(arch64_addpv4sf): Delete.
(reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
"gen_aarch64_addpv4sf".
* config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
builtin.
(vpadds_f32): Likewise.
(vpaddq_f32): Likewise.
(vpaddq_f64): Likewise.

From-SVN: r237205

8 years ago[AArch64, 5/6] Reimplement fabd intrinsics & merge rtl patterns
Jiong Wang [Wed, 8 Jun 2016 10:16:07 +0000 (10:16 +0000)]
[AArch64, 5/6] Reimplement fabd intrinsics & merge rtl patterns

* config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
VALLF.
* config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
to VALLF.  Rename to "fabd<mode>3".
"*fabd_scalar<mode>3): Delete.
* config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
Use builtin.
(vabdd_f64): Likewise.
(vabd_f32): Likewise.
(vabd_f64): Likewise.
(vabdq_f32): Likewise.
(vabdq_f64): Likewise.

From-SVN: r237204

8 years ago[AArch64, 4/6] Reimplement frsqrts intrinsics
Jiong Wang [Wed, 8 Jun 2016 10:14:30 +0000 (10:14 +0000)]
[AArch64, 4/6] Reimplement frsqrts intrinsics

* config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
VALLF.
* config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
"aarch64_rsqrts<mode>".
* config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
* config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
builtin.
(vrsqrtsd_f64): Likewise.
(vrsqrts_f32): Likewise.
(vrsqrts_f64): Likewise.
(vrsqrtsq_f32): Likewise.
(vrsqrtsq_f64): Likewise.

From-SVN: r237203

8 years ago[AArch64, 3/6] Reimplement frsqrte intrinsics
Jiong Wang [Wed, 8 Jun 2016 10:12:53 +0000 (10:12 +0000)]
[AArch64, 3/6] Reimplement frsqrte intrinsics

* config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
VALLF.
* config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
"aarch64_rsqrte<mode>".
* config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
* config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
builtin.
(vrsqrted_f64): Likewise.
(vrsqrte_f32): Likewise.
(vrsqrte_f64): Likewise.
(vrsqrteq_f32): Likewise.
(vrsqrteq_f64): Likewise.

From-SVN: r237202

8 years ago[AArch64, 2/6] Reimplement vector fixed-point intrinsics
Jiong Wang [Wed, 8 Jun 2016 10:11:09 +0000 (10:11 +0000)]
[AArch64, 2/6] Reimplement vector fixed-point intrinsics

* config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
(ucvtf): Likewise.
(fcvtzs): Likewise.
(fcvtzu): Likewise.
* config/aarch64/aarch64-simd.md
(<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
(<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
* config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
Use builtin.
(vcvt_n_f32_u32): Likewise.
(vcvt_n_s32_f32): Likewise.
(vcvt_n_u32_f32): Likewise.
(vcvtq_n_f32_s32): Likewise.
(vcvtq_n_f32_u32): Likewise.
(vcvtq_n_f64_s64): Likewise.
(vcvtq_n_f64_u64): Likewise.
(vcvtq_n_s32_f32): Likewise.
(vcvtq_n_s64_f64): Likewise.
(vcvtq_n_u32_f32): Likewise.
(vcvtq_n_u64_f64): Likewise.
* config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
(VSDQ_SDI): Likewise.
(fcvt_target): Support V4DI, V4SI and V2SI.
(FCVT_TARGET): Likewise.

From-SVN: r237201

8 years ago[AArch64, 1/6] Reimplement scalar fixed-point intrinsics
Jiong Wang [Wed, 8 Jun 2016 10:07:30 +0000 (10:07 +0000)]
[AArch64, 1/6] Reimplement scalar fixed-point intrinsics

        * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
        (TYPES_BINOP_SUS): Likewise.
        (aarch64_simd_builtin_data): Update include file name.
        (aarch64_builtins): Likewise.
        * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
        for conversion between scalar float-point and fixed-point.
        (ucvtf): Likewise.
        (fcvtzs): Likewise.
        (fcvtzu): Likewise.
        * config/aarch64/aarch64.md
        (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
        pattern for conversion between scalar float to fixed-pointer.
        (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
        (UNSPEC_FCVTZS): New UNSPEC enumeration.
        (UNSPEC_FCVTZU): Likewise.
        (UNSPEC_SCVTF): Likewise.
        (UNSPEC_UCVTF): Likewise.
        * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
Use builtin.
        (vcvtd_n_f64_u64): Likewise.
        (vcvtd_n_s64_f64): Likewise.
        (vcvtd_n_u64_f64): Likewise.
        (vcvtd_n_f32_s32): Likewise.
        (vcvts_n_f32_u32): Likewise.
        (vcvtd_n_s32_f32): Likewise.
        (vcvts_n_u32_f32): Likewise.
        * config/aarch64/iterators.md (fcvt_target): Support integer to float
mapping.
        (FCVT_TARGET): Likewise.
        (FCVT_FIXED2F): New iterator.
        (FCVT_F2FIXED): Likewise.
        (fcvt_fixed_insn): New define_int_attr.

From-SVN: r237200

8 years agopredict.c (pass_strip_predict_hints::execute): Cleanup CFG if some statements was...
Jan Hubicka [Wed, 8 Jun 2016 09:39:33 +0000 (11:39 +0200)]
predict.c (pass_strip_predict_hints::execute): Cleanup CFG if some statements was removed.

* predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
some statements was removed.

From-SVN: r237199

8 years agotree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
Alan Hayward [Wed, 8 Jun 2016 08:38:50 +0000 (08:38 +0000)]
tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.

2016-06-08  Alan Hayward  <alan.hayward@arm.com>

gcc/
* tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
* tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
(vect_can_advance_ivs_p): likewise.
(vect_update_ivs_after_vectorizer): likewise.
* tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
(vect_analyze_scalar_cycles_1): likewise.
(vect_analyze_loop_operations): likewise.
(report_vect_op): likewise.
(vect_is_slp_reduction): likewise.
(vect_is_simple_reduction): likewise.
(get_initial_def_for_induction): likewise.
(vect_transform_loop): likewise.
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
(vect_recog_sad_pattern): likewise.
(vect_recog_widen_sum_pattern): likewise.
(vect_recog_widening_pattern): likewise.
(vect_recog_divmod_pattern): likewise.
* tree-vect-slp.c (vect-build-slp_tree_1): likewise.
(vect_analyze_slp_instance): likewise.
(vect_transform_slp_perm_load): likewise.
(vect_schedule_slp_instance): likewise.

From-SVN: r237198

8 years agovect-live-2.c: Update effective target.
Alan Hayward [Wed, 8 Jun 2016 08:26:38 +0000 (08:26 +0000)]
vect-live-2.c: Update effective target.

2016-06-08  Alan Hayward  <alan.hayward@arm.com>

gcc/testsuite/
* gcc.dg/vect/vect-live-2.c: Update effective target.
* gcc.dg/vect/vect-live-slp-3.c: Likewise.
* lib/target-supports.exp: Add aarch64 to vect_long.

From-SVN: r237197

8 years agore PR c/71426 (gcc ICE on x86_64-linux-gnu in get_parm_info, at c/c-decl.c:7059)
Marek Polacek [Wed, 8 Jun 2016 06:41:55 +0000 (06:41 +0000)]
re PR c/71426 (gcc ICE on x86_64-linux-gnu in get_parm_info, at c/c-decl.c:7059)

PR c/71426
* c-decl.c (get_parm_info): Don't crash on an assert on invalid
code.

* gcc.dg/noncompile/pr71426.c: New test.

From-SVN: r237196

8 years agore PR c/71418 (gcc ICE on x86_64-linux-gnu in min_align_of_type, at stor-layout.c...
Marek Polacek [Wed, 8 Jun 2016 06:39:10 +0000 (06:39 +0000)]
re PR c/71418 (gcc ICE on x86_64-linux-gnu in min_align_of_type, at stor-layout.c:2402)

PR c/71418
* c-decl.c (grokdeclarator): Check TYPE_P.

* gcc.dg/noncompile/pr71418.c: New test.

From-SVN: r237195

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

From-SVN: r237194

8 years agopredict.c (predict_iv_comparison): Mention that heuristics is broken.
Jan Hubicka [Tue, 7 Jun 2016 21:34:27 +0000 (23:34 +0200)]
predict.c (predict_iv_comparison): Mention that heuristics is broken.

* predict.c (predict_iv_comparison): Mention that heuristics is broken.
(return_prediction): PRED_CONST_RETURN predict return as not taken.
* predict.def (PRED_CONTINUE): Change hitrate 50->67
(PRED_LOOP_BRANCH): Document predictor as broken.
(PRED_LOOP_EXIT): Change hitrate 91->92.
(PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
(PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
(PRED_OPCODE_POSITIVE): Change hitrate 79->64.
(PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
(PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
(PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
(PRED_CALL): Chane hitrate 71->67.
(PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
(PRED_GOTO): Document as unused right now.
(PRED_CONST_RETURN): Change hitrate 67->69
(PRED_NEGATIVE_RETURN): Change hitrate 96->98
(PRED_NULL_RETURN): Change hitrate 91->90.
(PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
(PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
(PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
* gcc.dg/ipa/inlinehint-4.c: Disable partial inlining.
* gcc.dg/predict-1.c: Update template for new predictor hitrates.
* gcc.dg/predict-3.c: Update template.
* gcc.dg/predict-5.c: Update template.
* gcc.dg/predict-6.c: Update template.
* gcc.dg/predict-9.c: Update template.
* gcc.dg/predict-9.c: Update template.
* gcc.dg/tree-ssa/attr-hotcold-2.c: Update template.

From-SVN: r237185

8 years agotuple (_Head_base<>): Default specialization condition at type declaration.
François Dumont [Tue, 7 Jun 2016 20:19:19 +0000 (20:19 +0000)]
tuple (_Head_base<>): Default specialization condition at type declaration.

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

* include/std/tuple (_Head_base<>): Default specialization condition at
type declaration.

From-SVN: r237184

8 years agoThis patch adds support for the missing versions of the vec_mul altivec...
Bill Seurer [Tue, 7 Jun 2016 20:18:09 +0000 (20:18 +0000)]
This patch adds support for the missing versions of the vec_mul altivec...

This patch adds support for the missing versions of the vec_mul altivec
builtins from the Power Architecture 64-Bit ELF V2 ABI OpenPOWER ABI for
Linux Supplement (16 July 2015 Version 1.1). There are many of the builtins
that are missing and this is part of a series of patches to add them.

There aren't instructions for the {un}signed char, {un}signed short, and
{un}signed int versions of vec_mul so the output code is built from other
built-ins and operations that do have instructions.

The new test case is an executable test which verifies that the generated
code produces expected values. C macros were used so that the same
test case could be used for all the various supported types.

Bootstrapped and tested on powerpc64le-unknown-linux-gnu and
powerpc64-unknown-linux-gnu with no regressions. Is this ok for trunk?

[gcc]

2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>

* config/rs6000/altivec.h: Add __builtin_vec_mul.
* config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
special case Altivec builtin.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
VSX_BUILTIN_VEC_MUL (replaced with special case code).
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
code for ALTIVEC_BUILTIN_VEC_MUL.
* config/rs6000/rs6000.c (altivec_init_builtins): Add definition
for __builtin_vec_mul.

[gcc/testsuite]

2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>

* gcc.target/powerpc/vec-mul.c: New test.

From-SVN: r237183

8 years agoinvoke.texi (RS/6000 and PowerPC Options): Document -mhtm and -mno-htm.
Peter Bergner [Tue, 7 Jun 2016 18:50:04 +0000 (13:50 -0500)]
invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and -mno-htm.

* doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
-mno-htm.

From-SVN: r237182

8 years agospellcheck.c: add test_find_closest_string
David Malcolm [Tue, 7 Jun 2016 17:33:04 +0000 (17:33 +0000)]
spellcheck.c: add test_find_closest_string

gcc/ChangeLog:
* spellcheck.c (selftest::test_find_closest_string): New function.
(spellcheck_c_tests): Call the above.

From-SVN: r237181

8 years ago[simplify-rtx] Fix unused variable warning in simplify_cond_clz_ctz on some targets
Kyrylo Tkachov [Tue, 7 Jun 2016 16:52:20 +0000 (16:52 +0000)]
[simplify-rtx] Fix unused variable warning in simplify_cond_clz_ctz on some targets

* simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local
variable.

From-SVN: r237180

8 years agoC: add fixit hint to misspelled field names
David Malcolm [Tue, 7 Jun 2016 15:04:22 +0000 (15:04 +0000)]
C: add fixit hint to misspelled field names

gcc/c/ChangeLog:
* c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
and structure element reference, capture the location of the
element name token and pass it to build_component_ref.
(c_parser_postfix_expression_after_primary): Likewise for
structure element dereference.
(c_parser_omp_variable_list): Likewise for
OMP_CLAUSE_{_CACHE, MAP, FROM, TO},
* c-tree.h (build_component_ref): Add location_t param.
* c-typeck.c (build_component_ref): Add location_t param
COMPONENT_LOC.  Use it, if available, when issuing hints about
mispelled member names to provide a fixit replacement hint.

gcc/objc/ChangeLog:
* objc-act.c (objc_build_component_ref): Update call
to build_component_ref for added param, passing UNKNOWN_LOCATION.

gcc/testsuite/ChangeLog:
* gcc.dg/spellcheck-fields-2.c: New test case.

From-SVN: r237176

8 years agosse.md (avx_vec_concat<mode>): Add v=v,vm and Yv=Yv,C alternatives.
Jakub Jelinek [Tue, 7 Jun 2016 13:00:03 +0000 (15:00 +0200)]
sse.md (avx_vec_concat<mode>): Add v=v,vm and Yv=Yv,C alternatives.

* config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
Yv=Yv,C alternatives.

From-SVN: r237175

8 years agore PR c++/61564 (#pragma GCC optimize ("-fno-lto") causes the compiler to crash)
Richard Biener [Tue, 7 Jun 2016 12:41:46 +0000 (12:41 +0000)]
re PR c++/61564 (#pragma GCC optimize ("-fno-lto") causes the compiler to crash)

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

PR c/61564
* c-common.c (parse_optimize_options): Only apply CL_OPTIMIZATION
options and warn about others.
* common.opt (ffast-math): Make Optimization.

* gcc.dg/Wpragmas-1.c: New testcase.
* gcc.dg/Wattributes-4.c: Likewise.
* gcc.dg/ipa/pr70646.c: Drop optimize pragma in favor of dg-option
entry.

From-SVN: r237174

8 years ago[MIPS] P5600 scheduler fix
Simon Dardis [Tue, 7 Jun 2016 11:56:43 +0000 (12:56 +0100)]
[MIPS] P5600 scheduler fix

gcc/
* config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
`fabs' and `fneg' type attributes.
(p5600_fpu_fabs): Add `fmove' to the comment.

Co-Authored-By: Prachi Godbole <prachi.godbole@imgtec.com>
From-SVN: r237173

8 years agogimple.c: Include builtins.h
Jan Hubicka [Tue, 7 Jun 2016 11:22:26 +0000 (13:22 +0200)]
gimple.c: Include builtins.h

* gimple.c: Include builtins.h
(gimple_inexpensive_call_p): New function.
* gimple.h (gimple_inexpensive_call_p): Declare.
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
fix formatting.

From-SVN: r237172

8 years agop64_p128.c: Remove spurious debug code.
Christophe Lyon [Tue, 7 Jun 2016 10:29:55 +0000 (10:29 +0000)]
p64_p128.c: Remove spurious debug code.

* gcc.target/aarch64/advsimd-intrinsics/p64_p128.c: Remove spurious debug code.

From-SVN: r237171

8 years agoRemove wrong testsuite and gcc/testsuite prefixes from gcc/testsuite/ChangeLog.
Rainer Orth [Tue, 7 Jun 2016 09:24:21 +0000 (09:24 +0000)]
Remove wrong testsuite and gcc/testsuite prefixes from gcc/testsuite/ChangeLog.

From-SVN: r237170

8 years agoUpdate copyright dates
Rainer Orth [Tue, 7 Jun 2016 08:54:22 +0000 (08:54 +0000)]
Update copyright dates

libcc1:
Update copyrights.

gotools:
Update copyrights.

contrib:
* update-copyright.py (LibMudflapFilter): Remove.
(GCCCmdLine.__init__): Add gotools, libcc1.
Remove libmudflap.
List unhandled intl, libcilkrts, libgo, liboffloadmic,
maintainer-scripts.

From-SVN: r237169

8 years agodiagnostic.c (diagnostic_impl, [...]): New.
Paolo Carlini [Tue, 7 Jun 2016 07:36:02 +0000 (07:36 +0000)]
diagnostic.c (diagnostic_impl, [...]): New.

2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>

* diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
(inform, inform_at_rich_loc, inform_n, warning, warning_at,
warning_at_rich_loc, warning_n, pedwarn, permerror,
permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
sorry, fatal_error, internal_error, internal_error_no_backtrace):
Use the above.

From-SVN: r237168

8 years agore PR tree-optimization/71428 (wrong code with -Os -fno-tree-forwprop (breaks in...
Richard Biener [Tue, 7 Jun 2016 07:31:40 +0000 (07:31 +0000)]
re PR tree-optimization/71428 (wrong code with -Os -fno-tree-forwprop (breaks in the .bswap dump))

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

PR tree-optimization/71428
* tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
BIT_FIELD_REF op vs. load.

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

From-SVN: r237167

8 years agore PR tree-optimization/71423 (wrong code at -Os and above on x86_64-linux-gnu)
Richard Biener [Tue, 7 Jun 2016 07:30:47 +0000 (07:30 +0000)]
re PR tree-optimization/71423 (wrong code at -Os and above on x86_64-linux-gnu)

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

PR middle-end/71423
* match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
for signed ops.

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

From-SVN: r237166

8 years agopa.md (call): Generate indirect long calls to non-local functions on TARGET_64BIT.
John David Anglin [Tue, 7 Jun 2016 01:56:01 +0000 (01:56 +0000)]
pa.md (call): Generate indirect long calls to non-local functions on TARGET_64BIT.

* config/pa/pa.md (call): Generate indirect long calls to non-local
functions on TARGET_64BIT.
(call_value): Likewise.

From-SVN: r237164

8 years agopa.md (call_val_reg_64bit): Remove "reg: DI " clobber from pattern and subsequent...
John David Anglin [Tue, 7 Jun 2016 01:43:14 +0000 (01:43 +0000)]
pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from pattern and subsequent splitters.

* config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
pattern and subsequent splitters.
(call_val_reg_64bit_post_reload): Likewise.

From-SVN: r237163

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

From-SVN: r237162

8 years agore PR tree-optimization/71408 (wrong code at -Os and above on x86_64-linux-gnu)
Kugan Vivekanandarajah [Mon, 6 Jun 2016 23:46:11 +0000 (23:46 +0000)]
re PR tree-optimization/71408 (wrong code at -Os and above on x86_64-linux-gnu)

gcc/ChangeLog:

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

PR middle-end/71408
* tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
propagate_op_to_single_use.

gcc/testsuite/ChangeLog:

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

PR middle-end/71408
* gcc.dg/tree-ssa/pr71408.c: New test.

From-SVN: r237158

8 years agore PR target/71281 (ICE on gcc trunk on knl, wsm, ivb and bdw targets (tree-ssa-reassoc))
Kugan Vivekanandarajah [Mon, 6 Jun 2016 23:41:26 +0000 (23:41 +0000)]
re PR target/71281 (ICE on gcc trunk on knl, wsm, ivb and bdw targets (tree-ssa-reassoc))

gcc/ChangeLog:

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

PR middle-end/71281
* tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.

gcc/testsuite/ChangeLog:

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

PR middle-end/71281
* g++.dg/torture/pr71281.C: New test.

From-SVN: r237157

8 years agoi386.h (enum ix86_enitity): Add X86_DIRFLAG.
Uros Bizjak [Mon, 6 Jun 2016 22:35:18 +0000 (00:35 +0200)]
i386.h (enum ix86_enitity): Add X86_DIRFLAG.

* config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
(enum x86_dirflag_state): New enum.
(NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
(machine_function): Remove needs_cld.
(ix86_current_function_needs_cld): Remove.
* config/i386/i386.c (ix86_set_func_type): Set
ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
(ix86_expand_prologue): Do not emit CLD here.
(ix86_dirflag_mode_needed): New function.
(ix86_dirflag_mode_entry): Ditto.
(ix86_mode_needed): Handle X86_DIRFLAG entity.
(ix86_mode_after): Ditto.
(ix86_mode_entry): Ditto.
(ix86_mode_exit): Ditto.
(ix86_emit_mode_set): Ditto.
* config/i386/i386.md (strmov_singleop): Set
ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
Do not set ix86_current_function_needs_cld.
(rep_mov): Ditto.
(strset_singleop): Ditto.
(rep_stos): Ditto.
(cmpstrnqi_nz_1): Ditto.
(cmpstrnqi_1): Ditto.
(strlenqi_1): Ditto.

From-SVN: r237156

8 years agore PR c/71362 (Wrong position for "error: size of unnamed array is negative")
Marek Polacek [Mon, 6 Jun 2016 21:15:07 +0000 (21:15 +0000)]
re PR c/71362 (Wrong position for "error: size of unnamed array is negative")

PR c/71362
* c-parser.c (c_parser_direct_declarator): Set location.

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

From-SVN: r237155

8 years agore PR c++/70847 (exponential time in cp_fold for chained virtual function calls)
Jakub Jelinek [Mon, 6 Jun 2016 19:48:22 +0000 (21:48 +0200)]
re PR c++/70847 (exponential time in cp_fold for chained virtual function calls)

PR c++/70847
PR c++/71330
PR c++/71393
* cp-gimplify.c (cp_fold_r): Set *walk_subtrees = 0 and return NULL
right after cp_fold call if cp_fold has returned the same stmt
already in some earlier cp_fold_r call.
(cp_fold_function): Add pset automatic variable, pass its address
to cp_walk_tree.

* g++.dg/opt/pr70847.C: New test.
* g++.dg/ubsan/pr70847.C: New test.
* g++.dg/ubsan/pr71393.C: New test.

Co-Authored-By: Patrick Palka <ppalka@gcc.gnu.org>
From-SVN: r237151

8 years agore PR tree-optimization/71259 (GCC trunk emits wrong code)
Jakub Jelinek [Mon, 6 Jun 2016 18:35:03 +0000 (20:35 +0200)]
re PR tree-optimization/71259 (GCC trunk emits wrong code)

PR tree-optimization/71259
* tree-vect-slp.c (vect_get_constant_vectors): For
VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
one for constant op, and use COND_EXPR for non-constant.

* gcc.dg/vect/pr71259.c: New test.

From-SVN: r237147

8 years ago* fr.po: Update.
Joseph Myers [Mon, 6 Jun 2016 17:39:12 +0000 (18:39 +0100)]
* fr.po: Update.

From-SVN: r237145

8 years agoSelftest framework
David Malcolm [Mon, 6 Jun 2016 17:11:30 +0000 (17:11 +0000)]
Selftest framework

gcc/ChangeLog:
* Makefile.in (OBJS): Add function-tests.o,
hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
selftest-run-tests.o.
(OBJS-libcommon): Add selftest.o.
(OBJS-libcommon-target): Add selftest.o.
(all.internal): Add "selftest".
(all.cross): Likewise.
(selftest): New phony target.
(s-selftest): New target.
(selftest-gdb): New phony target.
(COLLECT2_OBJS): Add selftest.o.
* bitmap.c: Include "selftest.h".
(selftest::test_gc_alloc): New function.
(selftest::test_set_range): New function.
(selftest::test_clear_bit_in_middle): New function.
(selftest::test_copying): New function.
(selftest::test_bitmap_single_bit_set_p): New function.
(selftest::bitmap_c_tests): New function.
* common.opt (fself-test): New.
* diagnostic-show-locus.c: Include "selftest.h".
(make_range): New function.
(test_range_contains_point_for_single_point): New function.
(test_range_contains_point_for_single_line): New function.
(test_range_contains_point_for_multiple_lines): New function.
(assert_eq): New function.
(test_get_line_width_without_trailing_whitespace): New function.
(selftest::diagnostic_show_locus_c_tests): New function.
* et-forest.c: Include "selftest.h".
(selftest::test_single_node): New function.
(selftest::test_simple_tree): New function.
(selftest::test_disconnected_nodes): New function.
(selftest::et_forest_c_tests): New function.
* fold-const.c: Include "selftest.h".
(selftest::assert_binop_folds_to_const): New function.
(selftest::assert_binop_folds_to_nonlvalue): New function.
(selftest::test_arithmetic_folding): New function.
(selftest::fold_const_c_tests): New function.
* function-tests.c: New file.
* gimple.c: Include "selftest.h".
Include "gimple-pretty-print.h".
(selftest::verify_gimple_pp): New function.
(selftest::test_assign_single): New function.
(selftest::test_assign_binop): New function.
(selftest::test_nop_stmt): New function.
(selftest::test_return_stmt): New function.
(selftest::test_return_without_value): New function.
(selftest::gimple_c_tests): New function.
* hash-map-tests.c: New file.
* hash-set-tests.c: New file.
* input.c: Include "selftest.h".
(selftest::assert_loceq): New function.
(selftest::test_accessing_ordinary_linemaps): New function.
(selftest::test_unknown_location): New function.
(selftest::test_builtins): New function.
(selftest::test_reading_source_line): New function.
(selftest::input_c_tests): New function.
* rtl-tests.c: New file.
* selftest-run-tests.c: New file.
* selftest.c: New file.
* selftest.h: New file.
* spellcheck.c: Include "selftest.h".
(selftest::levenshtein_distance_unit_test_oneway): New function,
adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
(selftest::levenshtein_distance_unit_test): Likewise.
(selftest::spellcheck_c_tests): Likewise.
* toplev.c: Include selftest.h.
(toplev::run_self_tests): New.
(toplev::main): Handle -fself-test.
* toplev.h (toplev::run_self_tests): New.
* tree.c: Include "selftest.h".
(selftest::test_integer_constants): New function.
(selftest::test_identifiers): New function.
(selftest::test_labels): New function.
(selftest::tree_c_tests): New function.
* tree-cfg.c: Include "selftest.h".
(selftest::push_fndecl): New function.
(selftest::test_linear_chain): New function.
(selftest::test_diamond): New function.
(selftest::test_fully_connected): New function.
(selftest::tree_cfg_c_tests): New function.
* vec.c: Include "selftest.h".
(selftest::safe_push_range): New function.
(selftest::test_quick_push): New function.
(selftest::test_safe_push): New function.
(selftest::test_truncate): New function.
(selftest::test_safe_grow_cleared): New function.
(selftest::test_pop): New function.
(selftest::test_safe_insert): New function.
(selftest::test_ordered_remove): New function.
(selftest::test_unordered_remove): New function.
(selftest::test_block_remove): New function.
(selftest::reverse_cmp): New function.
(selftest::test_qsort): New function.
(selftest::vec_c_tests): New function.c.
* wide-int.cc: Include selftest.h and wide-int-print.h.
(selftest::from_int <wide_int>): New function.
(selftest::from_int <offset_int>): New function.
(selftest::from_int <widest_int>): New function.
(selftest::assert_deceq): New function.
(selftest::assert_hexeq): New function.
(selftest::test_printing <VALUE_TYPE>): New function template.
(selftest::test_ops <VALUE_TYPE>): New function template.
(selftest::test_comparisons <VALUE_TYPE>): New function template.
(selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
template.
(selftest::wide_int_cc_tests): New function.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/levenshtein-test-1.c: Delete.
* gcc.dg/plugin/levenshtein_plugin.c: Delete.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Remove the
above.

From-SVN: r237144

8 years agoSupport allocators in tuples of zero size.
Ville Voutilainen [Mon, 6 Jun 2016 16:28:59 +0000 (19:28 +0300)]
Support allocators in tuples of zero size.

* include/std/tuple (tuple<>::tuple(),
tuple<>::tuple(allocator_arg_t, const _Alloc&),
tuple<>::tuple(allocator_arg_t, const _Alloc&, const tuple&)): New.
* testsuite/20_util/tuple/cons/allocators.cc: Adjust.

From-SVN: r237143

8 years ago[3/3][RTL ifcvt] PR middle-end/37780: Conditional expression with __builtin_clz(...
Kyrylo Tkachov [Mon, 6 Jun 2016 16:06:05 +0000 (16:06 +0000)]
[3/3][RTL ifcvt] PR middle-end/37780: Conditional expression with __builtin_clz() should be optimized out

PR middle-end/37780
* ifcvt.c (noce_try_ifelse_collapse): New function.
Declare prototype.
(noce_process_if_block): Call noce_try_ifelse_collapse.
* simplify-rtx.c (simplify_cond_clz_ctz): New function.
(simplify_ternary_operation): Use the above to simplify
conditional CLZ/CTZ expressions.

* gcc.c-torture/execute/pr37780.c: New test.
* gcc.target/aarch64/pr37780_1.c: Likewise.
* gcc.target/arm/pr37780_1.c: Likewise.

From-SVN: r237141

8 years ago[2/3][AArch64] Keep CTZ components together until after reload
Kyrylo Tkachov [Mon, 6 Jun 2016 16:01:47 +0000 (16:01 +0000)]
[2/3][AArch64] Keep CTZ components together until after reload

PR middle-end/37780
* config/aarch64/aarch64.md (ctz<mode>2): Convert to
define_insn_and_split.

From-SVN: r237139

8 years ago[1/3][ARM] Keep ctz expressions together until after reload
Kyrylo Tkachov [Mon, 6 Jun 2016 15:59:48 +0000 (15:59 +0000)]
[1/3][ARM] Keep ctz expressions together until after reload

PR middle-end/37780
* config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.

From-SVN: r237138

8 years agoc-typeck.c (comptypes_internal): Handle comparisons of INTEGER_TYPE, FIXED_POINT_TYPE...
Marek Polacek [Mon, 6 Jun 2016 15:50:23 +0000 (15:50 +0000)]
c-typeck.c (comptypes_internal): Handle comparisons of INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes.

* c-typeck.c (comptypes_internal): Handle comparisons of
INTEGER_TYPE, FIXED_POINT_TYPE, and REAL_TYPE nodes.  Don't check
TYPE_REF_CAN_ALIAS_ALL.

* c-c++-common/attr-may-alias-1.c: New test.
* c-c++-common/attr-may-alias-2.c: New test.
* gcc.dg/pr39464.c: Turn dg-warning into dg-bogus.

From-SVN: r237137

8 years agolibstdc++/71320 Add or remove file permissions correctly
Jonathan Wakely [Mon, 6 Jun 2016 15:50:01 +0000 (16:50 +0100)]
libstdc++/71320 Add or remove file permissions correctly

PR libstdc++/71320
* src/filesystem/ops.cc (permissions(const path&, perms, error_code&)):
Add or remove permissions according to perms argument.
* testsuite/experimental/filesystem/operations/permissions.cc: New
test.

From-SVN: r237136

8 years agore PR bootstrap/71400 (profiledbootstrap failed)
Aaron Conole [Mon, 6 Jun 2016 15:24:24 +0000 (15:24 +0000)]
re PR bootstrap/71400 (profiledbootstrap failed)

PR libgcc/71400
* libgcov-driver-system.c (__gcov_error_file): Disable if IN_GCOV_TOOL.
(get_gcov_error_file): Check __gcov_error_file before trying to
initialize it.
(gcov_error): Always use get_gcov_error_file.

Co-Authored-By: Nathan Sidwell <nathan@acm.org>
From-SVN: r237135

8 years agore PR c/24414 (Old-style asms don't clobber memory)
Bernd Edlinger [Mon, 6 Jun 2016 12:31:59 +0000 (12:31 +0000)]
re PR c/24414 (Old-style asms don't clobber memory)

gcc/
2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c/24414
        * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
        Implicitly clobber memory for basic asm with non-empty assembler
        string.  Use targetm.md_asm_adjust also here.
        * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
        * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
        * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
        non-empty assembler string.
        * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
        * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
        (decode_asm_operands): Handle basic asm in PARALLEL block.
        (extract_insn): Handle basic asm in PARALLEL block.
        * doc/extend.texi: Mention new behavior of basic asm.
        * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
        * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
        branch_needs_nop_p): Use asm_noperands.

gcc/testsuite/
2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR c/24414
        * gcc.target/i386/pr24414.c: New test.

From-SVN: r237133

8 years agosparc: support for the SPARC M7 and VIS 4.0
Jose E. Marchesi [Mon, 6 Jun 2016 11:40:02 +0000 (13:40 +0200)]
sparc: support for the SPARC M7 and VIS 4.0

gcc/ChangeLog:

2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>

     * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
     Include the M7 SPARC DFA scheduler.
     New attribute v3pipe.
     Annotate insns with v3pipe where appropriate.
     Define cpu_feature vis4.
     Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
     Add (V8QI "8") to vbits.
     Add insns {add,sub}v8qi3
     Add insns ss{add,sub}v8qi3
     Add insns us{add,sub}{v8qi,v4hi}3
     Add insns {min,max}{v8qi,v4hi,v2si}3
     Add insns {minu,maxu}{v8qi,v4hi,v2si}3
     Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
     * config/sparc/niagara4.md: Add a comment explaining the
     discrepancy between the documented latenty numbers and the
     implemented ones.
     * config/sparc/niagara7.md: New file.
     * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
     supports SPARC5 and VIS 4.0 instructions.
     * configure: Regenerate.
     * config.in: Likewise.
     * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
     * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
     TARGET_CPU_niagara7.
     (ASM_CPU64_DEFAULT_SPEC): Likewise.
     (CPP_CPU_SPEC): Handle niagara7.
     (ASM_CPU_SPEC): Likewise.
     * config/sparc/sparc-opts.h (processor_type): Add
     PROCESSOR_NIAGARA7.
     (mvis4): New option.
     * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
     (AS_NIAGARA7_FLAG): Define.
     (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
     (CPP_CPU64_DEFAULT_SPEC): Likewise.
     (CPP_CPU_SPEC): Handle niagara7.
     (ASM_CPU_SPEC): Likewise.
     * config/sparc/sparc.c (niagara7_costs): Define.
     (sparc_option_override): Handle niagara7 and adjust cache-related
     parameters with better values for niagara cpus.  Also support VIS4.
     (sparc32_initialize_trampoline): Likewise.
     (sparc_use_sched_lookahead): Likewise.
     (sparc_issue_rate): Likewise.
     (sparc_register_move_cost): Likewise.
     (dump_target_flag_bits): Support VIS4.
     (sparc_vis_init_builtins): Likewise.
     (sparc_builtins): Likewise.
     * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
     VIS4 4.0.
     * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
     UltraSparc M7.
     * config/sparc/sparc.opt (sparc_processor_type): New value
     niagara7.
     * config/sparc/visintrin.h (__attribute__): Prototypes for the
     VIS4 builtins.
     * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
     -mvis4.
     * doc/extend.texi (SPARC VIS Built-in Functions): Document the
     VIS4 builtins.

gcc/testsuite/ChangeLog:

2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>

     * gcc.target/sparc/vis4misc.c: New file.
     * gcc.target/sparc/fpcmp.c: Likewise.
     * gcc.target/sparc/fpcmpu.c: Likewise.

From-SVN: r237132

8 years ago* doc/sourcebuild.texi (Directives): Remove extra closing braces.
Jonathan Wakely [Mon, 6 Jun 2016 10:14:43 +0000 (11:14 +0100)]
* doc/sourcebuild.texi (Directives): Remove extra closing braces.

From-SVN: r237131

8 years agodecl.c (Gigi_Equivalent_Type): Make sure equivalent types are present before returnin...
Eric Botcazou [Mon, 6 Jun 2016 10:03:14 +0000 (10:03 +0000)]
decl.c (Gigi_Equivalent_Type): Make sure equivalent types are present before returning them.

* gcc-interface/decl.c (Gigi_Equivalent_Type): Make sure equivalent
types are present before returning them.  Remove final assertion.
(gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Adjust to
above change.
<E_Protected_Type>: Likewise.

From-SVN: r237130

8 years agotrans.c (elaborate_all_entities_for_package): Also do not elaborate Itypes.
Eric Botcazou [Mon, 6 Jun 2016 09:55:44 +0000 (09:55 +0000)]
trans.c (elaborate_all_entities_for_package): Also do not elaborate Itypes.

* gcc-interface/trans.c (elaborate_all_entities_for_package): Also do
not elaborate Itypes.

From-SVN: r237129

8 years agoutils.c (gnat_internal_attribute_table): Add support for noinline and noclone attributes.
Eric Botcazou [Mon, 6 Jun 2016 09:51:33 +0000 (09:51 +0000)]
utils.c (gnat_internal_attribute_table): Add support for noinline and noclone attributes.

* gcc-interface/utils.c (gnat_internal_attribute_table): Add support
for noinline and noclone attributes.
(handle_noinline_attribute): New handler.
(handle_noclone_attribute): Likewise.

From-SVN: r237127

8 years ago* gcc-interface/trans.c (process_type): Beef up comment.
Eric Botcazou [Mon, 6 Jun 2016 09:47:17 +0000 (09:47 +0000)]
* gcc-interface/trans.c (process_type): Beef up comment.

From-SVN: r237126

8 years agoutils2.c (build_call_alloc_dealloc): Do not substitute placeholder expressions here...
Eric Botcazou [Mon, 6 Jun 2016 09:44:11 +0000 (09:44 +0000)]
utils2.c (build_call_alloc_dealloc): Do not substitute placeholder expressions here but...

* gcc-interface/utils2.c (build_call_alloc_dealloc): Do not substitute
placeholder expressions here but...
* gcc-interface/trans.c (gnat_to_gnu) <N_Free_Statement>: ...here.
Make an exception to the protection of a CALL_EXPR result with an
unconstrained type only in the same cases as Call_to_gnu.

From-SVN: r237125

8 years agotrans.c (gnat_to_gnu): Rework special code dealing with boolean rvalues and set the...
Eric Botcazou [Mon, 6 Jun 2016 09:31:13 +0000 (09:31 +0000)]
trans.c (gnat_to_gnu): Rework special code dealing with boolean rvalues and set the location directly.

* gcc-interface/trans.c (gnat_to_gnu): Rework special code dealing
with boolean rvalues and set the location directly.  Do not set the
location in the other cases for a simple name.
(gnat_to_gnu_external): Clear the location on the expression.

From-SVN: r237123

8 years agodecl.c (gnat_to_gnu_entity): Remove useless 'else' statements and tidy up.
Eric Botcazou [Mon, 6 Jun 2016 09:26:07 +0000 (09:26 +0000)]
decl.c (gnat_to_gnu_entity): Remove useless 'else' statements and tidy up.

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Component>: Remove
useless 'else' statements and tidy up.
<E_Array_Subtype>: Fully deal with the declaration here.
<E_Incomplete_Type>: Use properly-typed constant.
Assert that we don't apply the special type treatment to dummy types.
Separate this treatment from the final back-annotation and simplify
the condition for the RM size.
(gnat_to_gnu_param): Add GNU_PARAM_TYPE parameter and adjust.
(gnat_to_gnu_subprog_type): Ajust call to gnat_to_gnu_param.
* gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Declaration>: Add
comment.
(process_freeze_entity): Remove obsolete code.
(process_type): Minor tweaks.

From-SVN: r237122

8 years agoeinfo.ads (Returns_Limited_View): Remove.
Eric Botcazou [Mon, 6 Jun 2016 09:18:41 +0000 (09:18 +0000)]
einfo.ads (Returns_Limited_View): Remove.

* einfo.ads (Returns_Limited_View): Remove.
(Set_Returns_Limited_View ): Likewise.
* einfo.adb (Returns_Limited_View): Likewise.
(Set_Returns_Limited_View ): Likewise.
* freeze.adb (Late_Freeze_Subprogram): Remove.
(Freeze_Entity): Do not defer the freezing of functions returning an
incomplete type coming from a limited context.

From-SVN: r237121

8 years agovect-live-1.c: Use additional-options.
Alan Hayward [Mon, 6 Jun 2016 09:15:23 +0000 (09:15 +0000)]
vect-live-1.c: Use additional-options.

2016-06-06  Alan Hayward  <alan.hayward@arm.com>

testsuite/
* gcc.dg/vect/vect-live-1.c: Use additional-options.
* gcc.dg/vect/vect-live-3.c: Likewise.

From-SVN: r237120

8 years agogigi.h (finish_subprog_decl): Add ASM_NAME parameter.
Eric Botcazou [Mon, 6 Jun 2016 09:08:56 +0000 (09:08 +0000)]
gigi.h (finish_subprog_decl): Add ASM_NAME parameter.

* gcc-interface/gigi.h (finish_subprog_decl): Add ASM_NAME parameter.
* gcc-interface/decl.c (gnu_ext_name_for_subprog): New function.
(gnat_to_gnu_entity) <E_Subprogram_Type>: Do not check compatibility
of profiles for builtins here...  Call gnu_ext_name_for_subprog.
Also update profiles if pointers to limited_with'ed types are
updated.
(gnat_to_gnu_param): Restore the correct source location information
for vector ABI warnings.
(associate_subprog_with_dummy_type): Add comment about AI05-019.
Set TYPE_DUMMY_IN_PROFILE_P flag unconditionally.
(update_profile): Deal with builtin declarations.
Call gnu_ext_name_for_subprog.  Adjust call to finish_subprog_decl.
(update_profiles_with): Add comment.
(gnat_to_gnu_subprog_type): Reuse the return type if it is complete.
Likewise for parameter declarations in most cases.  Do not change
the return type for the CICO mechanism if the profile is incomplete.
...but here instead.  Always reset the slot for the parameters.
* gcc-interface/utils.c (create_subprog_decl): Call
gnu_ext_name_for_subprog.  Do not set the assembler name here but...
(finish_subprog_decl): ...but here instead.  Add ASM_NAME parameter.

From-SVN: r237119

8 years agoexp_ch9.adb (Expand_N_Protected_Type_Declaration): Insert the declaration of the...
Eric Botcazou [Mon, 6 Jun 2016 08:46:33 +0000 (08:46 +0000)]
exp_ch9.adb (Expand_N_Protected_Type_Declaration): Insert the declaration of the corresponding record type before that of the...

* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Insert the
declaration of the corresponding record type before that of the
unprotected version of the subprograms that operate on it.
(Expand_Access_Protected_Subprogram_Type): Declare the Equivalent_Type
just before the original type.
* sem_ch3.adb (Handle_Late_Controlled_Primitive): Point the current
declaration to the newly created declaration for the primitive.
(Analyze_Subtype_Declaration): Remove obsolete code forcing the
freezing of the subtype before its declaration.
(Replace_Anonymous_Access_To_Protected_Subprogram): Insert the new
declaration in the nearest enclosing scope for formal parameters too.
(Build_Derived_Access_Type): Restore the status of the created Itype
after it is erased by Copy_Node.
* sem_ch6.adb (Exchange_Limited_Views): Remove guard on entry.
(Analyze_Subprogram_Body_Helper): Call Exchange_Limited_Views only if
the specification is present.
Move around the code changing the designated view of the return type
and save the original view.  Restore it on exit.
* sem_ch13.adb (Build_Predicate_Function_Declaration): Always insert
the declaration right after that of the type.

From-SVN: r237118

8 years agore PR tree-optimization/71398 (ICE at -O3 in 32-bit and 64-bit mode on x86_64-linux...
Richard Biener [Mon, 6 Jun 2016 06:55:19 +0000 (06:55 +0000)]
re PR tree-optimization/71398 (ICE at -O3 in 32-bit and 64-bit mode on x86_64-linux-gnu (Segmentation fault, find_edge))

2016-06-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71398
* tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
remove edges.

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

From-SVN: r237117

8 years agoft32.c (ft32_setup_incoming_varargs, [...]): Handle pretend_args.
James Bowman [Mon, 6 Jun 2016 02:31:42 +0000 (02:31 +0000)]
ft32.c (ft32_setup_incoming_varargs, [...]): Handle pretend_args.

[gcc]
   * config/ft32/ft32.c (ft32_setup_incoming_varargs,
   ft32_expand_prolog, ft32_expand_epilogue):
   Handle pretend_args.
   * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
   * config/ft32/ft32.md: Add pretend_returner.

From-SVN: r237116

8 years agoDaily bump.
GCC Administrator [Mon, 6 Jun 2016 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r237115

8 years agore PR target/71389 (ICE on trunk gcc on ivybridge target (df_refs_verify))
Uros Bizjak [Sun, 5 Jun 2016 22:55:35 +0000 (00:55 +0200)]
re PR target/71389 (ICE on trunk gcc on ivybridge target (df_refs_verify))

PR target/71389
* config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
Copy op1 RTX to avoid invalid sharing.
(ix86_expand_vector_move_misalign): Ditto.

testsuite/ChangeLog:

PR target/71389
* g++.dg/pr71389.C: New test.

From-SVN: r237111

8 years agoexpr.c (move_by_pieces_d::generate): Mark mode parameter with ATTRIBUTE_UNUSED.
John David Anglin [Sun, 5 Jun 2016 20:42:40 +0000 (20:42 +0000)]
expr.c (move_by_pieces_d::generate): Mark mode parameter with ATTRIBUTE_UNUSED.

* expr.c (move_by_pieces_d::generate): Mark mode parameter with
ATTRIBUTE_UNUSED.

From-SVN: r237110

8 years agore PR fortran/71404 (416.gamess in SPEC CPU 2006 failed to build)
Jerry DeLisle [Sun, 5 Jun 2016 19:58:38 +0000 (19:58 +0000)]
re PR fortran/71404 (416.gamess in SPEC CPU 2006 failed to build)

2016-06-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/71404
* gfortran.dg/fmt_read_5.f: New test.

From-SVN: r237109

8 years agore PR fortran/71404 (416.gamess in SPEC CPU 2006 failed to build)
Jerry DeLisle [Sun, 5 Jun 2016 19:49:59 +0000 (19:49 +0000)]
re PR fortran/71404 (416.gamess in SPEC CPU 2006 failed to build)

2016-06-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/71404
* io.c (match_io): For READ, commit in pending symbols in the
current statement before trying to match an expression so that
if the match fails and we undo symbols we dont toss good symbols.

From-SVN: r237108

8 years agoProtect allocator-overloads of tuple-from-tuple constructors from cases that would...
Ville Voutilainen [Sun, 5 Jun 2016 17:39:10 +0000 (20:39 +0300)]
Protect allocator-overloads of tuple-from-tuple constructors from cases that would create dangling references.

Protect allocator-overloads of tuple-from-tuple constructors
from cases that would create dangling references.
* include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
  const tuple<_UElements...>&), tuple(allocator_arg_t, const _Alloc&,
  tuple<_UElements...>&&)): Add a check for _NonNestedTuple.
* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Adjust.

From-SVN: r237106

8 years agore PR fortran/69659 (ICE on using option -frepack-arrays, in gfc_conv_descriptor_data...
Andre Vehreschild [Sun, 5 Jun 2016 17:20:54 +0000 (19:20 +0200)]
re PR fortran/69659 (ICE on using option -frepack-arrays, in gfc_conv_descriptor_data_get)

gcc/testsuite/ChangeLog:

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

PR fortran/69659
* gfortran.dg/class_array_22.f03: New test.

gcc/fortran/ChangeLog:

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

PR fortran/69659
* trans-array.c (gfc_trans_dummy_array_bias): For class arrays use
the address of the _data component to reference the arrays data
component.

From-SVN: r237105

8 years ago* gcc.dg/tree-prof/peel-1.c: Fix testcase.
Jan Hubicka [Sun, 5 Jun 2016 16:46:38 +0000 (18:46 +0200)]
* gcc.dg/tree-prof/peel-1.c: Fix testcase.

From-SVN: r237104

8 years agopredict.c (predicted_by_loop_heuristics_p): New function.
Jan Hubicka [Sun, 5 Jun 2016 16:43:19 +0000 (18:43 +0200)]
predict.c (predicted_by_loop_heuristics_p): New function.

* predict.c (predicted_by_loop_heuristics_p): New function.
(predict_iv_comparison): Use it.
(predict_loops): Walk from innermost loops; do not predict edges
leaving multiple loops multiple times; implement
PRED_LOOP_ITERATIONS_MAX heuristics.
* predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
* gcc.dg/predict-9.c: Update template.

From-SVN: r237103

8 years agocfg.c (check_bb_profile): Do not report mismatched profiles when only edges out of...
Jan Hubicka [Sun, 5 Jun 2016 16:38:12 +0000 (18:38 +0200)]
cfg.c (check_bb_profile): Do not report mismatched profiles when only edges out of BB are EH edges.

* cfg.c (check_bb_profile): Do not report mismatched profiles when
only edges out of BB are EH edges.

From-SVN: r237102

8 years agore PR c++/49377 (Template specialization attributes cause type mismatches when used)
Paolo Carlini [Sun, 5 Jun 2016 15:08:22 +0000 (15:08 +0000)]
re PR c++/49377 (Template specialization attributes cause type mismatches when used)

2016-06-05  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/49377
* g++.dg/template/pr49377.C: New.

From-SVN: r237098

8 years agoDaily bump.
GCC Administrator [Sun, 5 Jun 2016 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r237097

8 years agoPR c/48116 - -Wreturn-type does not work as advertised
Martin Sebor [Sat, 4 Jun 2016 20:50:50 +0000 (20:50 +0000)]
PR c/48116 - -Wreturn-type does not work as advertised

gcc/ChangeLog:
2016-06-04  Martin Sebor  <msebor@redhat.com>
    Marcin Baczyński <marbacz@gmail.com>

PR c/48116
* doc/invoke.texi (-Wreturn-type): Mention not warning on return with
a void expression in a void function.

Co-Authored-By: Marcin Baczyński <marbacz@gmail.com>
From-SVN: r237093

8 years agotree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check aux; dump reasons...
Jan Hubicka [Sat, 4 Jun 2016 20:19:46 +0000 (22:19 +0200)]
tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check aux; dump reasons of decisions.

* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
aux; dump reasons of decisions.
(should_duplicate_loop_header_p): Likewise.
(do_while_loop_p): Likewise.
(ch_base::copy_headers): Dump asi num insns duplicated.

From-SVN: r237092

8 years agore PR tree-optimization/71405 (ICE on valid C++ code at -Os and above on x86_64-linux...
Jakub Jelinek [Sat, 4 Jun 2016 14:50:57 +0000 (16:50 +0200)]
re PR tree-optimization/71405 (ICE on valid C++ code at -Os and above on x86_64-linux-gnu: verify_gimple failed)

PR tree-optimization/71405
* tree-ssa.c (execute_update_addresses_taken): For clobber with
incompatible type, build a new clobber with the right type instead
of building a VIEW_CONVERT_EXPR around it.

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

From-SVN: r237091

8 years agore PR tree-optimization/52171 (memcmp/strcmp/strncmp can be optimized when the result...
Oleg Endo [Sat, 4 Jun 2016 11:00:58 +0000 (11:00 +0000)]
re PR tree-optimization/52171 (memcmp/strcmp/strncmp can be optimized when the result is tested for [in]equality with 0)

gcc/ChangeLog
PR tree-optimization/52171
* config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
by_pieces_ninsns instead of move_by_pieces_ninsns.

From-SVN: r237090

8 years agore PR c++/70202 (ICE on invalid code on x86_64-linux-gnu in build_simple_base_path...
Paolo Carlini [Sat, 4 Jun 2016 07:10:58 +0000 (07:10 +0000)]
re PR c++/70202 (ICE on invalid code on x86_64-linux-gnu in build_simple_base_path, at cp/class.c:579)

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

PR c++/70202
* parser.c (cp_parser_class_head): When xref_basetypes fails and
emits an error do not zero the type.

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

PR c++/70202
* g++.dg/inherit/crash5.C: New.
* g++.dg/inherit/virtual1.C: Adjust.

From-SVN: r237089