Jan Hubicka [Tue, 8 Dec 2015 20:46:42 +0000 (21:46 +0100)]
re PR lto/61886 (LTO breaks fread with _FORTIFY_SOURCE=2)
PR ipa/61886
* lto-partition.c (add_symbol_to_partition_1): Transparent aliases
are not part of the definition.
(contained_in_symbol): Likewise.
(promote_symbol): When promoting a symbol also promote all transparent
aliases.
(rename_statics): Weakref needs unique name, too.
From-SVN: r231425
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
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
Uros Bizjak [Tue, 8 Dec 2015 18:42:15 +0000 (19:42 +0100)]
* testsuite/ChangeLog: Fix last entry.
From-SVN: r231420
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
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
Eric Botcazou [Tue, 8 Dec 2015 17:08:18 +0000 (17:08 +0000)]
* gcc.dg/sso-9.c (foo): Robustify trick.
From-SVN: r231416
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
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
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
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
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
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
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
Bernd Schmidt [Tue, 8 Dec 2015 13:35:46 +0000 (13:35 +0000)]
Add file missing from earlier commit.
From-SVN: r231407
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
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
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
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
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
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
Eric Botcazou [Tue, 8 Dec 2015 09:01:58 +0000 (09:01 +0000)]
* doc/invoke.texi (SPARC options): Fix typo.
From-SVN: r231399
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
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
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
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
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
GCC Administrator [Tue, 8 Dec 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r231391
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Martin Liska [Mon, 7 Dec 2015 15:35:25 +0000 (16:35 +0100)]
Fix changelog entry and add pr66896.C.
From-SVN: r231365
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
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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Mon, 7 Dec 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r231347
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
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
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
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
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
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
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
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
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
GCC Administrator [Sun, 6 Dec 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r231326
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
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
David Edelsohn [Sat, 5 Dec 2015 12:55:43 +0000 (12:55 +0000)]
* gcc.target/powerpc/recip-sqrtf.c: New test.
From-SVN: r231318
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
GCC Administrator [Sat, 5 Dec 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r231314
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
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
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
Nathan Sidwell [Fri, 4 Dec 2015 19:58:43 +0000 (19:58 +0000)]
* gcc.dg/vla-24.c: Requires alloca.
From-SVN: r231303
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
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
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
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
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
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
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
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
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
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
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
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
Segher Boessenkool [Fri, 4 Dec 2015 17:22:38 +0000 (18:22 +0100)]
I really do hate this keyboard.
From-SVN: r231285
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
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
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
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
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
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