platform/upstream/gcc.git
8 years agocgraph.c (cgraph_node::verify_node): Compare against builtin by using DECL_BUILT_IN_C...
Richard Biener [Mon, 25 Jul 2016 12:35:08 +0000 (12:35 +0000)]
cgraph.c (cgraph_node::verify_node): Compare against builtin by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.

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

* cgraph.c (cgraph_node::verify_node): Compare against builtin
by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
* tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
* tree-streamer.h (streamer_handle_as_builtin_p): Remove.
(streamer_get_builtin_tree): Likewise.
(streamer_write_builtin): Likewise.
* lto-streamer.h (LTO_builtin_decl): Remove.
* lto-streamer-in.c (lto_read_tree_1): Remove assert.
(lto_input_scc): Remove LTO_builtin_decl handling.
(lto_input_tree_1): Liekwise.
* lto-streamer-out.c (lto_output_tree_1): Remove special
handling of builtins.
(DFS::DFS): Likewise.
* tree-streamer-in.c (streamer_get_builtin_tree): Remove.
* tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
assert.
(streamer_write_builtin): Remove.

lto/
* lto.c (compare_tree_sccs_1): Remove streamer_handle_as_builtin_p uses.
(unify_scc): Likewise.
(lto_read_decls): Likewise.

From-SVN: r238709

8 years agoFix tests for targets with sizeof(int) != 32.
Senthil Kumar Selvaraj [Mon, 25 Jul 2016 11:55:45 +0000 (11:55 +0000)]
Fix tests for targets with sizeof(int) != 32.

gcc/testsuite/

* gcc.dg/torture/pr69352.c (foo): Cast to intptr_t instead of long.
* gcc.dg/torture/pr69771.c: Require int32plus.
* gcc.dg/torture/pr71866.c (inb): Add cast to intptr_t.

From-SVN: r238708

8 years agoDon't call get_working_sets w/ LTO and -fauto-profile (PR
Martin Liska [Mon, 25 Jul 2016 11:28:52 +0000 (13:28 +0200)]
Don't call get_working_sets w/ LTO and -fauto-profile (PR

* lto-cgraph.c (input_symtab): Don't call get_working_sets
if flag_auto_profile is set to true.

From-SVN: r238707

8 years agoHandle loops with loop->latch == NULL (PR gcov-profile/71868)
Martin Liska [Mon, 25 Jul 2016 10:56:08 +0000 (12:56 +0200)]
Handle loops with loop->latch == NULL (PR gcov-profile/71868)

PR gcov-profile/71868
* cfgloopanal.c (expected_loop_iterations_unbounded): When we
have a function with multiple latches, count them all.

From-SVN: r238706

8 years agoFix memory leak introduced in r238336
Martin Liska [Mon, 25 Jul 2016 10:52:30 +0000 (12:52 +0200)]
Fix memory leak introduced in r238336

* tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.

From-SVN: r238705

8 years agoCall get_ops just for SSA_NAMEs (PR tree-optimization/71987)
Martin Liska [Mon, 25 Jul 2016 10:50:30 +0000 (12:50 +0200)]
Call get_ops just for SSA_NAMEs (PR tree-optimization/71987)

PR tree-optimization/71987
* tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
just for SSA_NAMEs. Fix GNU coding style.
* gcc.dg/torture/pr71987.c: New test.

From-SVN: r238704

8 years agoUse std::mt19937, std::thread and std::atomic to simplify tests
Jonathan Wakely [Mon, 25 Jul 2016 10:31:53 +0000 (11:31 +0100)]
Use std::mt19937, std::thread and std::atomic to simplify tests

* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: Use
std::mt19937, std::thread and std::atomic to simplify test.
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.

From-SVN: r238703

8 years agoAdapt the numbering scheme (PR gcov-profile/64874)
Martin Liska [Mon, 25 Jul 2016 08:42:42 +0000 (10:42 +0200)]
Adapt the numbering scheme (PR gcov-profile/64874)

PR gcov-profile/64874
* gcov-io.h: Update command about file format.
* gcov-iov.c (main): Adapt the numbering scheme.

From-SVN: r238702

8 years agoRevert 2015-11-09 sanitizer/obstack configury
Alan Modra [Mon, 25 Jul 2016 01:13:36 +0000 (10:43 +0930)]
Revert 2015-11-09 sanitizer/obstack configury

The 2015-11-23 sanitizer merge from upstream lost the changes from
f6528435 to sanitizer_common/sanitizer_common_interceptors.inc, which
made use of _OBSTACK_SIZE_T.  So the configury changes to define
_OBSTACK_SIZE_T don't do anything.  This wasn't such a bad thing
anyway..  The configure test wrongly adds -I${srcdir}/../include,
effectively resulting in a test of libiberty/obstack rather than libc
obstack support, and it's the latter that asan and tsan need to work
with.

So, remove the useless configure test.  Upstream santizer project has
been made aware of the problem if glibc obstack support is ever
updated.  Bootsrapped etc. x86_64-linux and committed as obvious.

Revert 2015-11-09  Alan Modra  <amodra@gmail.com>
* configure.ac: Don't substitute OBSTACK_DEFS.
* asan/Makefile.am: Remove OBSTACK_DEFS from DEFS.
* tsan/Makefile.am: Likewise.
* configure: Regenerate.
* Makefile.in: Regenerate.
* asan/Makefile.in: Regenerate.
* interception/Makefile.in: Regenerate.
* libbacktrace/Makefile.in: Regenerate.
* lsan/Makefile.in: Regenerate.
* sanitizer_common/Makefile.in: Regenerate.
* tsan/Makefile.in: Regenerate.
* ubsan/Makefile.in: Regenerate.

From-SVN: r238701

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

From-SVN: r238700

8 years agoPR c++/71515 - typename in partial specialization
Jason Merrill [Sun, 24 Jul 2016 23:40:05 +0000 (19:40 -0400)]
PR c++/71515 - typename in partial specialization

* pt.c (resolve_typename_type): Try to avoid calling
currently_open_class.

From-SVN: r238696

8 years agore PR tree-optimization/66726 (missed optimization, factor conversion out of COND_EXPR)
Kugan Vivekanandarajah [Sun, 24 Jul 2016 12:47:29 +0000 (12:47 +0000)]
re PR tree-optimization/66726 (missed optimization, factor conversion out of COND_EXPR)

gcc/ChangeLog:

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

PR middle-end/66726
* tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
whose result is used in PHI.
(final_range_test_p): Likewise.
(maybe_optimize_range_tests): Likewise.

From-SVN: r238695

8 years agoPR c++/66617 - virtual base list-initialization
Jason Merrill [Sun, 24 Jul 2016 02:59:34 +0000 (22:59 -0400)]
PR c++/66617 - virtual base list-initialization

* call.c (add_list_candidates): Handle VTT parm.
(build_new_method_call_1): Likewise.

From-SVN: r238689

8 years agoPR c++/55922 - list-value-initialization of base
Jason Merrill [Sun, 24 Jul 2016 02:56:22 +0000 (22:56 -0400)]
PR c++/55922 - list-value-initialization of base

PR c++/63151
* init.c (expand_aggr_init_1): Handle list-initialization from {}.

From-SVN: r238688

8 years agoPR c++/70709 - zero-length array member
Jason Merrill [Sun, 24 Jul 2016 02:52:33 +0000 (22:52 -0400)]
PR c++/70709 - zero-length array member

* class.c (walk_subobject_offsets): Handle 0-length array.

From-SVN: r238687

8 years agoPR c++/70778 - member template template parameter
Jason Merrill [Sun, 24 Jul 2016 02:50:16 +0000 (22:50 -0400)]
PR c++/70778 - member template template parameter

* pt.c (tsubst): Also substitute into the template of a
BOUND_TEMPLATE_TEMPLATE_PARM.

From-SVN: r238686

8 years agoPR c++/71738 - nested template friend
Jason Merrill [Sun, 24 Jul 2016 02:39:41 +0000 (22:39 -0400)]
PR c++/71738 - nested template friend

