gcc.git
8 years agore PR middle-end/68291 (ICE in emit_move_insn, at expr.c:3540)
Eric Botcazou [Tue, 8 Dec 2015 18:47:54 +0000 (18:47 +0000)]
re PR middle-end/68291 (ICE in emit_move_insn, at expr.c:3540)

PR middle-end/68291
PR middle-end/68292
* cfgexpand.c (set_rtl): Always accept mode mismatch for SSA names
with BLKmode promoted mode based on RESULT_DECLs.

From-SVN: r231422

8 years ago920723-1.c: Remove PTX skip.
Nathan Sidwell [Tue, 8 Dec 2015 18:43:10 +0000 (18:43 +0000)]
920723-1.c: Remove PTX skip.

* gcc.c-torture/compile/920723-1.c: Remove PTX skip.
* gcc.c-torture/compile/pr33855.c: Likewise.
* gcc.c-torture/execute/981019-1.c: Remove PTX -O2 skip.

From-SVN: r231421

8 years ago* testsuite/ChangeLog: Fix last entry.
Uros Bizjak [Tue, 8 Dec 2015 18:42:15 +0000 (19:42 +0100)]
* testsuite/ChangeLog: Fix last entry.

From-SVN: r231420

8 years agore PR target/68701 ("gcc -m32 -finstrument-functions -ffixed-ebp" produces internal...
Uros Bizjak [Tue, 8 Dec 2015 18:41:21 +0000 (19:41 +0100)]
re PR target/68701 ("gcc -m32 -finstrument-functions -ffixed-ebp" produces internal compiler error)

PR target/68701
* config/i386/i386.c (ix86_option_override_internal): Enable
-maccumulate-outgoing-args when %ebp is fixed due to stack
realignment requirements.

testsuite/ChangeLog:

PR target/68701
* testsuite/gcc.target/i386/pr68701-1.c: New test.
* testsuite/gcc.target/i386/pr68701-2.c: Ditto.

From-SVN: r231419

8 years agosse4_1-round.h (do_round): Fix inline asm statements.
Uros Bizjak [Tue, 8 Dec 2015 18:21:15 +0000 (19:21 +0100)]
sse4_1-round.h (do_round): Fix inline asm statements.

* gcc.target/i386/sse4_1-round.h (do_round): Fix inline asm statements.
* gcc.target/i386/sse4_1-roundsd-4.c (do_round): Ditto.
* gcc.target/i386/sse4_1-roundss-4.c (do_round): Ditto.

From-SVN: r231418

8 years ago* gcc.dg/sso-9.c (foo): Robustify trick.
Eric Botcazou [Tue, 8 Dec 2015 17:08:18 +0000 (17:08 +0000)]
* gcc.dg/sso-9.c (foo): Robustify trick.

From-SVN: r231416

8 years agoC: fix uninitialized ranges for __alignof__
David Malcolm [Tue, 8 Dec 2015 17:03:26 +0000 (17:03 +0000)]
C: fix uninitialized ranges for __alignof__

gcc/c/ChangeLog:
* c-parser.c (c_parser_alignof_expression): Capture location of
closing parenthesis (if any), or of end of unary expression, and
use it to build a src_range for the expression.

gcc/testsuite/ChangeLog:
* gcc.dg/plugin/diagnostic-test-expressions-1.c (test_alignof):
New test function.

From-SVN: r231415

8 years agoPR c/68757: fix uninitialized src_range for various builtins
David Malcolm [Tue, 8 Dec 2015 16:57:27 +0000 (16:57 +0000)]
PR c/68757: fix uninitialized src_range for various builtins

gcc/c/ChangeLog:
PR c/68757
* c-parser.c (c_parser_get_builtin_args): Add
"out_close_paren_loc" param, and write back to it.
(c_parser_postfix_expression): Capture the closing
parenthesis location for RID_CHOOSE_EXPR,
RID_BUILTIN_CALL_WITH_STATIC_CHAIN, RID_BUILTIN_COMPLEX,
RID_BUILTIN_SHUFFLE and use it to set the source range
for such expressions; within RID_BUILTIN_COMPLEX set
the underlying location.

gcc/testsuite/ChangeLog:
PR c/68757
* gcc.dg/plugin/diagnostic-test-expressions-1.c
(test_builtin_choose_expr): New test function.
(test_builtin_call_with_static_chain): Likewise.
(test_builtin_complex): Likewise.
(test_builtin_shuffle): Likewise.

From-SVN: r231414

8 years ago[AArch64] Skip big-endian as well for gcc.target/aarch64/got_mem_hoist_1.c
Jiong Wang [Tue, 8 Dec 2015 15:37:07 +0000 (15:37 +0000)]
[AArch64] Skip big-endian as well for gcc.target/aarch64/got_mem_hoist_1.c

2015-12-08  Jiong Wang  <jiong.wang@arm.com>

gcc/testsuite/
  * gcc.target/aarch64/got_mem_hoist_1.c (dg-skip-if): Match big-endian
  as well.

From-SVN: r231413

8 years agore PR c++/68116 (ice in add_expr, at tree.c:7840)
Marek Polacek [Tue, 8 Dec 2015 14:43:32 +0000 (14:43 +0000)]
re PR c++/68116 (ice in add_expr, at tree.c:7840)

PR c++/68116
* g++.dg/cpp0x/pr68116.C: New test.

From-SVN: r231412

8 years agoClear restrict in install_var_field
Tom de Vries [Tue, 8 Dec 2015 14:17:42 +0000 (14:17 +0000)]
Clear restrict in install_var_field

2015-12-08  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/68640
* omp-low.c (install_var_field): Clear the restrict qualifier on the var
type.

From-SVN: r231411

8 years agoAVX-512. Fix assembler section for broadcast pattern.
Kirill Yukhin [Tue, 8 Dec 2015 14:09:45 +0000 (14:09 +0000)]
AVX-512. Fix assembler section for broadcast pattern.

gcc/
* config/i386/sse.md (define_insn "<avx512>_vec_dup<mode>_1"): Fix
assembler to make source always 128bit.

From-SVN: r231410

8 years agopr68627.f: Use '!ia32' instead of 'lp64' in target specifier.
Kirill Yukhin [Tue, 8 Dec 2015 13:54:30 +0000 (13:54 +0000)]
pr68627.f: Use '!ia32' instead of 'lp64' in target specifier.

gcc/testsuite/
* gfortran.dg/pr68627.f: Use '!ia32' instead of 'lp64' in target
specifier.

From-SVN: r231408

8 years agoAdd file missing from earlier commit.
Bernd Schmidt [Tue, 8 Dec 2015 13:35:46 +0000 (13:35 +0000)]
Add file missing from earlier commit.

From-SVN: r231407

8 years agore PR c/48088 (-Werror=frame-larger-than=100 does not work as expected)
Jakub Jelinek [Tue, 8 Dec 2015 13:26:35 +0000 (14:26 +0100)]
re PR c/48088 (-Werror=frame-larger-than=100 does not work as expected)

PR c/48088
PR c/68657
* common.opt (Wframe-larger-than=): Add Warning.
* opts.h (control_warning_option): Add ARG argument.
* opts-common.c (cmdline_handle_error): New function.
(read_cmdline_option): Use it.
(control_warning_option): Likewise.  Add ARG argument.
If non-NULL, decode it if needed and pass through
to handle_generated_option.  Handle CLVC_ENUM like
CLVC_BOOLEAN.
* opts.c (common_handle_option): Adjust control_warning_option
caller.
(enable_warning_as_error): Likewise.
c-family/
* c.opt (Wfloat-conversion, Wsign-conversion): Add Warning.
* c-pragma.c (handle_pragma_diagnostic): Adjust
control_warning_option caller.
ada/
* gcc-interface/trans.c (Pragma_to_gnu): Adjust
control_warning_option caller.
testsuite/
* c-c++-common/pr68657-1.c: New test.
* c-c++-common/pr68657-2.c: New test.
* c-c++-common/pr68657-3.c: New test.
* gcc.dg/cpp/warn-normalized-3.c: Use
-Werror=normalized=nfc instead of -Werror=normalized=
in dg-options.

From-SVN: r231406

8 years agoAdd file missing from previous commit:
David Sherwood [Tue, 8 Dec 2015 11:26:33 +0000 (11:26 +0000)]
Add file missing from previous commit:

2015-12-08  David Sherwood  <david.sherwood@arm.com>

Add file missing from previous commit:
gcc/testsuite:
* gcc.target/aarch64/fmaxmin.c

From-SVN: r231404

8 years ago[testsuite][ARM target attributes] Fix effective_target tests.
Christophe Lyon [Tue, 8 Dec 2015 11:17:18 +0000 (11:17 +0000)]
[testsuite][ARM target attributes] Fix effective_target tests.

2015-12-08  Christophe Lyon  <christophe.lyon@linaro.org>

* lib/target-supports.exp
(check_effective_target_arm_vfp_ok_nocache): New.
(check_effective_target_arm_vfp_ok): Call the new
check_effective_target_arm_vfp_ok_nocache function.
(check_effective_target_arm_fp_ok_nocache): New.
(check_effective_target_arm_fp_ok): New.
(add_options_for_arm_fp): New.
(check_effective_target_arm_crypto_ok_nocache): Require
target_arm_v8_neon_ok instead of arm32.
(check_effective_target_arm_crypto_pragma_ok_nocache): New.
(check_effective_target_arm_crypto_pragma_ok): New.
(add_options_for_arm_vfp): New.
* gcc.target/arm/attr-crypto.c: Use arm_crypto_pragma_ok effective
target. Do not force -mfloat-abi=softfp, use arm_vfp effective
target instead.
* gcc.target/arm/attr-neon-builtin-fail.c: Do not force
-mfloat-abi=softfp, use arm_fp effective target instead.
* gcc.target/arm/attr-neon-fp16.c: Likewise. Remove arm_neon_ok
dependency.
* gcc.target/arm/attr-neon2.c: Do not force -mfloat-abi=softfp,
use arm_vfp effective target instead.
* gcc.target/arm/attr-neon3.c: Likewise.

From-SVN: r231403

8 years agopr68627.f: Limit target to x86.
Kirill Yukhin [Tue, 8 Dec 2015 10:41:01 +0000 (10:41 +0000)]
pr68627.f: Limit target to x86.

gcc/testsuite:
* gfortran.dg/pr68627.f: Limit target to x86.

From-SVN: r231402

8 years agobuiltin-return-1.c: Add an inline assembly read to make sure dummy is not optimized...
Andre Vieira [Tue, 8 Dec 2015 10:01:45 +0000 (10:01 +0000)]
builtin-return-1.c: Add an inline assembly read to make sure dummy is not optimized away by LTO.

2015-12-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
            Joern Rennecke  <joern.rennecke@embecosm.com>

    gcc/testsuite/
    * gcc.dg/torture/stackalign/builtin-return-1.c: Add an
    inline assembly read to make sure dummy is not optimized
    away by LTO.

Co-Authored-By: Joern Rennecke <joern.rennecke@embecosm.com>
From-SVN: r231401

8 years ago[AArch64] Rework ARMv8.1 command line options.
Matthew Wahab [Tue, 8 Dec 2015 09:23:51 +0000 (09:23 +0000)]
[AArch64] Rework ARMv8.1 command line options.

* config/aarch64/aarch64-options-extensions.def: Remove
AARCH64_FL_RDMA from "fp" and "simd".  Remove "pan", "lor",
"rdma".
* config/aarch64/aarch64.h (AARCH64_FL_PAN): Remove.
(AARCH64_FL_LOR): Remove.
(AARCH64_FL_RDMA): Remove.
(AARCH64_FL_V8_1): New.
(AARCH64_FL_FOR_AARCH8_1): Replace AARCH64_FL_PAN, AARCH64_FL_LOR
and AARCH64_FL_RDMA with AARCH64_FL_V8_1.
(AARCH64_ISA_RDMA): Replace AARCH64_FL_RDMA with AARCH64_FL_V8_1.
* doc/invoke.texi (AArch64 -march): Rewrite initial paragraph and
section on -march=native.  Group descriptions of permitted
architecture names together.  Expand description of
-march=armv8.1-a.
(AArch64 -mtune): Slightly rework section on -march=native.
(AArch64 -mcpu): Slightly rework section on -march=native.
(AArch64 Feature Modifiers): Remove "pan", "lor" and "rdma".
State that -march=armv8.1-a enables "crc" and "lse".

From-SVN: r231400

8 years ago* doc/invoke.texi (SPARC options): Fix typo.
Eric Botcazou [Tue, 8 Dec 2015 09:01:58 +0000 (09:01 +0000)]
* doc/invoke.texi (SPARC options): Fix typo.

From-SVN: r231399

8 years agoia64.c (ia64_emit_probe_stack_range): Adjust.
Eric Botcazou [Tue, 8 Dec 2015 08:55:51 +0000 (08:55 +0000)]
ia64.c (ia64_emit_probe_stack_range): Adjust.

* config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust.
(output_probe_stack_range): Rotate the loop and simplify.

From-SVN: r231398

8 years agoi386.c (ix86_emit_swsqrtsf): Cleanup infinity filterning code.
Uros Bizjak [Tue, 8 Dec 2015 08:53:42 +0000 (09:53 +0100)]
i386.c (ix86_emit_swsqrtsf): Cleanup infinity filterning code.

* config/i386/i386.c (ix86_emit_swsqrtsf): Cleanup
infinity filterning code.

From-SVN: r231397

8 years agoChangeLog: Fix whitespace.
Uros Bizjak [Tue, 8 Dec 2015 08:50:47 +0000 (09:50 +0100)]
ChangeLog: Fix whitespace.

* ChangeLog: Fix whitespace.
* testsuite/ChangeLog: Ditto.

From-SVN: r231396

8 years agore PR tree-optimization/68766 (internal compiler error: in expand_LOOP_VECTORIZED...
Ilya Enkovich [Tue, 8 Dec 2015 07:16:04 +0000 (07:16 +0000)]
re PR tree-optimization/68766 (internal compiler error: in expand_LOOP_VECTORIZED, at internal-fn.c:1905)

gcc/

PR tree-optimization/68766
* tree-vectorizer.c (vectorize_loops): Check for
if-converted loops when debug counters are used.

gcc/testsuite/

PR tree-optimization/68766
* gcc.dg/pr68766.c: New test.

From-SVN: r231395

8 years agoconstraints.md (Wfr): Change to be a non-memory constraint.
DJ Delorie [Tue, 8 Dec 2015 06:10:17 +0000 (01:10 -0500)]
constraints.md (Wfr): Change to be a non-memory constraint.

* config/rl78/constraints.md (Wfr): Change to be a non-memory
constraint.
* config/rl78/rl78-protos.h (rl78_one_far_p): Declare.
* config/rl78/rl78.c (rl78_one_far_p): Define.
* config/rl78/rl78-virt (movqi_virt): Fix far memory
alternatives.
(movhi_virt): Likewise.
(zero_extendqihi2_virt): Likewise.
(extendqihi2_virt): Likewise.
(add<mode>3_virt): Likewise.
(sub<mode>3_virt): Likewise.
(andqi3_virt): Likewise.
(iorqi3_virt): Likewise.
(xorqi3_virt): Likewise.
* config/rl78/rl78-real.md (bf,br): Use long forms to avoid reloc
overflow in large files.

From-SVN: r231394

8 years agoDaily bump.
GCC Administrator [Tue, 8 Dec 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231391

8 years agore PR target/63668 (-mstd-struct-return fails for non-leaf functions)
Eric Botcazou [Mon, 7 Dec 2015 23:18:29 +0000 (23:18 +0000)]
re PR target/63668 (-mstd-struct-return fails for non-leaf functions)

PR target/63668
* doc/invoke.texi (SPARC options): Document -mstd-struct-return.
* config/sparc/sparc.c (sparc_struct_value_rtx): Minor tweaks.
* config/sparc/sparc.h (CALL_REALLY_USED_REGISTERS): Define.
* config/sparc/sparc.opt (mstd-struct-return): Accept negative form.

From-SVN: r231387

8 years agore PR c++/68760 (ICE in pp_string (pretty-print.c:909))
Jakub Jelinek [Mon, 7 Dec 2015 22:44:19 +0000 (23:44 +0100)]
re PR c++/68760 (ICE in pp_string (pretty-print.c:909))

PR c++/68760
* error.c (dump_global_iord): Use DECL_SOURCE_FILE (t)
instead of LOCATION_FILE (input_location).

* g++.dg/tree-ssa/pr68760.C: New test.

From-SVN: r231386

8 years agore PR c++/68683 ([concepts] function satisfy_argument_deduction_constraint modifies...
Ryan Burn [Mon, 7 Dec 2015 21:45:13 +0000 (21:45 +0000)]
re PR c++/68683 ([concepts] function satisfy_argument_deduction_constraint modifies a type tree node but leaves TYPE_CANONICAL unchanged)

PR c++/68683
* constraint.cc (satisfy_argument_deduction_constraint): Set
TYPE_CANONICAL to NULL_TREE if PLACEHOLDER_TYPE_CONSTRAINTS are
changed.

From-SVN: r231385

8 years agore PR tree-optimization/66726 (missed optimization, factor conversion out of COND_EXPR)
Jakub Jelinek [Mon, 7 Dec 2015 21:05:51 +0000 (22:05 +0100)]
re PR tree-optimization/66726 (missed optimization, factor conversion out of COND_EXPR)

PR middle-end/66726
* g++.dg/tree-ssa/pr66726.c: Renamed to...
* g++.dg/tree-ssa/pr66726.C: ... this.

From-SVN: r231384

8 years agowrap-delay.c: New test.
Steve Ellcey [Mon, 7 Dec 2015 20:39:04 +0000 (20:39 +0000)]
wrap-delay.c: New test.

2015-12-07  Steve Ellcey  <sellcey@imgtec.com>

* gcc.target/mips/wrap-delay.c: New test.

From-SVN: r231383

8 years agoreorg.c (optimize_skip): Do not put frame related instructions in annulled delay...
Steve Ellcey [Mon, 7 Dec 2015 20:37:38 +0000 (20:37 +0000)]
reorg.c (optimize_skip): Do not put frame related instructions in annulled delay slots.

2015-12-07  Steve Ellcey  <sellcey@imgtec.com>

* reorg.c (optimize_skip): Do not put frame related instructions
in annulled delay slots.
(steal_delay_list_from_target): Ditto.
(fill_slots_from_thread): Ditto.

From-SVN: r231382

8 years agore PR c++/68464 (ICE in valid constexpr function: ../../src/gcc/tree.c:11497)
Jason Merrill [Mon, 7 Dec 2015 19:34:11 +0000 (14:34 -0500)]
re PR c++/68464 (ICE in valid constexpr function: ../../src/gcc/tree.c:11497)

PR c++/68464
* cp-gimplify.c (cp_fold): Don't assume X has TREE_TYPE.
(cp_genericize): Don't do cp_fold_r here.
(cp_fold_function): New.
* cp-tree.h: Declare it.
* decl.c (finish_function): Call it and the pre-genericize plugin
before NRV processing.

From-SVN: r231381

8 years agore PR c++/68170 (Declaring friend template class template in C++1z produces error...
Jason Merrill [Mon, 7 Dec 2015 19:34:04 +0000 (14:34 -0500)]
re PR c++/68170 (Declaring friend template class template in C++1z produces error: specialization of ‘template<class T> class A’ must appear at namespace)

PR c++/68170
* pt.c (maybe_new_partial_specialization): The injected-class-name
is not a new partial specialization.

From-SVN: r231380

8 years agog++.exp: Also find -std list in GXX_TESTSUITE_STDS environment variable.
Jason Merrill [Mon, 7 Dec 2015 19:33:59 +0000 (14:33 -0500)]
g++.exp: Also find -std list in GXX_TESTSUITE_STDS environment variable.

gcc/testsuite/
* lib/g++.exp: Also find -std list in GXX_TESTSUITE_STDS
environment variable.
gcc/cp/
* Make-lang.in (check-c++1z, check-c++-all): Use GXX_TESTSUITE_STDS.

From-SVN: r231379

8 years agoAdd scheduling model for Exynos M1
Evandro Menezes [Mon, 7 Dec 2015 19:30:01 +0000 (19:30 +0000)]
Add scheduling model for Exynos M1

gcc/
* config/aarch64/aarch64-cores.def: Use the Exynos M1 sched model.
* config/aarch64/aarch64.md: Include "exynos-m1.md".
* config/arm/arm.md: Likewise.
* config/arm/exynos-m1.md: New file.

From-SVN: r231378

8 years ago* fold-const.c (operand_equal_p): Drp flag_strict_aliasing check.
Jan Hubicka [Mon, 7 Dec 2015 18:50:07 +0000 (19:50 +0100)]
* fold-const.c (operand_equal_p): Drp flag_strict_aliasing check.

From-SVN: r231377

8 years agonvptx.c (write_return): New.
Nathan Sidwell [Mon, 7 Dec 2015 17:53:09 +0000 (17:53 +0000)]
nvptx.c (write_return): New.

* config//nvptx/nvptx.c (write_return): New.
(write_fn_proto, nvptx_declare_function_name): Call it.

From-SVN: r231375

8 years agore PR c/68668 (bogus error: invalid use of array with unspecified bounds)
Marek Polacek [Mon, 7 Dec 2015 17:52:23 +0000 (17:52 +0000)]
re PR c/68668 (bogus error: invalid use of array with unspecified bounds)

PR c/68668
* c-decl.c (grokdeclarator): If ORIG_QUAL_INDIRECT is indirect, use
TREE_TYPE of ORIG_QUAL_TYPE, otherwise decrement ORIG_QUAL_INDIRECT.

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

From-SVN: r231374

8 years agore PR lto/61886 (LTO breaks fread with _FORTIFY_SOURCE=2)
Jan Hubicka [Mon, 7 Dec 2015 17:36:54 +0000 (18:36 +0100)]
re PR lto/61886 (LTO breaks fread with _FORTIFY_SOURCE=2)

PR ipa/61886
* symtab.c (ultimate_transparent_alias_target): New inline function.
(symbol_table::assembler_names_equal_p): New method; break out from ...
(symbol_table::decl_assembler_name_equal): ... here.
(symbol_table::change_decl_assembler_name): Also update names and
translation links of transparent aliases.
(symtab_node::dump_base): Dump transparent_alias.
(symtab_node::verify_base): Implement basic transparent alias
verification.
(symtab_node::make_decl_local): Support localization of weakrefs;
recurse to transparent aliases; set TREE_STATIC.
(symtab_node::ultimate_alias_target_1): Handle visibility of
transparent aliases.
(symtab_node::resolve_alias): New parmaeter transparent; handle
transparent aliases; recurse to aliases of aliases to fix comdat
groups.
(symtab_node::get_partitioning_class): Handle transparent aliases.
* ipa-visibility.c (cgraph_externally_visible_p,
varpool_node::externally_visible_p): Visibility of transparent alias
depends on its target.
(function_and_variable_visibility): Do not tweak visibility of
transparent laiases.
(function_and_variable_visibility): Likewise.
* ipa.c (symbol_table::remove_unreachable_nodes): Clear
transparent_alias flag.
* alias.c (cgraph_node::create_alias, cgraph_node::get_availability):
Support transparent aliases.
* cgraph.h (symtab_node): Update prototype of resolve_alias;
add transparent_alias flag.
(symbol_table: Add assembler_names_equal_p.
(symtab_node::real_symbol_p): Skip transparent aliases.
* cgraphunit.c (cgraph_node::reset): Reset transparent_alias flag.
(handle_alias_pairs): Set transparent_alias for weakref.
(cgraph_node::assemble_thunks_and_aliases): Do not asemble transparent
aliases.
* lto-cgraph.c (lto_output_node): When outputting same_comdat_group
skip symbols not put into boundary; stream transparent_alias.
(lto_output_varpool_node): Likewise.
(input_overwrite_node, input_varpool_node): Stream transparent alias.
* varpool.c (ctor_for_folding, varpool_node::get_availability,
varpool_node::assemble_aliases,
symbol_table::remove_unreferenced_decls): Handle transparent aliase.
(varpool_node::create_alias): Set transparent_alias.

* lto-partition.c (add_symbol_to_partition_1, contained_in_symbol,
rename_statics, rename_statics): Handle transparent aliases.

From-SVN: r231373

8 years agore PR middle-end/68291 (ICE in emit_move_insn, at expr.c:3540)
Eric Botcazou [Mon, 7 Dec 2015 16:45:45 +0000 (16:45 +0000)]
re PR middle-end/68291 (ICE in emit_move_insn, at expr.c:3540)

PR middle-end/68291
PR middle-end/68292
* cfgexpand.c (set_rtl): Always accept PARALLELs with BLKmode for
SSA names based on RESULT_DECLs.
* function.c (expand_function_start): Do not create BLKmode REGs
for GIMPLE registers when coalescing is enabled.

From-SVN: r231372

8 years agofinal.c (shorten_branches): Fix check for basic asm.
Bernd Edlinger [Mon, 7 Dec 2015 16:27:59 +0000 (16:27 +0000)]
final.c (shorten_branches): Fix check for basic asm.

2015-12-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * final.c (shorten_branches): Fix check for basic asm.

From-SVN: r231371

8 years agopr68349.c (strlen): Rename to my_strlen.
Vladimir Makarov [Mon, 7 Dec 2015 16:26:23 +0000 (16:26 +0000)]
pr68349.c (strlen): Rename to my_strlen.

2015-12-07  Vladimir Makarov  <vmakarov@redhat.com>

* gcc.target/i386/pr68349.c (strlen): Rename to my_strlen.

From-SVN: r231370

8 years agoipa-icf-gimple.c (func_checker::compare_gimple_asm): Add check for basic asm.
Bernd Edlinger [Mon, 7 Dec 2015 16:23:49 +0000 (16:23 +0000)]
ipa-icf-gimple.c (func_checker::compare_gimple_asm): Add check for basic asm.

2015-12-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * ipa-icf-gimple.c (func_checker::compare_gimple_asm): Add check for
        basic asm.

From-SVN: r231369

8 years agonvptx.c (nvptx_output_call_insn): Emit trap after no return call.
Nathan Sidwell [Mon, 7 Dec 2015 16:08:42 +0000 (16:08 +0000)]
nvptx.c (nvptx_output_call_insn): Emit trap after no return call.

gcc/
* config/nvptx/nvptx.c (nvptx_output_call_insn): Emit trap after no
return call.

gcc/testsuite/
* gcc.target/nvptx/abort.c: New.

From-SVN: r231368

8 years agoFix missing range information for "%q+D" format code
David Malcolm [Mon, 7 Dec 2015 16:07:00 +0000 (16:07 +0000)]
Fix missing range information for "%q+D" format code

gcc/c-family/ChangeLog:
* c-common.c (c_cpp_error): Update for change to
rich_location::set_range.

gcc/fortran/ChangeLog:
* error.c (gfc_format_decoder): Update for change of
text_info::set_range to text_info::set_location.

gcc/ChangeLog:
* pretty-print.c (text_info::set_range): Rename to...
(text_info::set_location): ...this, converting 2nd param
from source_range to a location_t.
* pretty-print.h (text_info::set_location): Convert
from inline function to external definition.
(text_info::set_range): Delete.

gcc/testsuite/ChangeLog:
* gcc.dg/diagnostic-ranges-1.c: New test file.
* gcc.dg/plugin/diagnostic-test-show-locus-bw.c
(test_percent_q_plus_d): New test function.
* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
(test_show_locus): Rewrite test code using
rich_location::set_range.  Add code to unit-test the "%q+D"
format code.

libcpp/ChangeLog:
* include/line-map.h (rich_location::set_range): Add line_maps *
param; convert param from source_range to source_location.  Drop
"overwrite_loc_p" param.
* line-map.c (rich_location::set_range): Likewise, acting as if
"overwrite_loc_p" were true, and getting range from the location.

From-SVN: r231367

8 years agoFix changelog entry and add pr66896.C.
Martin Liska [Mon, 7 Dec 2015 15:35:25 +0000 (16:35 +0100)]
Fix changelog entry and add pr66896.C.

From-SVN: r231365

8 years agoFix new sancov tests
Dmitry Vyukov [Mon, 7 Dec 2015 15:27:50 +0000 (07:27 -0800)]
Fix new sancov tests

* gcc.dg/sancov/sancov.exp: Load asan-dg.exp.
* gcc.dg/sancov/asan.c: Don't run when asan is not available.

From-SVN: r231364

8 years agonvptx.c (nvptx_assemble_decl_begin): Look inside complex and vector types.
Nathan Sidwell [Mon, 7 Dec 2015 13:46:07 +0000 (13:46 +0000)]
nvptx.c (nvptx_assemble_decl_begin): Look inside complex and vector types.

gcc/
* config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Look inside
complex and vector types.  Cope with packed structs.

gcc/testsuite/
* gcc.target/nvptx/decl-init.c: New.

From-SVN: r231362

8 years agore PR target/68627 ([i386, AVX-512] Illegal insn generated while compiling spec2k6...
Kirill Yukhin [Mon, 7 Dec 2015 11:12:41 +0000 (11:12 +0000)]
re PR target/68627 ([i386, AVX-512] Illegal insn generated while compiling spec2k6/437.leslie3d for KNL)

PR target/68627

gcc/
* config/i386/sse.md: Make 'v' alternative work on 'avx512f' ISA only.
Force destination to 512 bits register.
gcc/testsuite/
* gfortran.dg/pr68627.f: New test.

From-SVN: r231361

8 years agoCommit accidentally forgotten tests.
Kirill Yukhin [Mon, 7 Dec 2015 11:06:44 +0000 (11:06 +0000)]
Commit accidentally forgotten tests.

gcc/testsuite/
* c-c++-common/attr-simd-4.c: New test.
* c-c++-common/attr-simd-5.c: New test.

From-SVN: r231360

8 years agore PR target/68633 ([i386, AVX-512] Spec2006/434.zeus miscompares when executed on...
Kirill Yukhin [Mon, 7 Dec 2015 11:05:40 +0000 (11:05 +0000)]
re PR target/68633 ([i386, AVX-512] Spec2006/434.zeus miscompares when executed on KNL)

PR target/68633

gcc/
* config/i386/sse.md (define_insn "kunpckhi"): Fix operands order.
(define_insn "kunpcksi"): Ditto.
(define_insn "kunpckdi"): Ditto.
gcc/testsuite
* gcc.target/i386/pr68633.c: New test.

From-SVN: r231359

8 years agoFix parse/no-type-defn1.C with -std=c++1z.
Jason Merrill [Mon, 7 Dec 2015 04:35:14 +0000 (23:35 -0500)]
Fix parse/no-type-defn1.C with -std=c++1z.

* parser.c (struct tentative_firewall): New.
(cp_parser_template_id, cp_parser_decltype_expr): Use it.

From-SVN: r231354

8 years agoFix decltype-call1.C with -std=c++1z.
Jason Merrill [Mon, 7 Dec 2015 04:35:08 +0000 (23:35 -0500)]
Fix decltype-call1.C with -std=c++1z.

* parser.h (struct cp_token): Tell GTY that CPP_DECLTYPE uses
tree_check_value.
* parser.c (cp_parser_decltype): Use tree_check_value.
(saved_checks_value): New.
(cp_parser_nested_name_specifier_opt): Use it.
(cp_parser_template_id): Use it.
(cp_parser_simple_type_specifier): Use it.
(cp_parser_pre_parsed_nested_name_specifier): Use it.

From-SVN: r231353

8 years agoFix crash70.C with -std=c++1z.
Jason Merrill [Mon, 7 Dec 2015 04:35:02 +0000 (23:35 -0500)]
Fix crash70.C with -std=c++1z.

* semantics.c (finish_qualified_id_expr): Handle
UNBOUND_CLASS_TEMPLATE.

From-SVN: r231352

8 years agoFix template/ref1.C, nontype15.C, addr-builtin1.C with -std=c++1z.
Jason Merrill [Mon, 7 Dec 2015 04:34:57 +0000 (23:34 -0500)]
Fix template/ref1.C, nontype15.C, addr-builtin1.C with -std=c++1z.

* parser.c (cp_parser_template_argument): Handle references in
C++1z mode.
* constexpr.c (potential_constant_expression_1): Don't error about
TREE_THIS_VOLATILE on declarations.
[COMPONENT_REF]: Don't consider the object if we're dealing with an
overloaded function.

From-SVN: r231351

8 years agoFix memclass5.C, memfriend10.C, var-templ19.C with -std=c++1z.
Jason Merrill [Mon, 7 Dec 2015 04:34:51 +0000 (23:34 -0500)]
Fix memclass5.C, memfriend10.C, var-templ19.C with -std=c++1z.

* constraint.cc (strictly_subsumes): New.
* cp-tree.h: Declare it.
* pt.c (process_partial_specialization): Use it instead of
subsumes_constraints.
(maybe_new_partial_specialization): Do compare null constraints.
* search.c (lookup_member): Handle currently_open_class returning null.

From-SVN: r231350

8 years agoPR c++/68597, fix auto9.C and auto-neg1.C with -std=c++1z.
Jason Merrill [Mon, 7 Dec 2015 04:34:43 +0000 (23:34 -0500)]
PR c++/68597, fix auto9.C and auto-neg1.C with -std=c++1z.

* decl.c (check_tag_decl): Use ds_type_spec in auto diagnostic.
* typeck.c (check_return_expr): Check for inconsistent deduction.
* parser.c (class type_id_in_expr_sentinel): New.
(cp_parser_primary_expression) [RID_VA_ARG]: Use it.
(cp_parser_new_expression): Use it.
(cp_parser_trait_expr): Use it.
(cp_parser_type_id_1): Complain about auto if in_type_id_in_expr_p.
(cp_parser_default_type_template_argument): Check for auto.
(cp_parser_type_id_list): Likewise.
(cp_parser_simple_type_specifier): Allow auto parms if flag_concepts.
* pt.c (do_auto_deduction): Handle erroneous type.

From-SVN: r231349

8 years agostatic_assert8.C: Fix for -std=c++1z.
Jason Merrill [Mon, 7 Dec 2015 04:34:36 +0000 (23:34 -0500)]
static_assert8.C: Fix for -std=c++1z.

* g++.dg/cpp0x/static_assert8.C: Fix for -std=c++1z.
* g++.dg/cpp0x/auto3.C: Fix for -std=c++1z.
* g++.dg/cpp1y/feat-cxx14.C: Only run with -std=c++14.
* g++.dg/cpp1y/feat-cxx14-neg.C: Only run with -std=c++14.
* g++.dg/cpp1z/feat-cxx1z.C: Fill in from feat-cxx14.C.
* g++.dg/cpp1z/fold5.C: Don't run with -std=c++1z.
* g++.dg/template/function1.C: Don't run with -std=c++1z.
* g++.dg/template/call4.C: Fix access.
* g++.dg/parse/crash31.C: Remove expected error text.

From-SVN: r231348

8 years agoDaily bump.
GCC Administrator [Mon, 7 Dec 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231347

8 years agosh.md (rsqrtsf2): Adjust for the recent rsqrt_optab changes
Kaz Kojima [Mon, 7 Dec 2015 00:02:14 +0000 (00:02 +0000)]
sh.md (rsqrtsf2): Adjust for the recent rsqrt_optab changes

* config/sh/sh.md (rsqrtsf2): Adjust for the recent rsqrt_optab changes

From-SVN: r231344

8 years agore PR ada/60164 (Missing parenthesis in the documentation)
Piotr Trojanek [Sun, 6 Dec 2015 18:53:37 +0000 (18:53 +0000)]
re PR ada/60164 (Missing parenthesis in the documentation)

PR ada/60164
* doc/gnat_ugn/gnat_and_program_execution.rst (gnatmem): Fix typo.

From-SVN: r231342

8 years agore PR ada/50048 ("cc1: note: obsolete option -I- used, please use -iquote instead...
Eric Botcazou [Sun, 6 Dec 2015 18:44:56 +0000 (18:44 +0000)]
re PR ada/50048 ("cc1: note: obsolete option -I- used, please use -iquote instead" during bootstrap)

gnattools/
PR ada/50048
* Makefile.in (ftop_srcdir): New variable.
(INCLUDES_FOR_SUBDIR): Use -iquote and $(ftop_srcdir).
gcc/ada/
PR ada/50048
* gcc-interface/Makefile.in (INCLUDES): Use -iquote.

From-SVN: r231341

8 years agosupport for AMD clzero isa.
Victoria Stepanyan [Sun, 6 Dec 2015 17:02:48 +0000 (17:02 +0000)]
support for AMD clzero isa.

gcc/ChangeLog
2015-12-06  Victoria Stepanyan  <victoria.stepanyan@amd.com>

        * common/config/i386/i386-common.c
        (OPTION_MASK_ISA_CLZERO_SET): New.
        (ix86_handle_option): Handle clzero.
        * config.gcc (i[34567]86-*-*): Add clzerointrin.h,
        (x86_64-*-*): Likewise.
        * config/i386/clzerointrin.h: New header.
        * config/i386/cpuid.h (bit_CLZERO):  Define.
        * config/i386/driver-i386.c (host_detect_local_cpu): Detect
        CLZERO support.
        * config/i386/i386.opt (clzero): New.
        * config/i386/i386-c.c: Define __CLZERO__ if needed.
        * config/i386/i386.c (ix86_target_string): Define -mclzero option.
        (PTA_CLZERO): New.
        (ix86_option_override_internal): Handle new option.
        (processor_alias_table): Added PTA_CLZERO.
        (ix86_valid_target_attribute_inner_p): Add OPT_mclzero.
        (ix86_builtins): Add IX86_BUILTIN_CLZERO, IX86_BUILTIN_CLZERO.
        (ix86_expand_builtin): Handle IX86_BUILTIN_CLZERO and
        IX86_BUILTIN_CLZERO  built-ins.
        * config/i386/i386.h (TARGET_CLZERO):  New.
        * config/i386/i386.md (unspecv): Add UNSPEC_CLZERO.
        (clzero):  New pattern.
        (clzero_<mode>): New pattern.
        * config/i386/x86intrin.h: Include clzerointrin.h.
        * doc/extend.texi: Document clzero builtins.
        * doc/invoke.texi: Document -mclzero option.

gcc/testsuite/ChangeLog
2015-12-06  Victoria Stepanyan  <victoria.stepanyan@amd.com>

        * gcc.target/i386/clzero.c: New.
        * gcc.target/i386/sse-12.c: Add -mclzero.
        * gcc.target/i386/sse-13.c: Ditto.
        * gcc.target/i386/sse-14.c: Ditto.
        * gcc.target/i386/sse-22.c: Ditto.
        * gcc.target/i386/sse-23.c: Ditto.
        * g++.dg/other/i386-2.C: Ditto.
        * g++.dg/other/i386-3.C: Ditto.

From-SVN: r231340

8 years agore PR ada/56274 (libada bootstrap failure on kfreebsd ("pthread_rwlock_t" not declare...
Eric Botcazou [Sun, 6 Dec 2015 15:28:16 +0000 (15:28 +0000)]
re PR ada/56274 (libada bootstrap failure on kfreebsd ("pthread_rwlock_t" not declared in "OS_Interface"))

PR ada/56274
* s-osinte-kfreebsd-gnu.ads (pthread_rwlock_t): New subtype.
(pthread_rwlockattr_t): Likewise.

From-SVN: r231337

8 years agore PR ada/49944 (Bootstrapping on x86_64-pc-kfreebsd-gnu fails with "s-taprop.adb...
Ludovic Brenta [Sun, 6 Dec 2015 14:11:17 +0000 (14:11 +0000)]
re PR ada/49944 (Bootstrapping on x86_64-pc-kfreebsd-gnu fails with "s-taprop.adb:856:10: "pthread_attr_setaffinity_np" is undefined (more references follow)")

PR ada/49944
* s-osinte-freebsd.ads: Minor reformatting.
(Stack_Base_Available): Correct comments.
* s-osinte-kfreebsd-gnu.ads (Time_Slice_Supported, nanosleep,
clock_id_t, clock_gettime, Stack_Base_Available, Get_Page_Size,
mprotect, pthread_mutexattr_setprotocol,pthread_mutexattr_getprotocol
pthread_mutexattr_setprioceiling, pthread_mutexattr_getprioceiling,
pthread_attr_setscope, pthread_attr_getscope,
pthread_attr_setinheritsched, pthread_attr_getinheritsched,
Time_Slice_Supported): Copy from s-osinte-freebsd.ads.
* gcc-interface/Makefile.in (x86/kfreebsd): Use the POSIX version of
the System.Task_Primitives.Operations package.

From-SVN: r231333

8 years agore PR ada/49940 (Bootstrapping on x86_64-pc-kfreebsd-gnu fails with "s-taprop.adb...
Ludovic Brenta [Sun, 6 Dec 2015 14:00:16 +0000 (14:00 +0000)]
re PR ada/49940 (Bootstrapping on x86_64-pc-kfreebsd-gnu fails with "s-taprop.adb:717:32: "lwp_self" is undefined")

PR ada/49940
* s-osinte-kfreebsd-gnu.ads (lwp_self): New imported function.

From-SVN: r231330

8 years agodownload_prerequisites: Download ISL 0.15 instead of 0.14.
Tobias Burnus [Sun, 6 Dec 2015 10:42:49 +0000 (11:42 +0100)]
download_prerequisites: Download ISL 0.15 instead of 0.14.

2015-12-06  Tobias Burnus  <burnus@net-b.de>

        * download_prerequisites: Download ISL 0.15 instead of 0.14.

From-SVN: r231329

8 years ago* ipa-icf.c (sem_function::merge): Check that local_original exists.
Jan Hubicka [Sun, 6 Dec 2015 05:45:16 +0000 (06:45 +0100)]
* ipa-icf.c (sem_function::merge): Check that local_original exists.

From-SVN: r231328

8 years agoDaily bump.
GCC Administrator [Sun, 6 Dec 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231326

8 years agore PR fortran/50201 (gfortran with -static causes seg fault at runtime for writing...
Juoko Orava [Sat, 5 Dec 2015 18:12:26 +0000 (20:12 +0200)]
re PR fortran/50201 (gfortran with -static causes seg fault at runtime for writing double prec array with precision increased to kind=16)

2015-12-05  Juoko Orava <jouko.orava@iki.fi>

PR fortran/50201
* io/write_float.def: Avoid marking quadmath_snprintf as an untyped
weak reference, which fixing linking with -static.

From-SVN: r231320

8 years agore PR fortran/68676 (ICE in gfc_match_formal_arglist when compiling gfortran.dg/submo...
Paul Thomas [Sat, 5 Dec 2015 17:10:33 +0000 (17:10 +0000)]
re PR fortran/68676 (ICE in gfc_match_formal_arglist when compiling gfortran.dg/submodule_10.f08)

2015-12-05  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68676
* decl.c (gfc_match_formal_arglist): Correct error, where 'sym'
was used instead of 'progname'.

From-SVN: r231319

8 years ago* gcc.target/powerpc/recip-sqrtf.c: New test.
David Edelsohn [Sat, 5 Dec 2015 12:55:43 +0000 (12:55 +0000)]
* gcc.target/powerpc/recip-sqrtf.c: New test.

From-SVN: r231318

8 years agore PR target/68609 (PowerPC reciprocal estimate missed opportunities)
David Edelsohn [Sat, 5 Dec 2015 12:53:45 +0000 (12:53 +0000)]
re PR target/68609 (PowerPC reciprocal estimate missed opportunities)

        PR target/68609
        * config/rs6000/rs6000-protos.h (rs6000_emit_swsqrt): Rename and add
        bool arguement.
        * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Rename. Add
        non-reciporcal path.
        * config/rs6000/rs6000.md (rsqrt<mode>2): Call new function name.
        (sqrt<mode>2): Replace define_insn with define_expand that may call
        rs6000_emit_swsqrt.

From-SVN: r231317

8 years agoDaily bump.
GCC Administrator [Sat, 5 Dec 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231314

8 years agocheck that all the scev applied ops have are dominated by their defs
Aditya Kumar [Fri, 4 Dec 2015 21:38:56 +0000 (21:38 +0000)]
check that all the scev applied ops have are dominated by their defs

2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
    Sebastian Pop  <s.pop@samsung.com>

        * gcc.dg/graphite/id-29.c: New test.

gcc/ChangeLog:

2015-12-02  Aditya Kumar  <aditya.k7@samsung.com>
    Sebastian Pop  <s.pop@samsung.com>

        * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): Improve debug.
        (get_rename_from_scev): Check that all the ops in an expression have their uses dominated by corresponding defs.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r231310

8 years agofix PR68693: Check for loop structure when extending the SCoP
Aditya Kumar [Fri, 4 Dec 2015 21:36:55 +0000 (21:36 +0000)]
fix PR68693: Check for loop structure when extending the SCoP

The check for dominance while extending the scop assumed that
multiple successors meant a loop which is not true in case of
conditionals around the loop.

Improved pretty printers for better debugging.

PR tree-optimization/68693
        * graphite-scop-detection.c (dot_all_sese): New
        (dot_all_scops_1): Renamed to dot_all_sese.
        (dot_all_scops): Removed.
        (dot_sese): New.
        (dot_cfg): New.
        (scop_detection::get_nearest_dom_with_single_entry): Check that preds are from different loop levels.
        (scop_detection::get_nearest_pdom_with_single_exit): Check that succs are from different loop levels.
        (scop_detection::print_sese): Inlined.
        (scop_detection::print_edge): New.
        (scop_detection::merge_sese): Added dumps.
        * graphite.h: Add declarations.

gcc/testsuite/ChangeLog:

        * gfortran.dg/graphite/pr68693.f90: New test.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r231309

8 years ago[AArch64] Add register constraints to add<mode>3_pluslong
James Greenhalgh [Fri, 4 Dec 2015 20:02:56 +0000 (20:02 +0000)]
[AArch64] Add register constraints to add<mode>3_pluslong

gcc/

2015-12-04  James Greenhalgh  <james.greenhalgh@arm.com>

* config/aarch64/aarch64.md (add<mode>3_pluslong): Add register
constraints.

gcc/testsuite/

2015-12-04  James Greenhalgh  <james.greenhalgh@arm.com>

* gcc.c-torture/compile/20151204.c: New.

From-SVN: r231304

8 years ago* gcc.dg/vla-24.c: Requires alloca.
Nathan Sidwell [Fri, 4 Dec 2015 19:58:43 +0000 (19:58 +0000)]
* gcc.dg/vla-24.c: Requires alloca.

From-SVN: r231303

8 years agore PR rtl-optimization/68349 (ice in decompose_normal_address with -O2 at rtlanal...
Vladimir Makarov [Fri, 4 Dec 2015 19:23:21 +0000 (19:23 +0000)]
re PR rtl-optimization/68349 (ice in decompose_normal_address with -O2 at rtlanal.c:6086)

2015-12-04  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/68349
* lra-eliminations.c (move_plus_up): New function.
(lra_eliminate_regs_1): Use the function.

2015-12-04  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/68349
* gcc.target/i386/pr68349.c: New test.

From-SVN: r231300

8 years agonvptx.c (nvptx_assemble_decl_begin): New, replacing ...
Nathan Sidwell [Fri, 4 Dec 2015 18:41:46 +0000 (18:41 +0000)]
nvptx.c (nvptx_assemble_decl_begin): New, replacing ...

gcc/
* config/nvptx/nvptx.c (nvptx_assemble_decl_begin): New,
replacing ...
(init_output_initializer): ... this.
(nvptx_output_aligned_decl, nvptx_asm_declare_constant_name,
nvptx_declare_object_name, nvptx_assemble_undefined_decl): Use
nvptx_assemble_decl_begin.

gcc/testsuite/
* gcc.target/nvptx/ary-init.c: New.

From-SVN: r231298

8 years agoAdd fuzzing coverage support
Dmitry Vyukov [Fri, 4 Dec 2015 18:27:54 +0000 (10:27 -0800)]
Add fuzzing coverage support

* sancov.c: New file.
* Makefile.in (OBJS): Add sancov.o.
* invoke.texi (-fsanitize-coverage=trace-pc): Describe.
* passes.def (sancov_pass): Add.
* tree-pass.h  (sancov_pass): Add.
* common.opt (-fsanitize-coverage=trace-pc): Add.
* sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_PC): Add.
* builtins.def (DEF_SANITIZER_BUILTIN): Enable for
flag_sanitize_coverage.

From-SVN: r231296

8 years agore PR middle-end/65958 (-fstack-check breaks alloca on architectures using generic...
Eric Botcazou [Fri, 4 Dec 2015 18:25:54 +0000 (18:25 +0000)]
re PR middle-end/65958 (-fstack-check breaks alloca on architectures using generic stack checking)

PR middle-end/65958
* config/arm/unspecs.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
(unspecv): Add VUNSPEC_PROBE_STACK_RANGE.
* config/arm/arm.md (probe_stack_range): Adjust.
* config/aarch64/aarch64.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE.
(unspecv): Add UNSPECV_PROBE_STACK_RANGE.
(probe_stack_range_<PTR:mode>): Adjust.

From-SVN: r231295

8 years agore PR c++/68645 (FAIL: c-c++-common/attr-simd-3.c -std=gnu++11 (test for excess...
Jason Merrill [Fri, 4 Dec 2015 18:18:27 +0000 (13:18 -0500)]
re PR c++/68645 (FAIL: c-c++-common/attr-simd-3.c  -std=gnu++11 (test for excess errors))

PR c++/68645
* parser.c (cp_parser_direct_declarator)
(cp_parser_late_return_type_opt): Put Cilk+ attributes on
declarator->attributes, not std_attributes.

From-SVN: r231294

8 years agoC++ FE: expression ranges
David Malcolm [Fri, 4 Dec 2015 18:09:54 +0000 (18:09 +0000)]
C++ FE: expression ranges

gcc/ChangeLog:
* convert.c (convert_to_real_1): When converting from a
REAL_TYPE, preserve the location of EXPR in the result.
* tree.c (get_pure_location): Make non-static.
(set_source_range): Return the resulting location_t.
(make_location): New function.
* tree.h (get_pure_location): New decl.
(get_finish): New inline function.
(set_source_range): Convert return type from void to location_t.
(make_location): New decl.

gcc/cp/ChangeLog:
* cp-tree.h (class cp_expr): New class.
(finish_parenthesized_expr): Convert return type and param to
cp_expr.
(perform_koenig_lookup): Convert return type and param from tree
to cp_expr.
(finish_increment_expr): Likewise.
(finish_unary_op_expr): Likewise.
(finish_id_expression): Likewise for return type.
(build_class_member_access_expr): Likewise for param.
(finish_class_member_access_expr): Likewise.
(build_x_unary_op): Likewise.
(build_c_cast): New decl.
(build_x_modify_expr): Convert return type from tree to cp_expr.
* cvt.c (cp_convert_and_check): When warning about conversions,
attempt to use the location of "expr" if available, otherwise
falling back to the old behavior of using input_location.
* name-lookup.c (lookup_arg_dependent_1): Convert return type from
tree to cp_expr.
(lookup_arg_dependent): Likewise; also for local "ret".
* name-lookup.h (lookup_arg_dependent): Likewise for return type.
* parser.c (cp_lexer_previous_token): Skip past purged tokens.
(struct cp_parser_expression_stack_entry): Convert field "lhs" to
cp_expr.
(cp_parser_identifier): Likewise for return type.  Use cp_expr
ctor to preserve the token's location.
(cp_parser_string_literal): Likewise, building up a meaningful
location for the case where a compound string literal is built by
concatentation.
(cp_parser_userdef_char_literal): Likewise for return type.
(cp_parser_userdef_numeric_literal): Likewise.
(cp_parser_statement_expr): Convert return type to cp_expr.
Generate a suitable location for the expr and return it via the
cp_expr ctor.
(cp_parser_fold_expression): Convert return type to cp_expr.
(cp_parser_primary_expression): Likewise, and for locals "expr",
"lam", "id_expression", "decl".
Use cp_expr ctor when parsing literals, to preserve the spelling
location of the token.  Preserve the locations of parentheses.
Preserve location when calling objc_lookup_ivar.
Preserve the location for "this" tokens.  Generate suitable
locations for "__builtin_va_arg" constructs and for
Objective C 2.0 dot-syntax.  Set the location for the result of
finish_id_expression.
(cp_parser_primary_expression): Convert return type from tree to
cp_expr.
(cp_parser_id_expression): Likewise.
(cp_parser_unqualified_id): Likewise.  Also for local "id".
(cp_parser_postfix_expression): Likewise, also for local
"postfix_expression".  Generate suitable locations for
C++-style casts, "_Cilk_spawn" constructs.  Convert local
"initializer" to cp_expr and use it to preserve the location of
compound literals.  Capture the location of the closing
parenthesis of a call site via
cp_parser_parenthesized_expression_list, and use it to build
a source range for a call.  Use cp_expr in ternary expression.
(cp_parser_postfix_dot_deref_expression): Convert param from tree to
cp_expr.  Generate and set a location.
(cp_parser_parenthesized_expression_list): Add "close_paren_loc"
out-param, and write back to it.
(cp_parser_unary_expression): Convert return type from tree to
cp_expr.  Also for locals "cast_expression" and "expression".
Generate and use suitable locations for addresses of
labels and for cast expressions.  Call cp_expr::set_location where
necessary.  Preserve the locations of negated numeric literals.
(cp_parser_new_expression): Generate meaningful locations/ranges.
(cp_parser_cast_expression): Convert return type from tree to
cp_expr; also for local "expr".  Use the paren location to generate a
meaningful range for the expression.
(cp_parser_binary_expression): Convert return type from tree to
cp_expr; also for local "rhs".  Generate a meaningful location
for the expression, and use it.  Replace call to
protected_set_expr_location by converting a build2 to a build2_loc
and using the location in the call to build_x_binary_op, adding a
cp_expr::set_location to the latter case.
(cp_parser_question_colon_clause): Convert param from tree to
cp_expr; also for local "assignment_expr".  Set the spelling range
of the expression.
(cp_parser_assignment_expression): Likewise for return type and
locals "expr" and "rhs".  Build a meaningful spelling range for
the expression.  Remove saving of input_location in favor of a
call to cp_expr::set_location.
(cp_parser_expression): Convert return type and locals
"expression" and "assignment_expression" to cp_expr.  Build a
meaningful spelling range for assignment expressions.
(cp_parser_constant_expression): Likewise for return type and
local "expression".
(cp_parser_builtin_offsetof): Convert return type and local "expr"
to cp_expr.  Generate suitable locations.
(cp_parser_lambda_expression): Convert return return type to
cp_expr.
(cp_parser_operator_function_id): Likewise.
(cp_parser_operator): Likewise.  Generate a meaningful range,
using cp_expr's ctor to return it.
(cp_parser_template_id): When converting a token to
CPP_TEMPLATE_ID, update the location.
(cp_parser_initializer_clause): Convert return type and local
"initializer" to cp_expr.
(cp_parser_braced_list): Likewise for return type.  Generate
suitable locations.
(cp_parser_lookup_name): Likewise for return type.  Use cp_expr's
ctor to preserve the location_t of the name.
(cp_parser_simple_cast_expression): Likewise for return type.
(cp_parser_functional_cast): Convert return type and local "cast"
to cp_expr.  Generate suitable locations.
(cp_parser_objc_expression): Convert return type to cp_expr.k  Generate
(cp_parser_objc_message_expression): Generate suitable locations.
(cp_parser_objc_encode_expression): Convert return type to
cp_expr.  Generate suitable locations.
(cp_parser_objc_protocol_expression): Generate suitable locations.
(cp_parser_objc_selector_expression): Generate suitable locations.
(cp_parser_omp_for_cond): Attempt to use the location
of "cond" for the binary op.
(cp_parser_transaction_expression): Issue the tm-not-enabled error
at the location of the __transaction_foo token, rather than at
input_location.
* semantics.c (finish_parenthesized_expr): Convert return type and
param to cp_expr.  Preserve location.
(perform_koenig_lookup): Likewise for return type
and param.
(finish_increment_expr): Likewise.  Generate suitable locations.
(finish_unary_op_expr): Likewise for return type and local "result".
Generate suitable locations.
(finish_id_expression): Convert return type to cp_expr and use
cp_expr ctor to preserve location information.
* typeck.c (build_class_member_access_expr): Convert param to
cp_expr.
(finish_class_member_access_expr): Likewise.
(cp_build_binary_op): Convert a build2 to a build2_loc.
(build_x_unary_op): Convert param from tree to cp_expr.
(build_nop): Preserve the location of EXPR.
(build_c_cast): Provide an overloaded variant that takes a cp_expr
and returns a cp_expr.
(build_x_modify_expr): Convert return type from tree to cp_expr.

gcc/testsuite/ChangeLog:
* g++.dg/cpp0x/nsdmi-template14.C: Move dg-error directive.
* g++.dg/gomp/loop-1.C: Update dg-error locations.
* g++.dg/plugin/diagnostic-test-expressions-1.C: New file, adapted
from gcc.dg/plugin/diagnostic-test-expressions-1.c.
* g++.dg/plugin/plugin.exp (plugin_test_list): Add the above.
* g++.dg/template/crash55.C: Update dg-error directives.
* g++.dg/template/pseudodtor3.C: Update column numbers in dg-error
directives.
* g++.dg/template/pr64100.C: Update location of dg-error
directive.
* g++.dg/template/ref3.C: Add XFAIL (PR c++/68699).
* g++.dg/ubsan/pr63956.C: Update dg directives to reflect
improved location information.
* g++.dg/warn/pr35635.C (func3): Update location of a
dg-warning.
* g++.dg/warn/Wconversion-real-integer2.C: Update location of
dg-warning; add a dg-message.
* obj-c++.dg/plugin/diagnostic-test-expressions-1.mm: New file,
based on objc.dg/plugin/diagnostic-test-expressions-1.m.
* obj-c++.dg/plugin/plugin.exp: New file, based on
objc.dg/plugin/plugin.exp.

From-SVN: r231293

8 years agore PR middle-end/68656 (warning about disabled var-tracking uses odd location info)
Jakub Jelinek [Fri, 4 Dec 2015 18:04:06 +0000 (19:04 +0100)]
re PR middle-end/68656 (warning about disabled var-tracking uses odd location info)

PR c/68656
* toplev.c (init_asm_output): Pass UNKNOWN_LOCATION instead of
input_location to inform.
(process_options): Use warning_at (UNKNOWN_LOCATION instead of
warning ( and error_at (UNKNOWN_LOCATION instead of error (.
Pass UNKNOWN_LOCATION instead of input_location to fatal_error.

* gcc.target/i386/pr65044.c: Expect error on line 0 rather than
line 1.
* g++.dg/opt/pr34036.C: Expect warning on line 0 rather than line 1.
* gcc.dg/tree-ssa/pr23109.c: Likewise.
* gcc.dg/tree-ssa/recip-5.c: Likewise.
* gcc.dg/pr33007.c: Likewise.

From-SVN: r231292

8 years ago* ipa-inline.c (can_inline_edge_p) Use merged_comdat.
Jan Hubicka [Fri, 4 Dec 2015 18:02:26 +0000 (19:02 +0100)]
* ipa-inline.c (can_inline_edge_p) Use merged_comdat.

* cgraphclones.c (cgraph_node::create_clone): Use merged_comdat.
* cgraph.c (cgraph_node::dump): Dump merged_comdat.
* ipa-icf.c (sem_function::merge): Drop merged_comdat when merging
comdat and non-comdat.
* cgraph.h (cgraph_node): Rename merged to merged_comdat.
* ipa-inline-analysis.c (simple_edge_hints): Check both merged_comdat
and icf_merged.

* lto-symtab.c (lto_cgraph_replace_node): Update code computing
merged_comdat.

From-SVN: r231291

8 years agoc-common.c (maybe_warn_shift_overflow): Warn on all overflows if shifting 1 out of...
Paolo Bonzini [Fri, 4 Dec 2015 17:43:53 +0000 (17:43 +0000)]
c-common.c (maybe_warn_shift_overflow): Warn on all overflows if shifting 1 out of the sign bit.

gcc:
2015-12-04  Paolo Bonzini  <bonzini@gnu.org>

* c-family/c-common.c (maybe_warn_shift_overflow): Warn on all
overflows if shifting 1 out of the sign bit.

gcc/testsuite:
2015-12-04  Paolo Bonzini  <bonzini@gnu.org>

* c-c++-common/Wshift-overflow-1.c: Test shifting 1 out of the sign bit.
* c-c++-common/Wshift-overflow-2.c: Test shifting 1 out of the sign bit.
* c-c++-common/Wshift-overflow-3.c: Test shifting 1 out of the sign bit.
* c-c++-common/Wshift-overflow-4.c: Test shifting 1 out of the sign bit.
* c-c++-common/Wshift-overflow-6.c: Test shifting 1 out of the sign bit.
* c-c++-common/Wshift-overflow-7.c: Test shifting 1 out of the sign bit.

From-SVN: r231290

8 years agoPR libstdc++/57060 cope with invalid thread IDs
Jonathan Wakely [Fri, 4 Dec 2015 17:32:40 +0000 (17:32 +0000)]
PR libstdc++/57060 cope with invalid thread IDs

PR libstdc++/57060
* include/std/thread (operator==(thread::id, thread::id)): Do not use
__gthread_equal.
(operator<(thread::id, thread::id)): Add comment.
(this_thread::get_id()): Do not use __gthread_self for single-threaded
programs using glibc.
* testsuite/30_threads/this_thread/57060.cc: New.

From-SVN: r231289

8 years agors6000: Clean up the cstore code a bit
Segher Boessenkool [Fri, 4 Dec 2015 17:28:54 +0000 (18:28 +0100)]
rs6000: Clean up the cstore code a bit

"register_operand" was a bit confusing.  Also some other minor cleanups.

* (cstore<mode>4_unsigned): Use gpc_reg_operand instead of
register_operand.  Remove empty constraints.  Use std::swap.
(cstore_si_as_di, cstore<mode>4_signed_imm,
cstore<mode>4_unsigned_imm, cstore<mode>4 for GPR): Use
gpc_reg_operand instead of register_operand.
(cstore<mode>4 for FP): Use gpc_reg_operand instead of
register_operand.  Remove empty constraints.

From-SVN: r231287

8 years agogcc * config.gcc (extra_gcc_objs): Define for MSP430.
Nick Clifton [Fri, 4 Dec 2015 17:24:30 +0000 (17:24 +0000)]
gcc * config.gcc (extra_gcc_objs): Define for MSP430.

        * common/config/msp430/msp430-common.c (msp430_handle_option):
Pass both -mmcu and -mcpu on to the back end if they are both
defined.
* config/msp430/msp430.c (hwmult_name): New function.
        (msp430_option_override): If an unrecognised MCU name is
detected only warn if the user has not provided suitable
        -mhwmult and -mcpu options.  Use msp430_warn_mcu to control
warning messages.  Generate warnings about conflicts between
-mmcu and -mcpu and -mhwmult options.
If neither -mcpu nor -mmcu have been specified but -mhwmult=
f5series has the select the 430X isa.
(msp430_no_hwmult): If -mmcu has not been specified and
msp430_hwmult_type is AUTO then return true.
* config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Define.
(LIB_SPEC): Add hardware multiply library selection.
* config/msp430/t-msp430: Delete hardware multiply multilibs.
Add rule to build driver-msp430.o
* config/msp430/driver-msp430.c: New file.
* config/msp430/msp430.opt (warn-mcu): New option.
* doc/invoke.texi: Update description of -mhwmult=auto.
        Document -mwarn-mcu option.

tests * gcc.target/msp430/msp_abi_div_funcs.c: New test.
* gcc.target/msp430/mul_main.h: New test support file.
* gcc.target/msp430/mul_none.c: New test.
* gcc.target/msp430/mul_16bit.c: New test.
* gcc.target/msp430/mul_32bit.c: New test.
* gcc.target/msp430/mul_f5.c: New test.

libgcc * config/msp430/mpy.c (__mulhi3): Use a faster algorithm.
Allow for the second argument being negative.
* config.host (extra_parts): Define for MSP430.  Create separate
libraries for each of the hardware multiply formats.
* config/msp430/lib2hw_mul.S: Build only the multiply routines
that are needed.
* config/msp430/lib2mul.c: Likewise.
* config/msp430/t-msp430 (LIB2ADD): Remove lib2hw_mul.S.
Add rules to build hardware multiply libraries.
* config/msp430/lib2divSI.c: (__mspabi_divlu): Alias for
__mspabi_divul function.
(__mspabi_divllu): New stub function.

From-SVN: r231286

8 years agoI really do hate this keyboard.
Segher Boessenkool [Fri, 4 Dec 2015 17:22:38 +0000 (18:22 +0100)]
I really do hate this keyboard.

From-SVN: r231285

8 years agors6000: Implement cstore for signed Pmode register compares
Segher Boessenkool [Fri, 4 Dec 2015 17:21:49 +0000 (18:21 +0100)]
rs6000: Implement cstore for signed Pmode register compares

This implements cstore for the last case we do not yet handle, using
the superopt algo from the venerable CWG.  The only integer cases we
do still not handle after this are for -m32 -mpowerpc64.

* (cstore<mode>4_signed): New expander.
(cstore<mode>4): Call it.

From-SVN: r231284

8 years ago* tree-tailcall.c (find_tail_calls): Ignore GIMPLE_NOPs.
Jakub Jelinek [Fri, 4 Dec 2015 16:40:05 +0000 (17:40 +0100)]
* tree-tailcall.c (find_tail_calls): Ignore GIMPLE_NOPs.

From-SVN: r231282

8 years agore PR fortran/68684 (gcc/fortran/resolve.c:8748: bad if test ?)
Steven G. Kargl [Fri, 4 Dec 2015 16:37:54 +0000 (16:37 +0000)]
re PR fortran/68684 (gcc/fortran/resolve.c:8748: bad if test ?)

2015-12-04  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/68684
* resolve.c (resolve_lock_unlock_event): Fix logic faux pas.

From-SVN: r231281

8 years agore PR tree-optimization/68680 (On-stack VLA does not cause instrumentation with ...
Jakub Jelinek [Fri, 4 Dec 2015 16:32:22 +0000 (17:32 +0100)]
re PR tree-optimization/68680 (On-stack VLA does not cause instrumentation with -fstack-protector)

PR tree-optimization/68680
* calls.c (special_function_p): Return ECF_MAY_BE_ALLOCA for
BUILT_IN_ALLOCA{,_WITH_ALIGN}.  Don't check for __builtin_alloca
by name.

* gcc.target/i386/pr68680.c: New test.

From-SVN: r231279

8 years agore PR tree-optimization/68671 (gcc.dg/torture/pr66952.c FAILs with -fno-tree-dce)
Jakub Jelinek [Fri, 4 Dec 2015 16:23:27 +0000 (17:23 +0100)]
re PR tree-optimization/68671 (gcc.dg/torture/pr66952.c FAILs with -fno-tree-dce)

PR tree-optimization/68671
* tree-ssa-reassoc.c (maybe_optimize_range_tests): For basic
blocks starting with the successor of first bb we've modified
and ending with last_bb call reset_flow_sensitive_info_in_bb.

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

From-SVN: r231278

8 years agotree-ssa-reassoc.c (maybe_optimize_range_tests): Return boolean indicating if a gimpl...
Jeff Law [Fri, 4 Dec 2015 16:19:30 +0000 (09:19 -0700)]
tree-ssa-reassoc.c (maybe_optimize_range_tests): Return boolean indicating if a gimple conditional was optimized to true/false.

* tree-ssa-reassoc.c (maybe_optimize_range_tests): Return boolean
indicating if a gimple conditional was optimized to true/false.
(reassociate_bb): Bubble up return value from
maybe_optimize_range_tests.
(do_reassoc): Similarly, but for reassociate_bb.
(execute_reassoc): Return TODO_cleanup_cfg as needed.

* gcc.dg/tree-ssa/reassoc-43.c: New test.

From-SVN: r231277

8 years ago[AArch64] Don't allow -mgeneral-regs-only to change the .arch assembler directives
Kyrylo Tkachov [Fri, 4 Dec 2015 15:02:42 +0000 (15:02 +0000)]
[AArch64] Don't allow -mgeneral-regs-only to change the .arch assembler directives

* config/aarch64/aarch64.c (aarch64_override_options_internal):
Do not alter target_flags due to TARGET_GENERAL_REGS_ONLY_P.
* doc/invoke.texi (AArch64 options): Mention that -mgeneral-regs-only
does not affect the assembler directives.

* gcc.target/aarch64/mgeneral-regs_4.c: New test.

From-SVN: r231275