* pt.c (lookup_template_class_1): Handle getting template from tsubst.

From-SVN: r238685

8 years agoPR c++/71350 - error recursion with initializer-list
Jason Merrill [Sun, 24 Jul 2016 02:35:37 +0000 (22:35 -0400)]
PR c++/71350 - error recursion with initializer-list

* decl.c (reshape_init_r): Check complain for missing braces warning.

From-SVN: r238684

8 years agoPR c++/71576 - bitfield and rvalue reference
Jason Merrill [Sun, 24 Jul 2016 02:25:36 +0000 (22:25 -0400)]
PR c++/71576 - bitfield and rvalue reference

* call.c (convert_like_real): Use lvalue_kind.

From-SVN: r238683

8 years agoPR c++/71748 - call to base destructor in template.
Jason Merrill [Sun, 24 Jul 2016 02:19:46 +0000 (22:19 -0400)]
PR c++/71748 - call to base destructor in template.

PR c++/52746
* pt.c (tsubst_baselink): Call
adjust_result_of_qualified_name_lookup for unqualified
destructors.

From-SVN: r238681

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

From-SVN: r238680

8 years agors6000-c.c (altivec_resolve_overloaded_builtin): Reformat two multi-line strings.
Michael Meissner [Sat, 23 Jul 2016 02:54:53 +0000 (02:54 +0000)]
rs6000-c.c (altivec_resolve_overloaded_builtin): Reformat two multi-line strings.

2016-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Reformat two multi-line strings.

From-SVN: r238675

8 years agoDaily bump.
GCC Administrator [Sat, 23 Jul 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r238674

8 years agore PR fortran/71935 (ICE is_c_interoperable(): gfc_simplify_expr failed)
Steven G. Kargl [Fri, 22 Jul 2016 18:53:11 +0000 (18:53 +0000)]
re PR fortran/71935 (ICE is_c_interoperable(): gfc_simplify_expr failed)

2016-07-22  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/71935
* check.c (is_c_interoperable): Simplify right expression.

2016-07-22  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/71935
* gfortran.dg/c_sizeof_1.f90: Move invalid code to ...
* gfortran.dg/c_sizeof_6.f90: here.  Test for error.
* gfortran.dg/pr71935.f90: New test.

From-SVN: r238665

8 years agoPR c++/71675 - __atomic_compare_exchange_n returns wrong type for typed enum
Martin Sebor [Fri, 22 Jul 2016 18:32:08 +0000 (18:32 +0000)]
PR c++/71675 - __atomic_compare_exchange_n returns wrong type for typed enum

gcc/c-family/ChangeLog:

PR c++/71675
* c-common.c (resolve_overloaded_builtin): Avoid converting
__atomic_compare_exchange_n return type to that of what its
first argument points to.

gcc/testsuite/ChangeLog:

PR c++/71675
* g++.dg/ext/atomic-3.C: New test.
* gcc.dg/atomic/pr71675.c: New test.

From-SVN: r238664

8 years agolibgo: update to go1.7rc3
Ian Lance Taylor [Fri, 22 Jul 2016 18:15:38 +0000 (18:15 +0000)]
libgo: update to go1.7rc3

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

From-SVN: r238662

8 years agoextend.texi (Compound Literals): Add '@' missed in last commit.
Martin Sebor [Fri, 22 Jul 2016 16:16:17 +0000 (16:16 +0000)]
extend.texi (Compound Literals): Add '@' missed in last commit.

gcc/ChangeLog:
* doc/extend.texi (Compound Literals): Add '@' missed in last commit.

From-SVN: r238652

8 years agoPR c/71560 - union compound literal initializes wrong union field
Martin Sebor [Fri, 22 Jul 2016 15:40:51 +0000 (15:40 +0000)]
PR c/71560 - union compound literal initializes wrong union field

gcc/ChangeLog:
* doc/extend.texi (Compound Literals): Correct and clarify.
(Cast to Union): Same.

From-SVN: r238651

8 years agors6000.c (rs6000_option_override_internal): Add comments to explain why certain error...
Kelvin Nilsen [Fri, 22 Jul 2016 15:13:20 +0000 (15:13 +0000)]
rs6000.c (rs6000_option_override_internal): Add comments to explain why certain error messages make mention of undocumented...

gcc/ChangeLog:

2016-07-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/rs6000.c (rs6000_option_override_internal): Add
comments to explain why certain error messages make mention of
undocumented options.
(rs6000_invalid_builtin): Change error messages to replace mention
of undocumented options with mention of the -mcpu=power9 option
that enables those undocumented options.
* config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
(RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
definition of this macro to correct an existing error.
* config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
* doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
descriptions of built-in functions so that they depend on
-mcpu=power9 instead of on the corresponding undocumented flags.
* doc/invoke.texi (Option Summary):  Remove all mention of newly
undocumented flags.
(IBM RS/6000 and PowerPC Options): Likewise.
* doc/md.texi (Constraints for Particuliar Machines): Remove all
mention of newly undocumented flags.

From-SVN: r238648

8 years agoMove allocator in std::string and RB tree move constructors
Jonathan Wakely [Fri, 22 Jul 2016 15:03:11 +0000 (16:03 +0100)]
Move allocator in std::string and RB tree move constructors

PR libstdc++/71964
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
* include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
* testsuite/21_strings/basic_string/allocator/71964.cc: New test.
* testsuite/23_containers/set/allocator/71964.cc: New test.

From-SVN: r238647

8 years agoipa-cp.c (determine_versionability): Do not create constprop clones, when target_clon...
Evgeny Stupachenko [Fri, 22 Jul 2016 15:00:42 +0000 (15:00 +0000)]
ipa-cp.c (determine_versionability): Do not create constprop clones, when target_clones attribute is set.

2016-07-22  Evgeny Stupachenko  <evstupac@gmail.com>

gcc/
* ipa-cp.c (determine_versionability): Do not create constprop clones,
when target_clones attribute is set.
gcc/testsuite/
* gcc.target/i386/mvc8.c: New test.

From-SVN: r238645

8 years agoc-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
Uros Bizjak [Fri, 22 Jul 2016 14:09:55 +0000 (16:09 +0200)]
c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,

c/ChangeLog:

* c-typeck.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,

c-family/ChangeLog:

* c-common.c: Use HOST_WIDE_INT_M1U instead of
~(unsigned HOST_WIDE_INT) 0.

From-SVN: r238643

8 years agocommon.opt (funsafe-loop-optimizations): Mark ignore.
Bin Cheng [Fri, 22 Jul 2016 13:25:59 +0000 (13:25 +0000)]
common.opt (funsafe-loop-optimizations): Mark ignore.

* common.opt (funsafe-loop-optimizations): Mark ignore.
* doc/invoke.texi (funsafe-loop-optimizations): Remove.
* loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
related code.
* tree-ssa-loop-niter.c (finite_loop_p): Ditto.
* config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.

From-SVN: r238642

8 years agotree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New Parameter.
Bin Cheng [Fri, 22 Jul 2016 13:22:03 +0000 (13:22 +0000)]
tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New Parameter.

* tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
Parameter.
* tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
Parameter.
(number_of_iterations_exit): Warn missed loop optimization for
possible infinite loops.

gcc/testsuite
* gcc.dg/tree-ssa/pr19210-1.c: Refine test strings.
* gcc.dg/tree-ssa/pr19210-2.c: Delete.

From-SVN: r238641

8 years agoSubject: [PATCH] rs6000: Fix logic for when to emit .machine (PR71216)
Segher Boessenkool [Fri, 22 Jul 2016 13:08:19 +0000 (15:08 +0200)]
Subject: [PATCH] rs6000: Fix logic for when to emit .machine (PR71216)

The current logic determining whether to use .machine in the generated
asm code puts it there if the compiler is not configured with a default
target cpu, _or_ no -mcpu= was given on the command line.  It should
be "and" instead.

PR target/71216
* config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
when to emit a ".machine" pseudo-op.

From-SVN: r238639

8 years agore PR fortran/71795 (Two Bugs in array constructors (optimization))
Thomas Koenig [Fri, 22 Jul 2016 10:38:32 +0000 (10:38 +0000)]
re PR fortran/71795 (Two Bugs in array constructors (optimization))

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

PR fortran/71795
* frontend-passes.c (combine_array_constructor):  Don't
do anything if the expression is inside an array iterator.

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

PR fortran/71795
* gfortran.dg/constructor_50.f90:  New test.

From-SVN: r238638

8 years agoConsider functions with xloc.file == NULL (PR
Martin Liska [Fri, 22 Jul 2016 10:19:57 +0000 (12:19 +0200)]
Consider functions with xloc.file == NULL (PR

PR gcov-profile/69028
PR gcov-profile/62047
* g++.dg/cilk-plus/pr69028.C: New test.
PR gcov-profile/69028
PR gcov-profile/62047
* cilk.c (create_cilk_helper_decl): Set location of a new decl
to the current_function_decl.
PR gcov-profile/69028
PR gcov-profile/62047
* coverage.c (coverage_compute_lineno_checksum): Do not
calculate checksum for fns w/o xloc.file.
(coverage_compute_profile_id): Likewise.

From-SVN: r238637

8 years agolibcaf.h: Add parameter stat to caf_get() and caf_send()'s function prototypes.
Andre Vehreschild [Fri, 22 Jul 2016 09:58:50 +0000 (11:58 +0200)]
libcaf.h: Add parameter stat to caf_get() and caf_send()'s function prototypes.

libgfortran/ChangeLog:

2016-07-22  Andre Vehreschild  <vehre@gcc.gnu.org>

* caf/libcaf.h: Add parameter stat to caf_get() and
caf_send()'s function prototypes.
* caf/single.c (_gfortran_caf_get): Implement reporting
error using stat instead of abort().
(_gfortran_caf_send): Same.
(_gfortran_caf_sendget): Use NULL for stat when calling
caf_send().

gcc/testsuite/ChangeLog:

2016-07-22  Andre Vehreschild  <vehre@gcc.gnu.org>

* gfortran.dg/coarray_stat_2.f90: New test.

From-SVN: r238636

8 years agoexpr.c (gfc_find_stat_co): Fixed whitespaces.
Andre Vehreschild [Fri, 22 Jul 2016 09:46:54 +0000 (11:46 +0200)]
expr.c (gfc_find_stat_co): Fixed whitespaces.

gcc/fortran/ChangeLog:

2016-07-22  Andre Vehreschild  <vehre@gcc.gnu.org>

* expr.c (gfc_find_stat_co): Fixed whitespaces.
* gfortran.texi: Fixed typos and reversed meaning of caf_get()'s
src and dst description.
* trans-decl.c (gfc_build_builtin_function_decls): Fixed style
and corrected fnspec for caf functions.
* trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fixed style.
(conv_caf_send): Dito.

From-SVN: r238635

8 years agoavr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
Georg-Johann Lay [Fri, 22 Jul 2016 09:19:35 +0000 (09:19 +0000)]
avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...

* config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
(avr_secondary_reload): ...and implementation.
(avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
* config/avr/avr.md (reload_in<mode>): Remove insns.
(adjust_len) [lpm]: Remove insn attribute value.
* config/avr/predicates.md (flash_operand): Remove insn predicate.

From-SVN: r238634

8 years agoFix params.exp test-cases
Martin Liska [Fri, 22 Jul 2016 09:08:56 +0000 (09:08 +0000)]
Fix params.exp test-cases

From-SVN: r238633

8 years agoUse correct form of delete in libstdc++.exp
Jonathan Wakely [Fri, 22 Jul 2016 08:33:26 +0000 (09:33 +0100)]
Use correct form of delete in libstdc++.exp

* testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): Use
delete[] instead of delete.

From-SVN: r238632

8 years agoPR c++/69223 - ICE with deduced template return type.
Jason Merrill [Fri, 22 Jul 2016 03:45:54 +0000 (23:45 -0400)]
PR c++/69223 - ICE with deduced template return type.

* semantics.c (apply_deduced_return_type): Call
complete_type_or_else before building the new RESULT_DECL.

From-SVN: r238624

8 years agoPR c++/71274 - deprecated warning without use.
Jason Merrill [Fri, 22 Jul 2016 03:45:48 +0000 (23:45 -0400)]
PR c++/71274 - deprecated warning without use.

* decl2.c (maybe_instantiate_decl): Split out from mark_used.
(decl_constant_var_p): Use it instead.

From-SVN: r238623

8 years agoPR c++/71630 - extern variable template
Jason Merrill [Fri, 22 Jul 2016 03:45:43 +0000 (23:45 -0400)]
PR c++/71630 - extern variable template

* pt.c (instantiate_decl): Fix pattern_defined for namespace scope
variable templates.

From-SVN: r238622

8 years agoPR c++/71913 - missing copy elision with new.
Jason Merrill [Fri, 22 Jul 2016 03:45:37 +0000 (23:45 -0400)]
PR c++/71913 - missing copy elision with new.

* call.c (unsafe_copy_elision_p): It's OK to elide when
initializing an unknown object.

From-SVN: r238621

8 years agocall.c (build_over_call): Check unsafe_copy_elision_p even for trivial constructors.
Jason Merrill [Fri, 22 Jul 2016 03:45:30 +0000 (23:45 -0400)]
call.c (build_over_call): Check unsafe_copy_elision_p even for trivial constructors.

* call.c (build_over_call): Check unsafe_copy_elision_p even for
trivial constructors.
* method.c (do_build_copy_constructor): Don't copy tail padding
even in a trivial constructor.

From-SVN: r238620

8 years agocompiler: fix check for duplicate declaration
Ian Lance Taylor [Fri, 22 Jul 2016 00:21:51 +0000 (00:21 +0000)]
compiler: fix check for duplicate declaration

    The compiler check that issued a duplicate declaration error for
        a, a, a := 1, 2, 3
    was incorrectly issuing an error for
        a, a, a = 1, 2, 3
    While this is not particularly useful, it is valid Go.

    Test is https://golang.org/cl/25143.

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

From-SVN: r238618

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

From-SVN: r238617

8 years agovec-extract.h: New files to check the vec_extract built-in functions for all vector...
Michael Meissner [Fri, 22 Jul 2016 00:12:28 +0000 (00:12 +0000)]
vec-extract.h: New files to check the vec_extract built-in functions for all vector types...

2016-07-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/vec-extract.h: New files to check the
vec_extract built-in functions for all vector types, testing
accessing each element, both with constant and variable element
numbers.
* gcc.target/powerpc/vec-extract-v16qi.c: Likewise.
* gcc.target/powerpc/vec-extract-v16qiu.c: Likewise.
* gcc.target/powerpc/vec-extract-v2df.c: Likewise.
* gcc.target/powerpc/vec-extract-v2di.c: Likewise.
* gcc.target/powerpc/vec-extract-v4sf.c: Likewise.
* gcc.target/powerpc/vec-extract-v4si.c: Likewise.
* gcc.target/powerpc/vec-extract-v4siu.c: Likewise.
* gcc.target/powerpc/vec-extract-v8hi.c: Likewise.
* gcc.target/powerpc/vec-extract-v8hiu.c: Likewise.

From-SVN: r238613

8 years agoFix naming, qualification and broken test for propagate_const
Jonathan Wakely [Thu, 21 Jul 2016 19:39:03 +0000 (20:39 +0100)]
Fix naming, qualification and broken test for propagate_const

* include/experimental/propagate_const (propagate_const::__t): Rename
to _M_t and remove comment. Qualify std::move and std::forward.
* testsuite/experimental/propagate_const/cons/default.cc: Fix test.

From-SVN: r238611

8 years agoDefine missing delete operators in libstdc++ testsuite
Jonathan Wakely [Thu, 21 Jul 2016 19:38:57 +0000 (20:38 +0100)]
Define missing delete operators in libstdc++ testsuite

* testsuite/23_containers/vector/zero_sized_allocations.cc:
Define sized deallocation function.
* testsuite/util/testsuite_new_operators.h:
(operator delete(void*, const std::nothrow_t&)): Define nothrow
deallocation function.

From-SVN: r238610

8 years agoFix out-of-bound array accesses in libstdc++ testsuite
Jonathan Wakely [Thu, 21 Jul 2016 19:38:51 +0000 (20:38 +0100)]
Fix out-of-bound array accesses in libstdc++ testsuite

* testsuite/21_strings/basic_string/modifiers/append/char/1.cc: Fix
reads past the end of strings.
* testsuite/21_strings/basic_string/operations/compare/char/1.cc:
Likewise.
* testsuite/21_strings/char_traits/requirements/short/1.cc: Fix
invalid array accesses.
* testsuite/experimental/string_view/operations/compare/char/1.cc:
Fix read past the end of string.
* testsuite/util/testsuite_character.cc: Fix out-of-bounds write.

From-SVN: r238609

8 years agoFix missing returns in libstdc++ testsuite
Jonathan Wakely [Thu, 21 Jul 2016 19:38:44 +0000 (20:38 +0100)]
Fix missing returns in libstdc++ testsuite

* testsuite/24_iterators/container_access.cc: Fix missing returns.
* testsuite/24_iterators/range_access_cpp14.cc: Likewise.

From-SVN: r238608

8 years agoRemove memory leaks in libstdc++ testsuite
Jonathan Wakely [Thu, 21 Jul 2016 19:38:32 +0000 (20:38 +0100)]
Remove memory leaks in libstdc++ testsuite

* testsuite/18_support/new_delete_placement.cc: Don't allocate (and
leak) memory for arguments to placement delete.
* testsuite/20_util/addressof/1.cc: Don't leak memory.
* testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
* testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
Likewise.

From-SVN: r238607

8 years ago016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
Bernd Edlinger [Thu, 21 Jul 2016 19:11:26 +0000 (19:11 +0000)]
016-07-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR middle-end/71876
        * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
        attribute.
        * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
        * calls.c (special_function_p): Remove the special handling of the
        "__builtin_" prefix.

From-SVN: r238606

8 years ago016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
Bernd Edlinger [Thu, 21 Jul 2016 19:06:02 +0000 (19:06 +0000)]
016-07-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR middle-end/71876
        * calls.c (gimple_maybe_alloca_call_p): New function.  Return true
        if STMT may be an alloca call.
        (gimple_alloca_call_p, alloca_call_p): Return only true for the
        builtin alloca call.
        * calls.h (gimple_maybe_alloca_call_p): New function.
        * tree-inline.c (inline_forbidden_p_stmt): Use
        gimple_maybe_alloca_call_p here.

From-SVN: r238605

8 years agobackport: Makefile.am (myo_inc_dir): Remove.
Ilya Verbin [Thu, 21 Jul 2016 18:41:27 +0000 (18:41 +0000)]
backport: Makefile.am (myo_inc_dir): Remove.

Merge liboffloadmic from upstream

liboffloadmic/
* Makefile.am (myo_inc_dir): Remove.
(toolexeclib_LTLIBRARIES): Remove libmyo-client.la and
libmyo-service.la.
(liboffloadmic_cppflags): Remove -DMYO_SUPPORT.
(liboffloadmic_host_la_SOURCES): Remove offload_myo_host.cpp.
(liboffloadmic_target_la_SOURCES): Remove offload_myo_target.cpp.
(liboffloadmic_target_la_LIBADD): Remove libmyo-service.la.
(libmyo_client_la_SOURCES, libmyo_service_la_SOURCES): Remove.
(libmyo_client_la_DEPENDENCIES, libmyo_service_la_DEPENDENCIES): Remove.
(libmyo_client_la_CPPFLAGS, libmyo_service_la_CPPFLAGS): Remove.
(libmyo_client_la_LDFLAGS, libmyo_service_la_LDFLAGS): Remove.
* Makefile.in: Regenerate.
* doc/doxygen/header.tex: Merge from upstream, version 20160715
<https://openmprtl.org/sites/default/files/liboffload_oss_20160715.tgz>.
* runtime/cean_util.cpp: Likewise.
* runtime/cean_util.h: Likewise.
* runtime/coi/coi_client.cpp: Likewise.
* runtime/coi/coi_client.h: Likewise.
* runtime/coi/coi_server.cpp: Likewise.
* runtime/coi/coi_server.h: Likewise.
* runtime/compiler_if_host.cpp: Likewise.
* runtime/compiler_if_host.h: Likewise.
* runtime/compiler_if_target.cpp: Likewise.
* runtime/compiler_if_target.h: Likewise.
* runtime/dv_util.cpp: Likewise.
* runtime/dv_util.h: Likewise.
* runtime/liboffload_error.c: Likewise.
* runtime/liboffload_error_codes.h: Likewise.
* runtime/liboffload_msg.c: Likewise.
* runtime/liboffload_msg.h: Likewise.
* runtime/mic_lib.f90: Likewise.
* runtime/offload.h: Likewise.
* runtime/offload_common.cpp: Likewise.
* runtime/offload_common.h: Likewise.
* runtime/offload_engine.cpp: Likewise.
* runtime/offload_engine.h: Likewise.
* runtime/offload_env.cpp: Likewise.
* runtime/offload_env.h: Likewise.
* runtime/offload_host.cpp: Likewise.
* runtime/offload_host.h: Likewise.
* runtime/offload_iterator.h: Likewise.
* runtime/offload_myo_host.cpp: Likewise.
* runtime/offload_myo_host.h: Likewise.
* runtime/offload_myo_target.cpp: Likewise.
* runtime/offload_myo_target.h: Likewise.
* runtime/offload_omp_host.cpp: Likewise.
* runtime/offload_omp_target.cpp: Likewise.
* runtime/offload_orsl.cpp: Likewise.
* runtime/offload_orsl.h: Likewise.
* runtime/offload_table.cpp: Likewise.
* runtime/offload_table.h: Likewise.
* runtime/offload_target.cpp: Likewise.
* runtime/offload_target.h: Likewise.
* runtime/offload_target_main.cpp: Likewise.
* runtime/offload_timer.h: Likewise.
* runtime/offload_timer_host.cpp: Likewise.
* runtime/offload_timer_target.cpp: Likewise.
* runtime/offload_trace.cpp: Likewise.
* runtime/offload_trace.h: Likewise.
* runtime/offload_util.cpp: Likewise.
* runtime/offload_util.h: Likewise.
* runtime/ofldbegin.cpp: Likewise.
* runtime/ofldend.cpp: Likewise.
* runtime/orsl-lite/include/orsl-lite.h: Likewise.
* runtime/orsl-lite/lib/orsl-lite.c: Likewise.
* runtime/use_mpss2.txt: Remove.
* include/coi/common/COIEngine_common.h: Merge from upstream, MPSS
version 3.7.1
<http://registrationcenter-download.intel.com/akdlm/irc_nas/9226/
mpss-3.7.1-linux.tar>.
* include/coi/common/COIEvent_common.h: Likewise.
* include/coi/common/COIMacros_common.h: Likewise.
* include/coi/common/COIPerf_common.h: Likewise.
* include/coi/common/COIResult_common.h: Likewise.
* include/coi/common/COISysInfo_common.h: Likewise.
* include/coi/common/COITypes_common.h: Likewise.
* include/coi/sink/COIBuffer_sink.h: Likewise.
* include/coi/sink/COIPipeline_sink.h: Likewise.
* include/coi/sink/COIProcess_sink.h: Likewise.
* include/coi/source/COIBuffer_source.h: Likewise.
* include/coi/source/COIEngine_source.h: Likewise.
* include/coi/source/COIEvent_source.h: Likewise.
* include/coi/source/COIPipeline_source.h: Likewise.
* include/coi/source/COIProcess_source.h: Likewise.
* include/myo/myo.h: Remove.
* include/myo/myoimpl.h: Remove.
* include/myo/myotypes.h: Remove.
* plugin/Makefile.am (AM_LDFLAGS): Remove -lmyo-service.
* plugin/Makefile.in: Regenerate.
* plugin/libgomp-plugin-intelmic.cpp (LD_LIBRARY_PATH_ENV): Remove.
(MIC_LD_LIBRARY_PATH_ENV): Remove.
(init): Do not set MIC_LD_LIBRARY_PATH.  Now liboffloadmic uses only
LD_LIBRARY_PATH.
* plugin/offload_target_main.cpp: Update copyright years.
* runtime/emulator/coi_common.h: Likewise.
* runtime/emulator/coi_device.cpp: Likewise.
* runtime/emulator/coi_device.h: Likewise.
* runtime/emulator/coi_host.cpp: Likewise.
(COIBufferCreate): Allow COI_BUFFER_OPENCL.
(COIEngineGetInfo): Return COI_DEVICE_KNL instead of COI_ISA_x86_64.
* runtime/emulator/coi_host.h: Update copyright years.
* runtime/emulator/coi_version_asm.h: Likewise.
* runtime/emulator/coi_version_linker_script.map: Likewise.
* runtime/emulator/myo_client.cpp: Remove.
* runtime/emulator/myo_service.cpp: Remove.
* runtime/emulator/myo_service.h: Remove.
* runtime/emulator/myo_version_asm.h: Remove.
* runtime/emulator/myo_version_linker_script.map: Remove.

From-SVN: r238603

8 years agore PR c++/71728 (ICE with goto in statement-expression inside a condition)
Jakub Jelinek [Thu, 21 Jul 2016 18:22:32 +0000 (20:22 +0200)]
re PR c++/71728 (ICE with goto in statement-expression inside a condition)

PR c++/71728
* constexpr.c (potential_constant_expression_1) <case GOTO_EXPR>:
Replace assert with test, return false if the goto isn't break
or continue.  Formatting fix.

* g++.dg/other/pr71728.C: New test.

From-SVN: r238601

8 years agoFix build of spellcheck-tree.c with older gccs
David Malcolm [Thu, 21 Jul 2016 17:21:12 +0000 (17:21 +0000)]
Fix build of spellcheck-tree.c with older gccs

gcc/ChangeLog:
* spellcheck-tree.c (best_macro_match::best_macro_match):
Explictly specify the template arguments when invoking the base
class constructor, to help older C++ compilers.

From-SVN: r238598

8 years agore PR sanitizer/71953 (ICE using address sanitizers with PCH)
Jakub Jelinek [Thu, 21 Jul 2016 16:17:58 +0000 (18:17 +0200)]
re PR sanitizer/71953 (ICE using address sanitizers with PCH)

PR sanitizer/71953
* asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
before builtin_decl_implicit.

From-SVN: r238596

8 years ago[Patch 3/2 ifcvt costs] Don't expand a conditional move between identical sources
James Greenhalgh [Thu, 21 Jul 2016 15:41:59 +0000 (15:41 +0000)]
[Patch 3/2 ifcvt costs] Don't expand a conditional move between identical sources

gcc/

* optabs.c (emit_condiitonal_move): Short circuit for identical
sources.

From-SVN: r238595

8 years ago[Patch 2/2 ifcvt costs] Introduce a new cost model for ifcvt.
James Greenhalgh [Thu, 21 Jul 2016 15:40:24 +0000 (15:40 +0000)]
[Patch 2/2 ifcvt costs] Introduce a new cost model for ifcvt.

gcc/

* ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
max_seq_cost.  Removed fields: then_cost, else_cost, branch_cost.
(noce_conversion_profitable_p): New.
(noce_try_store_flag_constants): Use it.
(noce_try_addcc): Likewise.
(noce_try_store_flag_mask): Likewise.
(noce_try_cmove): Likewise.
(noce_try_cmove_arith): Likewise.
(bb_valid_for_noce_process_p): Add to the cost parameter rather than
overwriting it.
(noce_convert_multiple_sets): Move cost model to here, from...
(bb_ok_for_noce_convert_multiple_sets) ...here.
(noce_process_if_block): Update calls for above changes.
(noce_find_if_block): Record new noce_if_info parameters.

gcc/testsuite/

* gcc.dg/ifcvt-2.c: Use parameter to guide if-conversion heuristics.
* gcc.dg/ifcvt-3.c: Use parameter to guide if-conversion heuristics.
* gcc.dg/pr68435.c: Use parameter to guide if-conversion heuristics.
* gcc.dg/ifcvt-4.c: Use parameter to guide if-conversion heuristics.
* gcc.dg/ifcvt-5.c: Use parameter to guide if-conversion heuristics.

From-SVN: r238594

8 years ago[Patch 1/2 ifcvt costs] New target hook: max_noce_ifcvt_seq_cost
James Greenhalgh [Thu, 21 Jul 2016 15:37:50 +0000 (15:37 +0000)]
[Patch 1/2 ifcvt costs] New target hook: max_noce_ifcvt_seq_cost

gcc/

* target.def (max_noce_ifcvt_seq_cost): New.
* doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
* doc/tm.texi: Regenerate.
* targhooks.h (default_max_noce_ifcvt_seq_cost): New.
* targhooks.c (default_max_noce_ifcvt_seq_cost): New.
* params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
(PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
* doc/invoke.texi: Document new params.

From-SVN: r238593

8 years agore PR tree-optimization/71947 (x ^ y not folded to 0 if x == y by DOM)
Richard Biener [Thu, 21 Jul 2016 13:00:32 +0000 (13:00 +0000)]
re PR tree-optimization/71947 (x ^ y not folded to 0 if x == y by DOM)

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

PR tree-optimization/71947
* tree-vrp.c (extract_range_from_assert): Singleton symbolic
ranges have useful limit_vr information.

* gcc.dg/tree-ssa/vrp102.c: New testcase.

From-SVN: r238591

8 years agoDo not divide by zero in analyze_brprob.py
Martin Liska [Thu, 21 Jul 2016 12:53:24 +0000 (14:53 +0200)]
Do not divide by zero in analyze_brprob.py

* analyze_brprob.py: If there's no loop, do not calculate
average number of loop iterations.

From-SVN: r238590

8 years agofunction-tests.c (build_trivial_generic_function): Set BLOCK_SUPERCONTEXT of DECL_INI...
Richard Biener [Thu, 21 Jul 2016 12:25:00 +0000 (12:25 +0000)]
function-tests.c (build_trivial_generic_function): Set BLOCK_SUPERCONTEXT of DECL_INITIAL.

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

* function-tests.c (build_trivial_generic_function): Set
BLOCK_SUPERCONTEXT of DECL_INITIAL.
* omp-low.c (create_omp_child_function): Likewise.
(grid_expand_target_grid_body): Likewise.
* cgraphunit.c (init_lowered_empty_function): Likewise.
(cgraph_node::expand_thunk): Likewise.
* tree-parloops.c (create_loop_fn): Likewise.
* ipa.c (cgraph_build_static_cdtor_1): Likewise.

cp/
* vtable-class-hierarchy.c (vtv_generate_init_routine): Set
DECL_IGNORED_P.

java/
* jcf-parse.c (java_emit_static_constructor): Set
BLOCK_SUPERCONTEXT of DECL_INITIAL.

From-SVN: r238589

8 years agotree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo in comment.
Prathamesh Kulkarni [Thu, 21 Jul 2016 12:12:05 +0000 (12:12 +0000)]
tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo in comment.

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

* tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
in comment.

From-SVN: r238588

8 years agoSome patterns for moving one bit around by BST + BLD.
Georg-Johann Lay [Thu, 21 Jul 2016 11:00:56 +0000 (11:00 +0000)]
Some patterns for moving one bit around by BST + BLD.

* config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
(*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
(*insv.xor-extract, *insv.xor1-bit.0): New insns.
(adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
values for insn attribute.
* config/avr/avr.c (avr_out_insert_notbit): New function.
(avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
ADJUST_LEN_INSV_NOTBIT_0/_7.
* config/avr/avr-protos.h (avr_out_insert_notbit): New proto.

From-SVN: r238587

8 years agotree-chrec.c (convert_affine_scev): New parameter.
Bin Cheng [Thu, 21 Jul 2016 10:52:13 +0000 (10:52 +0000)]
tree-chrec.c (convert_affine_scev): New parameter.

* tree-chrec.c (convert_affine_scev): New parameter.  Pass new arg.
(chrec_convert_1, chrec_convert): Ditto.
* tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
* tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
* tree-vrp.c (adjust_range_with_scev): Ditto.
* tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
(scev_var_range_cant_overflow): New function.
(scev_probably_wraps_p): New parameter.  Call above function.
* tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.

gcc/testsuite
* gcc.dg/tree-ssa/scev-15.c: New.

From-SVN: r238586

8 years agotree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up by removing computati...
Bin Cheng [Thu, 21 Jul 2016 10:44:33 +0000 (10:44 +0000)]
tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up by removing computation of may_be_zero.

* tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
by removing computation of may_be_zero.

From-SVN: r238585

8 years ago[ARM] Fix PR target/59833
Aurelien Jarno [Thu, 21 Jul 2016 08:27:47 +0000 (08:27 +0000)]
[ARM] Fix PR target/59833

For Aurelien Jarno <aurelien@aurel32.net>

On ARM soft-float, the float to double conversion doesn't convert a sNaN
to qNaN as the IEEE Std 754 standard mandates:

"Under default exception handling, any operation signaling an invalid
operation exception and for which a floating-point result is to be
delivered shall deliver a quiet NaN."

Given the soft float ARM code ignores exceptions and always provides a
result, a float to double conversion of a signaling NaN should return a
quiet NaN. Fix this in extendsfdf2.

gcc/ChangeLog:

PR target/59833
* config/arm/ieee754-df.S (extendsfdf2): Convert sNaN to qNaN.

gcc/testsuite/ChangeLog:

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

From-SVN: r238584

8 years agovect-mask-store-move-1.c: XFAIL.
Bin Cheng [Thu, 21 Jul 2016 08:26:25 +0000 (08:26 +0000)]
vect-mask-store-move-1.c: XFAIL.

gcc/testsuite
* gcc.dg/vect/vect-mask-store-move-1.c: XFAIL.

From-SVN: r238583

8 years ago* tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
Jakub Jelinek [Thu, 21 Jul 2016 07:47:44 +0000 (09:47 +0200)]
* tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.

From-SVN: r238581

8 years agore PR libgomp/71941 (ICE with OpenMP tasks and queue)
Jakub Jelinek [Thu, 21 Jul 2016 07:02:04 +0000 (09:02 +0200)]
re PR libgomp/71941 (ICE with OpenMP tasks and queue)

PR c++/71941
* cp-gimplify.c (cp_genericize): For nested cp_genericize calls
save/restore bc_label array.

* g++.dg/gomp/pr71941.C: New test.

From-SVN: r238579

8 years agoPR c++/70781 - ICE on ill-formed lambda.
Jason Merrill [Thu, 21 Jul 2016 06:05:58 +0000 (02:05 -0400)]
PR c++/70781 - ICE on ill-formed lambda.

* parser.c (cp_parser_lambda_expression): Unset OK if there was an
error parsing the lambda-declarator.

From-SVN: r238563

8 years agoPR c++/71896 - constexpr pointer-to-member comparison.
Jason Merrill [Thu, 21 Jul 2016 06:05:51 +0000 (02:05 -0400)]
PR c++/71896 - constexpr pointer-to-member comparison.

* constexpr.c (cxx_eval_binary_expression): Handle comparison
between lowered and unlowered PTRMEM_CST.

From-SVN: r238562

8 years agoPR c++/70942 - generic lambda with auto&& parameter.
Jason Merrill [Thu, 21 Jul 2016 06:05:44 +0000 (02:05 -0400)]
PR c++/70942 - generic lambda with auto&& parameter.

* g++.dg/cpp1y/lambda-generic-conv3.C: New.

From-SVN: r238561

8 years agoPR c++/65168 - -Waddress in unevaluated context.
Jason Merrill [Thu, 21 Jul 2016 06:05:39 +0000 (02:05 -0400)]
PR c++/65168 - -Waddress in unevaluated context.

gcc/c-family/
* c-common.c (c_common_truthvalue_conversion): Check
c_inhibit_evaluation_warnings for warning about address of
reference.
gcc/cp/
* typeck.c (cp_truthvalue_conversion): Compare pointers to nullptr.
Don't set c_inhibit_evaluation_warnings.

From-SVN: r238560

8 years agoPR c++/71121 - -Waddress, constexpr, and PMFs.
Jason Merrill [Thu, 21 Jul 2016 06:05:33 +0000 (02:05 -0400)]
PR c++/71121 - -Waddress, constexpr, and PMFs.

* cp-gimplify.c (cp_fully_fold): First call maybe_constant_value.

From-SVN: r238559

8 years agoImproving concepts performance and diagnostics.
Andrew Sutton [Thu, 21 Jul 2016 06:05:24 +0000 (06:05 +0000)]
Improving concepts performance and diagnostics.

PR c++/67565
PR c++/67579
PR c++/71843
gcc/
* timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
for constraint satisfaction and subsumption.
* timevar.h (auto_timevar): New constructor that matches the push/pop
pattern of usage in pt.c.
gcc/cp/
* cp-tree.def (CHECK_CONSTR): New.
* cp-tree.h (CHECK_CONSTR_CONCEPT): New.
(CHECK_CONSTR_ARGS): New.
* constraint.cc (make_predicate_constraint): Remove in favor of
normalize_expression.
(resolve_constraint_check): Actually return error_mark_node when
resolution fails.
(resolve_variable_concept_check): Perform coercion as if processing
a template. Also return errors on resolution failure.
(lift_*): Remove all of these functions. Don't unnecessarily inline
concepts.
(learn_*): Add facilities to memoize implications for subsumption
during normalization.
(expanding_concept): New.
(expand_concept): New. Return the inlined and normalized definition
of a concept when needed.
(transform_*, xform_*): Rename to normalize_* to better reflect the
responsibility of those functions.
(normalize_template_id_expression): Check for non-boolean operands
when possible. Generate check constraints instead of normal variable
references.
(normalize_call_expression): Report errors when resolution fails.
(check_for_logical_overloads): Rewrite this check to more accurately
report the error.
(normalize_atom): Check for overloaded calls and invalid types before
determining if the expression refers to a concept.
(build_constraints): Don't cache normalized constraints or decmposed
assumptions.
(finish_shorthand_constraint): Return a normalized expression instead
of a predicate constraint.
(finish_template_introduction): Same.
(placeholder_extract_concept_and_args): Rewrite this since we only
ever get check constraints here.
(equivalent_placeholder_constraints): Rewrite in terms of check
constraints, and handle error_mark_nodes correctly.
(tsubst_check_constraint, tsubst_expr_constr, tsubst_type_constr)
(tsubst_implicit_conversion_constr)
(tsubst_argument_deduction_constr, tsubst_exception_constr)
(tsubst_parameterized_constraint, tsubst_constraint): New.
(tsbust_conjunection): Replace with tsubst_logical_operator and
actually generate the right kind of constraint.
(tsubst_requirement_body): Reverse the order of substituted arguments
so that they appear in the order written (helps diagnostics).
(satisfy_check_constraint): New.
(satisfy_conjunction): Simplify.
(satisfy_disjunction): Same.
(satisfy_constraint_1): Handle check constraints.
(eval_constr): New (private) global state.
(evaluating_constraints_sentinel): New. Manages eval_constr.
(satisfy_constraint): Add timing variables.
(satisfy_associated_constraints): Add hooks for memoization.
(evaluate_function_concept): Build a check constraint instead of
normalizing its definition.
(evaluate_variable_concept): Same.
(evaluate_constraint_expression): Normalize, but in the current
declaration processing context.
(evaluating_constraints_p): New.
(elide_constraint_failure_p): Actually emit constraint_thresh errors.
(diagnose_*): Remove artificial indentation. Add a new parameter to
each that tracks the current (complete) constraint prior to any
substitutions.
(diagnose_expression): Removed.
(diagnose_call_expression): Same.
(diagnose_template_id): Same.
(diagnose_template_id): New.
(diagnose_logical_constraint): New.
(diagnose_expression_constraint): Show the original expression.
(diagnose_type_constraint): Show the original type.
(diagnose_implicit_conversion_constraint): Be specific about
failures, don't re-diagnose a known-to-be-failed substitutions,
and manage elisions properly.
(diagnose_argument_deduction_constraint): Same.
(diagnose_exception_constraint): Same.
(diagnose_parameterized_constraint): Same.
(constraint_p): Allow EXPR_PACK_EXPANSION.
* logic.cc (next_by_distance): Removed. No longer used.
(any_p): Renamed from any_of.
(term_entry, term_hasher): New.
(term_list): Rewrite to include a hash table for quick lookup.
Also, make less stateful.
(proof_state): Extend to allow goals to be discharged once
satisfied.
(non_atomic_constraint_p): New.
(any_non_atomic_constraints_p): New.
(...rest...): Previous implementation completely replaced with an
iterative algorithm that opportunistically prunes the search space
before committing to using more memory.
* parser.c: (cp_parser_type_parameter): Normalize constraints.
(cp_parser_explicit_template_declaration): Same.
* pt.c: (finish_template_variable): Be less redundant with this error
message.
(template_args_equal): No longer static.
(tsubst_decl): Don't try to find specializations of variables that
have already been instantiated.
(build_non_dependent_expr): Avoid infinite recursion during concept
expansion.
(make_constrained_auto): Normalize constraints.
(do_auto_deduction): When doing auto deduction from a
partial-concept-id, be sure to include the explicit args checking
the constraints.
(constraint_sat_*): New. Memoize satisfied constraints.
(concept_spec_*): New. Memoize expressions associated with a concept
specialization.
(constraint_memos, concept_memos): New.
(lookup_constraint_satisfaction, memoize_constraint_satisfaction): New.
(lookup_concept_satisfaction, memoize_concept_satisfaction): New.
(get_concept_expansion, save_concept_expansion): New.
(hash_subsumption_args): New.
(comp_subsumption_args): New.
(subsumption_*): New. Memoize parts of the subsumption relation.
(lookup_subsumption_result, save_subsumption_result): New.
(init_constraint_processing): Initialize memo tables.
(get_constraints): Shortcut if !flag_concepts.
* decl.c (grokfndecl): Normalize constraints.
* error.c (dump_simple_decl): Print "concept" when appropriate.
(dump_function_decl): Same.
(dump_template_decl): Don't write requirements when we're not
printing the header.
(dump_expr): Handle fold expressions.
* cxx-pretty-print.c (cxx_pretty_printer::expression): Handle
fold expressions.
(get_fold_operator): New.
(pp_cxx_unary_left_fold_expression): New.
(pp_cxx_unary_right_fold_expression): New.
(pp_cxx_binary_fold_expression): New.
(pp_cxx_check_constraint): New.
(pp_cxx_*_constraint): Rewrite the grammar of internal constraints
to make them easier to read when debugging.
* search.c (accessible_p): Don't shortcut when evaluating constraints.
* tree.c (cp_tree_equal): Handle CHECK_CONSTR.

Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r238558

8 years agoDaily bump.
GCC Administrator [Thu, 21 Jul 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r238557

8 years agohwint.h (HOST_WIDE_INT_0): New define.
Uros Bizjak [Wed, 20 Jul 2016 21:59:44 +0000 (23:59 +0200)]
hwint.h (HOST_WIDE_INT_0): New define.

* hwint.h (HOST_WIDE_INT_0): New define.
(HOST_WIDE_INT_0U): Ditto.
* double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
* dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
* simplify-rtx.c: Ditto.
* tree-object-size.c: Ditto.

From-SVN: r238545

8 years agoC++ FE: handle misspelled identifiers and typenames
David Malcolm [Wed, 20 Jul 2016 18:42:11 +0000 (18:42 +0000)]
C++ FE: handle misspelled identifiers and typenames

gcc/cp/ChangeLog:
PR c/70339
PR c/71858
* name-lookup.c: Include gcc-rich-location.h, spellcheck-tree.h,
and parser.h.
(suggest_alternatives_for): If no candidates are found, try
lookup_name_fuzzy and report if if finds a suggestion.
(consider_binding_level): New function.
(lookup_name_fuzzy) New function.
* parser.c: Include gcc-rich-location.h.
(cp_lexer_next_token_is_decl_specifier_keyword): Move most of
logic into...
(cp_keyword_starts_decl_specifier_p): ...this new function.
(cp_parser_diagnose_invalid_type_name): When issuing
"does not name a type" errors, attempt to make a suggestion using
lookup_name_fuzzy.
* parser.h (cp_keyword_starts_decl_specifier_p): New prototype.
* search.c (lookup_field_fuzzy_info::fuzzy_lookup_field): Reject
types that are not CLASS_TYPE_P, rather than rejecting individual
tree codes.

gcc/testsuite/ChangeLog:
PR c/70339
PR c/71858
* g++.dg/spellcheck-identifiers.C: New test case, based on
gcc.dg/spellcheck-identifiers.c.
* g++.dg/spellcheck-identifiers-2.C: New test case, based on
gcc.dg/spellcheck-identifiers-2.c.
* g++.dg/spellcheck-typenames.C: New test case, based on
gcc.dg/spellcheck-typenames.c

From-SVN: r238538

8 years agoS/390: Remove mode size check in encode_section_info.
Andreas Krebbel [Wed, 20 Jul 2016 18:33:30 +0000 (18:33 +0000)]
S/390: Remove mode size check in encode_section_info.

With the last change the not-aligned symbol ref markers are always set
for modes with size zero.  This is wrong since for larl the size of
the access does not matter.  This patch removes that check entirely
from s390_encode_section_info.  Modes with a size of 0 get rejected in
s390_check_symref_alignment which is used for the load/store relative
instructions to check for natural alignment.

Bootstrapped and regression tested on s390 and s390x with
--with-arch=z900 and --with-arch=z13.

gcc/ChangeLog:

2016-07-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_encode_section_info): Remove mode size
check.

From-SVN: r238536

8 years agoDocument LWG DR 2684 status and regenerate libstdc++ manual
Jonathan Wakely [Wed, 20 Jul 2016 18:22:05 +0000 (19:22 +0100)]
Document LWG DR 2684 status and regenerate libstdc++ manual

* doc/xml/manual/intro.xml: Document DR 2684 status.
* doc/html/*: Regenerate.

From-SVN: r238535

8 years agoLWG 2441 Provide exact-width atomic typedefs
Jonathan Wakely [Wed, 20 Jul 2016 18:21:59 +0000 (19:21 +0100)]
LWG 2441 Provide exact-width atomic typedefs

* include/std/atomic (atomic_int8_t, atomic_uint8_t, atomic_int16_t)
(atomic_uint16_t, atomic_int32_t, atomic_uint32_t, atomic_int64_t)
(atomic_uint64_t): Define (LWG 2441).
* testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Remove empty
lines.
* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Test for
the new types.
* doc/xml/manual/intro.xml: Document DR 2441 status.

From-SVN: r238534

8 years agoLWG 2328 Rvalue stream extraction should use perfect forwarding
Jonathan Wakely [Wed, 20 Jul 2016 18:21:53 +0000 (19:21 +0100)]
LWG 2328 Rvalue stream extraction should use perfect forwarding

* include/std/istream (operator>>(basic_istream&&, _Tp&)): Adjust
to use perfect forwarding (LWG 2328).
* testsuite/27_io/rvalue_streams.cc: Test perfect forwarding.
* doc/xml/manual/intro.xml: Document DR 2328 status.

From-SVN: r238533

8 years agoUse static pointer to member when catching nullptr
Jonathan Wakely [Wed, 20 Jul 2016 18:21:48 +0000 (19:21 +0100)]
Use static pointer to member when catching nullptr

libstdc++-v3:

* libsupc++/pbase_type_info.cc (__pbase_type_info::__do_catch): Use
static objects for catching nullptr as pointer to member types.

gcc/testsuite:

* g++.dg/cpp0x/nullptr35.C: Change expected result for catching as
pointer to member function and also test catching by reference.

From-SVN: r238532

8 years agoS/390: Fix pr67443.c.
Dominik Vogt [Wed, 20 Jul 2016 17:11:37 +0000 (17:11 +0000)]
S/390: Fix pr67443.c.

The attached patch rewrites the pr67443.c testcase in a different way
so that the test still works with the changed allocation of globals
pinned to registers.  The test ist hopefully more robust now.

gcc/testsuite/ChangeLog:

2016-07-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc.target/s390/pr67443.c: Fix test case.

From-SVN: r238531

8 years agoS/390: Xfail some tests in insv-[12].c.
Dominik Vogt [Wed, 20 Jul 2016 17:09:03 +0000 (17:09 +0000)]
S/390: Xfail some tests in insv-[12].c.

The attached patch XFAILs some of the "insv" testcases as
discussed internally.  Tested on s390x biarch and s390.

gcc/testsuite/ChangeLog:

2016-07-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc.target/s390/insv-1.c: Xfail some tests.
* gcc.target/s390/insv-2.c: Likewise.

From-SVN: r238530

8 years agocse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
Uros Bizjak [Wed, 20 Jul 2016 15:47:33 +0000 (17:47 +0200)]
cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.

* cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
* combine.c: Use HOST_WIDE_INT_M1U instead of
~(unsigned HOST_WIDE_INT) 0.
* double-int.h: Ditto.
* dse.c: Ditto.
* dwarf2asm.c:Ditto.
* expmed.c: Ditto.
* genmodes.c: Ditto.
* match.pd: Ditto.
* read-rtl.c: Ditto.
* tree-ssa-loop-ivopts.c: Ditto.
* tree-ssa-loop-prefetch.c: Ditto.
* tree-vect-generic.c: Ditto.
* tree-vect-patterns.c: Ditto.
* tree.c: Ditto.

From-SVN: r238529

8 years agoavr.c (avr_legitimize_address): Force constant addresses outside [0,0xc0] into a...
Georg-Johann Lay [Wed, 20 Jul 2016 14:46:57 +0000 (14:46 +0000)]
avr.c (avr_legitimize_address): Force constant addresses outside [0,0xc0] into a register.

gcc/
* gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
constant addresses outside [0,0xc0] into a register.
(avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn.  And handle
cases where the base address register is unused after.
(avr_out_movhi_r_mr_reg_disp_tiny): Same.
(avr_out_movhi_mr_r_reg_disp_tiny): Same.
(avr_out_store_psi_reg_disp_tiny): Same.

gcc/testsuite/
* gcc.target/avr/torture/get-mem.c: New test.
* gcc.target/avr/torture/set-mem.c: New test.

From-SVN: r238528

8 years agoImplement attribute progmem on reduced Tiny cores by adding flash offset 0x4000 to...
Georg-Johann Lay [Wed, 20 Jul 2016 14:12:16 +0000 (14:12 +0000)]
Implement attribute progmem on reduced Tiny cores by adding flash offset 0x4000 to respective symbols.

gcc/
Implement attribute progmem on reduced Tiny cores by adding
flash offset 0x4000 to respective symbols.

PR target/71948
* doc/extend.texi (AVR Variable Attributes) [progmem]: Add
documentation how it works on reduced Tiny cores.
(AVR Named Address Spaces): No support for reduced Tiny.
* config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
(avr_address_tiny_pm_p): New static function.
(avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
if the address is in progmem.
(avr_assemble_integer): Same.
(avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
for symbol_ref in progmem.
* config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
gcc/testsuite/
PR target/71948
* gcc.target/avr/torture/tiny-progmem.c: New test.

From-SVN: r238525

8 years agoBuild libbackend.a as a thin archive if possible
Patrick Palka [Wed, 20 Jul 2016 14:09:20 +0000 (14:09 +0000)]
Build libbackend.a as a thin archive if possible

gcc/ChangeLog:

* configure.ac (thin_archive_support): New variable.  AC_SUBST it.
* configure: Regenerate.
* Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
(USE_THIN_ARCHIVES): New variable.
(libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
this archive as a thin archive.

From-SVN: r238524

8 years agoEnabling work for C++ handling of misspelled identifiers and typenames
David Malcolm [Wed, 20 Jul 2016 14:03:03 +0000 (14:03 +0000)]
Enabling work for C++ handling of misspelled identifiers and typenames

gcc/c/ChangeLog:
* c-decl.c (struct edit_distance_traits<cpp_hashnode *>): Move to
spellcheck-tree.h
(best_macro_match): Likewise, converting from a typedef to a
subclass.
(find_closest_macro_cpp_cb): Move to spellcheck-tree.c.
(lookup_name_fuzzy): Update for change of best_macro_match to a
subclass with a ctor that calls cpp_forall_identifiers.

gcc/ChangeLog:
* diagnostic-show-locus.c (diagnostic_show_locus): If this is the
same location as last time, don't skip if we have fix-it hints.
Clarify the skipping logic by converting it from one "if" clause
to repeated "if" clauses.
* spellcheck-tree.c: Include "cpplib.h".
(find_closest_macro_cpp_cb): Move here from c/c-decl.c.
(best_macro_match::best_macro_match): New constructor.
* spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
Move here from c/c-decl.c.
(class best_macro_match): Move here from c/c-decl.c, converting
from a typedef to a subclass, gaining a ctor.

From-SVN: r238522

8 years agore PR c++/71909 (g++ accepts an unreachable function catch block that lacks a corresp...
Jakub Jelinek [Wed, 20 Jul 2016 14:01:30 +0000 (16:01 +0200)]
re PR c++/71909 (g++ accepts an unreachable function catch block that lacks a corresponding try)

PR c++/71909
* parser.c (cp_parser_save_member_function_body): Consume
__transaction_relaxed or __transaction_atomic with optional
attribute.  Only skip catch with block if try keyword is seen.

* g++.dg/parse/pr71909.C: New test.
* g++.dg/tm/pr71909.C: New test.

From-SVN: r238521

8 years agore PR middle-end/50060 (intrinsics not folded by the middle-end)
Jakub Jelinek [Wed, 20 Jul 2016 14:00:02 +0000 (16:00 +0200)]
re PR middle-end/50060 (intrinsics not folded by the middle-end)

PR c++/50060
* constexpr.c (cxx_eval_builtin_function_call): Pass false as lval
when evaluating call arguments.  Use fold_builtin_call_array instead
of fold_build_call_array_loc, return t if it returns NULL.  Otherwise
check the result with potential_constant_expression and call
cxx_eval_constant_expression on it.

* g++.dg/cpp0x/constexpr-50060.C: New test.
* g++.dg/cpp1y/constexpr-50060.C: New test.

From-SVN: r238520

8 years agoavr-protos.h (avr_addr_space_supported_p): New prototype.
Georg-Johann Lay [Wed, 20 Jul 2016 13:50:31 +0000 (13:50 +0000)]
avr-protos.h (avr_addr_space_supported_p): New prototype.

gcc/
* config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
* config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
define...
(avr_addr_space_diagnose_usage): ...and implementation.
(avr_addr_space_supported_p): New function.
(avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
report bad address space usage if that space is supported.
(avr_insert_attributes): Same.  No more complain about unsupported
address spaces.
* config/avr/avr-c.c (tm_p.h): Include it.
(avr_cpu_cpp_builtins): Only define addr-space related built-in
macro if avr_addr_space_supported_p.

From-SVN: r238519

8 years agonvptx: do not implicitly enable -ftoplevel-reorder
Alexander Monakov [Wed, 20 Jul 2016 13:47:12 +0000 (16:47 +0300)]
nvptx: do not implicitly enable -ftoplevel-reorder

* config/nvptx/nvptx.c (nvptx_option_override): Do not set
flag_toplevel_reorder.

From-SVN: r238518