]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
8 years ago2017-06-04 Dominique d'Humieres <dominiq@lps.ens.fr>
dominiq [Sun, 4 Jun 2017 18:47:09 +0000 (18:47 +0000)] 
2017-06-04  Dominique d'Humieres  <dominiq@lps.ens.fr>

Add missing file in the previous commit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248862 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-06-04 Dominique d'Humieres <dominiq@lps.ens.fr>
dominiq [Sun, 4 Jun 2017 18:44:45 +0000 (18:44 +0000)] 
2017-06-04  Dominique d'Humieres  <dominiq@lps.ens.fr>

* lib/fortran-modules.exp (igrep): New procedure, case insensitive
vesrion of the dejagnu grep.
(list-module-names): Use it and adjust the regular expressions for
modules and submodules.
* gfortran.dg/prof/prof.exp: Cleanup modules.
* gfortran.dg/allocate_class_4.f90: Remove cleanup-(sub)?modules
directives.
* gfortran.dg/altreturn_8.f90: Likewise.
* gfortran.dg/associate_12.f90: Likewise.
* gfortran.dg/c_f_pointer_shape_test.f90: Likewise.
* gfortran.dg/charlen_15.f90: Likewise.
* gfortran.dg/class_4a.f03: Likewise.
* gfortran.dg/class_54.f90: Likewise.
* gfortran.dg/class_dummy_4.f03: Likewise.
* gfortran.dg/class_dummy_5.f90: Likewise.
* gfortran.dg/constructor_9.f90: Likewise.
* gfortran.dg/dec_structure_15.f90: Likewise.
* gfortran.dg/do_check_8.f90: Likewise.
* gfortran.dg/dtio_26.f03: Likewise.
* gfortran.dg/dynamic_dispatch_12.f90: Likewise.
* gfortran.dg/equiv_9.f90: Likewise.
* gfortran.dg/extends_15.f90: Likewise.
* gfortran.dg/finalize_22.f90: Likewise.
* gfortran.dg/finalize_23.f90: Likewise.
* gfortran.dg/generic_26.f90: Likewise.
* gfortran.dg/generic_27.f90: Likewise.
* gfortran.dg/namelist_76.f90: Likewise.
* gfortran.dg/pointer_init_8.f90: Likewise.
* gfortran.dg/pr61318.f90: Likewise.
* gfortran.dg/pr77260_1.f90: Likewise.
* gfortran.dg/pr77260_2.f90: Likewise.
* gfortran.dg/pr77420_3.f90: Likewise.
* gfortran.dg/proc_ptr_39.f90: Likewise.
* gfortran.dg/proc_ptr_41.f90: Likewise.
* gfortran.dg/proc_ptr_42.f90: Likewise.
* gfortran.dg/proc_ptr_comp_43.f90: Likewise.
* gfortran.dg/submodule_1.f08: Likewise.
* gfortran.dg/submodule_10.f08: Likewise.
* gfortran.dg/submodule_14.f08: Likewise.
* gfortran.dg/submodule_15.f08: Likewise.
* gfortran.dg/submodule_2.f08: Likewise.
* gfortran.dg/submodule_5.f08: Likewise.
* gfortran.dg/submodule_6.f08: Likewise.
* gfortran.dg/submodule_7.f08: Likewise.
* gfortran.dg/submodule_8.f08: Likewise.
* gfortran.dg/submodule_9.f08: Likewise.
* gfortran.dg/transfer_class_2.f90: Likewise.
* gfortran.dg/typebound_assignment_7.f90: Likewise.
* gfortran.dg/typebound_call_24.f03: Likewise.
* gfortran.dg/typebound_call_25.f90: Likewise.
* gfortran.dg/typebound_deferred_1.f90: Likewise.
* gfortran.dg/typebound_generic_12.f03: Likewise.
* gfortran.dg/typebound_generic_13.f03: Likewise.
* gfortran.dg/typebound_generic_14.f03: Likewise.
* gfortran.dg/typebound_generic_15.f90: Likewise.
* gfortran.dg/typebound_operator_16.f03: Likewise.
* gfortran.dg/typebound_operator_18.f90: Likewise.
* gfortran.dg/typebound_operator_20.f90: Likewise.
* gfortran.dg/typebound_override_3.f90: Likewise.
* gfortran.dg/typebound_override_4.f90: Likewise.
* gfortran.dg/typebound_override_5.f90: Likewise.
* gfortran.dg/typebound_override_6.f90: Likewise.
* gfortran.dg/typebound_override_7.f90: Likewise.
* gfortran.dg/typebound_proc_28.f03: Likewise.
* gfortran.dg/typebound_proc_29.f90: Likewise.
* gfortran.dg/typebound_proc_30.f90: Likewise.
* gfortran.dg/typebound_proc_31.f90: Likewise.
* gfortran.dg/typebound_proc_32.f90: Likewise.
* gfortran.dg/typebound_proc_33.f90: Likewise.
* gfortran.dg/unlimited_polymorphic_16.f90: Likewise.
* gfortran.dg/unlimited_polymorphic_19.f90: Likewise.
* gfortran.dg/unlimited_polymorphic_24.f03: Likewise.
* gfortran.dg/use_only_3.f90: Likewise.
* gfortran.dg/use_without_only_1.f90: Likewise.
* gfortran.dg/warn_unused_function.f90: Likewise.
* gfortran.dg/warn_unused_function_2.f90: Likewise.
* gfortran.dg/ieee/ieee_8.f90: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248861 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c/80919
mpolacek [Sun, 4 Jun 2017 17:27:22 +0000 (17:27 +0000)] 
PR c/80919
* c-format.c (matching_type_p): Return false if any of the types
requires structural equality.

* gcc.dg/format/pr80919.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248860 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Sun, 4 Jun 2017 00:16:20 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248859 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
schwab [Sat, 3 Jun 2017 09:56:43 +0000 (09:56 +0000)] 
* config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248854 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * configure.ac (*-*-linux-android*): Set target_makefile_frag.
ebotcazou [Sat, 3 Jun 2017 08:23:22 +0000 (08:23 +0000)] 
* configure.ac (*-*-linux-android*): Set target_makefile_frag.
* configure: Regenerate.
config/
* mt-android: New file.
libstdc++-v3/
* src/filesystem/dir.cc (fs::_Dir::advance): Use std::exchange.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248853 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoPR c/80892 - -Wfloat-conversion now warns about non-floats
msebor [Sat, 3 Jun 2017 02:49:30 +0000 (02:49 +0000)] 
PR c/80892 - -Wfloat-conversion now warns about non-floats

gcc/c-family/ChangeLog:

PR c/80892
* c-warn.c (conversion_warning): Use -Wconversion for integer
conversion and -Wfloat-conversion for floating one.

gcc/testsuite/ChangeLog:

PR c/80892
* c-c++-common/Wfloat-conversion-2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248852 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Sat, 3 Jun 2017 00:16:17 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248851 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-06-02 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Fri, 2 Jun 2017 23:27:22 +0000 (23:27 +0000)] 
2017-06-02  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/68754
* g++.dg/cpp1y/constexpr-68754.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248847 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogcc/ChangeLog:
carll [Fri, 2 Jun 2017 20:11:40 +0000 (20:11 +0000)] 
gcc/ChangeLog:

2017-06-02  Carl Love  <cel@us.ibm.com>

   * config/rs6000/rs6000-c: Add support for built-in functions
   vector double vec_doublee (vector signed int);
   vector double vec_doublee (vector unsigned int);
   vector double vec_doublee (vector float);
   vector double vec_doubleh (vector signed int);
   vector double vec_doubleh (vector unsigned int);
   vector double vec_doubleh (vector float);
   vector double vec_doublel (vector signed int);
   vector double vec_doublel (vector unsigned int);
   vector double vec_doublel (vector float);
   vector double vec_doubleo (vector signed int);
   vector double vec_doubleo (vector unsigned int);
   vector double vec_doubleo (vector float);.
   * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
   DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
   UNS_DOUBLEL.
   * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
   unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
   unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
   VS_sxwsp.
   * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
   vec_doublel, vec_doubleh.
   * doc/extend.texi: Update the built-in documentation file for the
   new built-in functions.

2017-06-02  Carl Love  <cel@us.ibm.com>

gcc/testsuite/ChangeLog:

   * gcc.target/powerpc/builtins-3-runnable.c: New file of runnable tests
   for the new built-ins.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248846 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoPR libstdc++/80624 satisfy invariant for char_traits<char16_t>::eof()
redi [Fri, 2 Jun 2017 18:35:37 +0000 (18:35 +0000)] 
PR libstdc++/80624 satisfy invariant for char_traits<char16_t>::eof()

PR libstdc++/80624
* doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
* include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
Transform eof value to U+FFFD.
* testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
* testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
* testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248843 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix segfault in free_growth_caches (PR jit/80954)
dmalcolm [Fri, 2 Jun 2017 17:07:37 +0000 (17:07 +0000)] 
Fix segfault in free_growth_caches (PR jit/80954)

gcc/ChangeLog:
PR jit/80954
* ipa-inline-analysis.c (free_growth_caches): Set
edge_removal_hook_holder to NULL after removing it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248841 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAdd ChangeLog entry for revision 248838
hainque [Fri, 2 Jun 2017 16:46:44 +0000 (16:46 +0000)] 
Add ChangeLog entry for revision 248838

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248839 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-06-02 Olivier Hainque <hainque@adacore.com>
hainque [Fri, 2 Jun 2017 16:24:28 +0000 (16:24 +0000)] 
2017-06-02  Olivier Hainque  <hainque@adacore.com>

* config/vxlib.c (__gthread_once): Add missing value to
nested return statement.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248838 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-06-02 Olivier Hainque <hainque@adacore.com>
hainque [Fri, 2 Jun 2017 16:02:24 +0000 (16:02 +0000)] 
2017-06-02  Olivier Hainque  <hainque@adacore.com>

* vx_crtbegin_auto.c: New file.
* vx_crtbegin.c: New file.
* vx_crtbegin.inc: New file.
* vx_crtend.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248837 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[PATCH][AArch64] Allow CMP+SHIFT when comparing with zero
jgreenhalgh [Fri, 2 Jun 2017 15:32:41 +0000 (15:32 +0000)] 
[PATCH][AArch64] Allow CMP+SHIFT when comparing with zero

gcc/

* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
comparision with zero.

gcc/testsuite/

* gcc.target/aarch64/cmp_shifted_reg_1.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248836 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[AArch64] Add HF vector modes to lane-to-lane INS pattern
ktkachov [Fri, 2 Jun 2017 15:03:54 +0000 (15:03 +0000)] 
[AArch64] Add HF vector modes to lane-to-lane INS pattern

        * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
        Use VALL_F16 iterator rather than VALL.

        * gcc.target/aarch64/hfmode_ins_1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248835 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[gcc]
willschm [Fri, 2 Jun 2017 15:02:25 +0000 (15:02 +0000)] 
[gcc]

2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
for early expansion of vec_min and vec_max builtins.
(builtin_function_type): Add min/max unsigned variants to those
identified as having unsigned arguments.

[gcc/testsuite]

2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>

*  testsuite/gcc.target/powerpc/fold-vec-minmax-char.c: New.
*  testsuite/gcc.target/powerpc/fold-vec-minmax-floatdouble.c: New.
*  testsuite/gcc.target/powerpc/fold-vec-minmax-int.c: New.
*  testsuite/gcc.target/powerpc/fold-vec-minmax-longlong.c: New.
*  testsuite/gcc.target/powerpc/fold-vec-minmax-short.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248834 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-06-02 Olivier Hainque <hainque@adacore.com>
hainque [Fri, 2 Jun 2017 15:00:43 +0000 (15:00 +0000)] 
2017-06-02  Olivier Hainque  <hainque@adacore.com>

* config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248833 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[AArch64] Emit tighter strong atomic compare-exchange loop when comparing against...
ktkachov [Fri, 2 Jun 2017 14:41:52 +0000 (14:41 +0000)] 
[AArch64] Emit tighter strong atomic compare-exchange loop when comparing against zero

* config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
Emit CBNZ inside loop when doing a strong exchange and comparing
against zero.  Generate the CC flags after the loop.

* gcc.target/aarch64/atomic_cmp_exchange_zero_strong_1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248832 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
dje [Fri, 2 Jun 2017 14:27:15 +0000 (14:27 +0000)] 
    * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
        (dl_section_ref): New.
        (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
        On AIX, append an expression to subtract the size of the
        section length to dl_section_ref.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248831 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[gcc]
willschm [Fri, 2 Jun 2017 14:21:55 +0000 (14:21 +0000)] 
[gcc]

2017-05-31  Will Schmidt  <will_schmidt@vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
for early expansion of vector absolute builtins.

[gcc/testsuite]

2017-05-31  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-abs-char.c: New.
* gcc.target/powerpc/fold-vec-abs-floatdouble.c: New.
* gcc.target/powerpc/fold-vec-abs-int.c: New.
* gcc.target/powerpc/fold-vec-abs-longlong.c: New.
* gcc.target/powerpc/fold-vec-abs-short.c: New.
* gcc.target/powerpc/fold-vec-abs-char-fwrapv.c: New.
* gcc.target/powerpc/fold-vec-abs-int-fwrapv.c: New.
* gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.c: New.
* gcc.target/powerpc/fold-vec-abs-short-fwrapv.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248830 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoChanglogs:
nathan [Fri, 2 Jun 2017 13:27:45 +0000 (13:27 +0000)] 
Changlogs:
cp/
Remove lang_type_ptrmem.
* cp-tree.h (lang_type_header): Remove is_lang_type_class. Move
into ...
(lang_type_class): ... this.  Reorder bitfields.  Rename to ...
(lang_type): ... this.  Delete old definition.
(lang_type_ptrmem): Delete.
(LANG_TYPE_CLASS_CHECK): Simply get TYPE_LANG_SPECIFIC.  Adjust
uses.
(LANG_TYPE_PTRMEM_CHECK): Delete.
(TYPE_GET_PTRMEMFUNC_TYPE, TYPE_SET_PTRMEMFUNC_TYPE): Delete.
(TYPE_PTRMEMFUNC_TYPE): New.  Use TYPE_LANG_SLOT_1.
* decl.c (build_ptrmemfunc_type): Adjust.
* lex.c (copy_lang_type): Remove lang_type_ptrmem handling.
(maybe_add_lang_type_raw): Don't set u.c.h.is_lang_type_class.

objcp/
* objcp-decl.h (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Use lang_type.
(ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use it.  Don't set
u.c.h.is_lang_type_class.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248827 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago cp/
nathan [Fri, 2 Jun 2017 13:23:08 +0000 (13:23 +0000)] 
cp/
Remove lang_type_ptrmem.
* cp-tree.h (lang_type_header): Remove is_lang_type_class. Move
into ...
(lang_type_class): ... this.  Reorder bitfields.  Rename to ...
(lang_type): ... this.  Delete old definition.
(lang_type_ptrmem): Delete.
(LANG_TYPE_CLASS_CHECK): Simply get TYPE_LANG_SPECIFIC.  Adjust
uses.
(LANG_TYPE_PTRMEM_CHECK): Delete.
(TYPE_GET_PTRMEMFUNC_TYPE, TYPE_SET_PTRMEMFUNC_TYPE): Delete.
(TYPE_PTRMEMFUNC_TYPE): New.  Use TYPE_LANG_SLOT_1.
* decl.c (build_ptrmemfunc_type): Adjust.
* lex.c (copy_lang_type): Remove lang_type_ptrmem handling.
(maybe_add_lang_type_raw): Don't set u.c.h.is_lang_type_class.

objcp/
* objcp-decl.h (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Use lang_type.
(ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use it.  Don't set
u.c.h.is_lang_type_class.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248826 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-06-02 Richard Biener <rguenther@suse.de>
rguenth [Fri, 2 Jun 2017 13:11:11 +0000 (13:11 +0000)] 
2017-06-02  Richard Biener  <rguenther@suse.de>

* tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248825 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-06-02 Richard Biener <rguenther@suse.de>
rguenth [Fri, 2 Jun 2017 12:34:32 +0000 (12:34 +0000)] 
2017-06-02  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80948
* tree-tailcall.c (find_tail_calls): Track stmts to move in
stmt order as well.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248824 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoRemove libsupc++ makefile targets setting -std=gnu++11 or -std=gnu++14
redi [Fri, 2 Jun 2017 11:49:04 +0000 (11:49 +0000)] 
Remove libsupc++ makefile targets setting -std=gnu++11 or -std=gnu++14

* libsupc++/Makefile.am: Remove custom targets for files that need to
be compiled as C++11 or C++14.
* libsupc++/Makefile.in: Regenerate.
* libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
warnings.
* libsupc++/del_opvs.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248823 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * name-lookup.h (cp_binding_level): Lose namespaces field.
nathan [Fri, 2 Jun 2017 11:02:26 +0000 (11:02 +0000)] 
* name-lookup.h (cp_binding_level): Lose namespaces field.
* name-lookup.c (add_decl_to_level): Chain namespaces on the names
list.
(suggest_alternatives_for): Adjust for namespace list.  Do
breadth-first search.
* decl2.c (collect_source_refs): Namespaces are on the regulr
list.
(collect_ada_namespace): Likewise.

* g++.dg/pr45330.C: Adjust.  Check breadth-firstness.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248821 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-06-02 Richard Biener <rguenther@suse.de>
rguenth [Fri, 2 Jun 2017 10:26:10 +0000 (10:26 +0000)] 
2017-06-02  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
PHIs are ok.
* tree-vect-stmts.c (process_use): Do not mark backedge defs
for inductions as relevant.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248820 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-06-02 Richard Biener <rguenther@suse.de>
rguenth [Fri, 2 Jun 2017 10:25:22 +0000 (10:25 +0000)] 
2017-06-02  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
(vectorizable_induction): ... this.  Remove dead code.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248819 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * builtins. (expand_builtin_alloca): Remove second parameter and
ebotcazou [Fri, 2 Jun 2017 09:57:40 +0000 (09:57 +0000)] 
* builtins. (expand_builtin_alloca): Remove second parameter and
infer its value from the first parameter instead.
(expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248818 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-06-02 Richard Biener <rguenther@suse.de>
rguenth [Fri, 2 Jun 2017 08:10:48 +0000 (08:10 +0000)] 
2017-06-02  Richard Biener  <rguenther@suse.de>
Markus Eisenmann  <meisenmann.lba@fh-salzburg.ac.at>

PR libstdc++/80721
* libsupc++/eh_alloc.cc (pool::free): Keep list properly
sorted and add missing freelist item merging cases.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248816 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR rtl-optimization/80903
jakub [Fri, 2 Jun 2017 08:07:15 +0000 (08:07 +0000)] 
PR rtl-optimization/80903
* loop-doloop.c (add_test): Unshare sequence.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248815 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR fortran/80918
jakub [Fri, 2 Jun 2017 07:07:29 +0000 (07:07 +0000)] 
PR fortran/80918
* openmp.c (resolve_omp_clauses): Fix a typo.

* gfortran.dg/gomp/pr80918.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248812 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogcc:
edlinger [Fri, 2 Jun 2017 04:06:59 +0000 (04:06 +0000)] 
gcc:
2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.

gcc/c-family:
2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c.opt (Wsizeof-pointer-div): New warning option.

gcc/c:
2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-parser.c (c_parser_binary_expression): Implement the
        -Wsizeof_pointer_div warning.
        (c_parser_postfix_expression): Allow SIZEOF_EXPR as expr.original_code
        from a parenthesized expression.
        (c_parser_expr_list): Use c_last_sizeof_loc.
        * c-tree.h (c_last_sizeof_loc): New external.
        * c-typeck.c (c_last_sizeof_loc): New variable.
        (c_expr_sizeof_expr, c_expr_sizeof_type): Assign c_last_sizeof_loc.

gcc/cp:
2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * typeck.c (cp_build_binary_op): Implement the -Wsizeof_pointer_div
        warning.

gcc/testsuite:
2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-c++-common/Wsizeof-pointer-div.c: New test.
        * gcc.dg/Wsizeof-pointer-memaccess1.c: Add test cases with parens.
        * gcc.dg/torture/Wsizeof-pointer-memaccess1.c: Likewise.
        * gcc.target/i386/sse-init-v4hi-1.c: Fix test case.
        * gcc.target/i386/sse-init-v4sf-1.c: Likewise.
        * gcc.target/i386/sse-set-ps-1.c: Likewise.
        * gcc.target/i386/sse2-init-v16qi-1.c: Likewise.
        * gcc.target/i386/sse2-init-v2di-1.c: Likewise.
        * gcc.target/i386/sse2-init-v4si-1.c: Likewise.
        * gcc.target/i386/sse2-init-v8hi-1.c: Likewise.
        * gcc.target/i386/sse2-set-epi32-1.c: Likewise.
        * gcc.target/i386/sse2-set-epi64x-1.c: Likewise.
        * gcc.target/i386/sse4_1-init-v16qi-1.c: Likewise.
        * gcc.target/i386/sse4_1-init-v2di-1.c: Likewise.
        * gcc.target/i386/sse4_1-init-v4sf-1.c: Likewise.
        * gcc.target/i386/sse4_1-init-v4si-1.c: Likewise.
        * gcc.target/i386/sse4_1-set-epi32-1.c: Likewise.
        * gcc.target/i386/sse4_1-set-epi64x-1.c: Likewise.
        * gcc.target/i386/sse4_1-set-ps-1.c: Likewise.
        * libgomp.c/pr39591-2.c: Likewise.
        * libgomp.c/pr39591-3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248811 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Fri, 2 Jun 2017 00:16:22 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248810 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[gcc/testsuite]
willschm [Thu, 1 Jun 2017 22:00:45 +0000 (22:00 +0000)] 
[gcc/testsuite]

2017-05-26  Will Schmidt  <will_schmidt@vnet.ibm.com>

* gcc.target/powerpc/fold-vec-logical-ors-longlong.c:
Update the target to power8-vector.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248805 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * es.po: Update.
jsm28 [Thu, 1 Jun 2017 21:15:55 +0000 (21:15 +0000)] 
* es.po: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248802 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agotestsuite: ensure GCC_COLORS is unset
dmalcolm [Thu, 1 Jun 2017 19:43:13 +0000 (19:43 +0000)] 
testsuite: ensure GCC_COLORS is unset

gcc/testsuite/ChangeLog:
* lib/gcc-dg.exp: Ensure GCC_COLORS is unset.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248800 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Thu, 1 Jun 2017 19:30:47 +0000 (19:30 +0000)] 
2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
        static.
        (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
        xlogue_layout::get_instance, logue_layout::xlogue_layout,
        sp_valid_at, fp_valid_at, choose_basereg): Formatting.
        (xlogue_layout::get_stub_rtx): Make static.
        (xlogue_layout::get_stub_name): Avoid const-cast, make static.
        (xlogue_layout::compute_stub_managed_regs): Rename to...
        (xlogue_layout::count_stub_managed_regs): ...this.
        (xlogue_layout::is_stub_managed_reg): New function.
        (xlogue_layout::m_stub_names): Rename to...
        (xlogue_layout::s_stub_names): ...this, make static.
        (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
        xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
        xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
        xlogue_layout::s_stub_names): Instantiate statics.
        (stub_managed_regs): Remove.
        (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
        (disable_call_ms2sysv_xlogues): Rename to...
        (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
        (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
        warning logic.
        (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
        change after reload_completed.
        (ix86_can_use_return_insn_p): Use the ix86_frame data structure
        directly.
        (ix86_expand_prologue): Likewise.
        (ix86_expand_epilogue): Likewise.
        (ix86_expand_split_stack_prologue): Likewise.
        (ix86_compute_frame_layout): Remove frame parameter ...
        (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
        (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
        only if necessary.
        (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
        (ix86_frame): Move from here ...
        * config/i386/i386.h (ix86_frame): ... to here.
        (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
        complete ix86_frame data structure instead.  Remove some_ld_name.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248798 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDWARF: add DW_AT_location for global decls with DECL_VALUE_EXPR
pmderodat [Thu, 1 Jun 2017 14:06:37 +0000 (14:06 +0000)] 
DWARF: add DW_AT_location for global decls with DECL_VALUE_EXPR

In GNAT, we materialize renamings that cannot be described in standard
DWARF as synthetic variables that describe how to fetch the renamed
object.  Look for "___XR" in gcc/ada/exp_dbug.ads for more details about
this convention.

In order to have a location for these variables in the debug info (GDB
requires it not to discard the variable) but also to avoid allocating
runtime space for them, we make these variable hold a DECL_VALUE_EXPR
tree.  However, since GCC 7, the DWARF back-end no longer generates a
DW_AT_location attribute for those.  This patch is an attempt to restore
this attribute.

gcc/

* dwarf2out.c (dwarf2out_late_global_decl): Add locations for
symbols that hold a DECL_VALUE_EXPR.

gcc/testsuite/

* debug12.adb, debug12.ads: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248792 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix cross compilation to Solaris
ro [Thu, 1 Jun 2017 13:50:03 +0000 (13:50 +0000)] 
Fix cross compilation to Solaris

(GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
Remove *-solaris* section.
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248791 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[PR 80898] Propagate grp_write from disqualified SRA candidates
jamborm [Thu, 1 Jun 2017 12:14:29 +0000 (12:14 +0000)] 
[PR 80898] Propagate grp_write from disqualified SRA candidates

2017-06-01  Martin Jambor  <mjambor@suse.cz>

PR tree-optimization/80898
* tree-sra.c (process_subtree_disqualification): Removed.
(disqualify_candidate): Do not acll
process_subtree_disqualification.
(subtree_mark_written_and_enqueue): New function.
(propagate_all_subaccesses): Set grp_write of LHS subtree if the
RHS has been disqualified and re-queue LHS if necessary.  Apart
from that, ignore disqualified RHS.

testsuite/
* gcc.dg/tree-ssa/pr80898.c: New test.
* gcc.dg/tree-ssa/pr80898-2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248790 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoS/390: Don't fetch the return address early with ooo
krebbel [Thu, 1 Jun 2017 11:30:36 +0000 (11:30 +0000)] 
S/390: Don't fetch the return address early with ooo

We used to load the return address slot some time in advance.  This
helped on older machines to resolve the data dependencies in time.
However, it is pointless on out of order CPUs.  Disabled with that
patch.

gcc/ChangeLog:

2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_emit_epilogue): Disable early return
address fetch for z10 or later.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248789 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoPR c++/80812
ville [Thu, 1 Jun 2017 11:09:41 +0000 (11:09 +0000)] 
PR c++/80812

cp/

PR c++/80812
* method.c (constructible_expr): Strip array types before calling
build_value_init.

libstdc++/

PR c++/80812
* testsuite/20_util/is_constructible/80812.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248788 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR ada/80921
ebotcazou [Thu, 1 Jun 2017 10:51:15 +0000 (10:51 +0000)] 
PR ada/80921
* configure.ac (default_gnatlib_target): Remove bogus condition.
(have_getipinfo): Tweak.
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248785 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago/cp
paolo [Thu, 1 Jun 2017 10:20:27 +0000 (10:20 +0000)] 
/cp
2017-06-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80896
* cvt.c (convert_to_void): Possibly call maybe_warn_nodiscard
for case INDIRECT_REF too in the main switch.

/testsuite
2017-06-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80896
* g++.dg/cpp1z/nodiscard5.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248784 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[ARC] Fix tst_movb pattern.
claziss [Thu, 1 Jun 2017 09:43:10 +0000 (09:43 +0000)] 
[ARC] Fix tst_movb pattern.

The tst_movb pattern is missing guarding when spitting.

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (tst_movb): Add guard when splitting.

testsuite/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* gcc.target/arc/pr9001195952.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248783 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[ARC] Test against frame_pointer_needed in arc_can_eliminate.
claziss [Thu, 1 Jun 2017 09:42:59 +0000 (09:42 +0000)] 
[ARC] Test against frame_pointer_needed in arc_can_eliminate.

arc_can_eliminate is using arc_frmae_pointer_required() which is wrong
as the frame_pointer_needed can be set on different conditions. Fix it
by calling arc_frame_pointer_needed().

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_can_eliminate): Test against
arc_frame_pointer_needed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248782 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[ARC] Prevent moving stores to the frame before the stack adjustment.
claziss [Thu, 1 Jun 2017 09:42:49 +0000 (09:42 +0000)] 
[ARC] Prevent moving stores to the frame before the stack adjustment.

If the stack pointer is needed, emit a special barrier that will prevent
the scheduler from moving stores to the frame before the stack adjustment.

For example:

[snip]
mov_s fp,sp  ; frame pointer is set here
[snip]
st r1,[fp,-24] ; frame pointer is used here
[snip]
sub_s sp,sp,0x20 ; stack pointer adjusted

So we can easily see that any interrupt between the `st` and `sub`
instruction will lead to faulty code as the interrupt routine will use
a faulty sp register, and, potentially, overwriting the value stored
by 'st' instruction. Thus, adding a scheduler barrier will force the
compiler to emit the `sub` instruction before the store one.

2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_expand_prologue): Emit a special barrier
to prevent store reordering.
* config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
(type): Add block type.
(stack_tie): Define special instruction to be used in
expand_prologue.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248781 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[ARC] Update (non)commutative_binary_comparison patterns.
claziss [Thu, 1 Jun 2017 09:42:39 +0000 (09:42 +0000)] 
[ARC] Update (non)commutative_binary_comparison patterns.

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (commutative_binary_comparison): Remove 'I'
constraint. It is not valid for the pattern.
(noncommutative_binary_comparison): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248780 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[ARC] Change predicate movv2hi to avoid scaled addresses.
claziss [Thu, 1 Jun 2017 09:42:27 +0000 (09:42 +0000)] 
[ARC] Change predicate movv2hi to avoid scaled addresses.

2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
scaled addresses.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248779 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[ARC] Allow r30 to be used by the reg-alloc.
claziss [Thu, 1 Jun 2017 09:42:06 +0000 (09:42 +0000)] 
[ARC] Allow r30 to be used by the reg-alloc.

gcc/
2018-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
be used by the reg-alloc.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248778 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[ARC] Avoid use of hard registers before reg-alloc.
claziss [Thu, 1 Jun 2017 09:41:46 +0000 (09:41 +0000)] 
[ARC] Avoid use of hard registers before reg-alloc.

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (mulsi3): Avoid use of hard registers before
reg-alloc when having mul64 or mul32x16 instructions.
(mulsidi3): Likewise.
(umulsidi3): Likewise.
(mulsi32x16): New pattern.
(mulsi64): Likewise.
(mulsidi64): Likewise.
(umulsidi64): Likewise.
(MUL32x16_REG): Define.
(mul64_600): Use MUL32x16_REG.
(mac64_600): Likewise.
(umul64_600): Likewise.
(umac64_600): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248777 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[ARC] Make mulsi for A700 pattern commutative.
claziss [Thu, 1 Jun 2017 09:41:13 +0000 (09:41 +0000)] 
[ARC] Make mulsi for A700 pattern commutative.

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (mulsi3_700): Make it commutative.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248776 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoRequire label_values for some test-cases
vries [Thu, 1 Jun 2017 09:13:09 +0000 (09:13 +0000)] 
Require label_values for some test-cases

2017-06-01  Tom de Vries  <tom@codesourcery.com>

* c-c++-common/pr43395.c: Add dg-require-effective-target label_values.
* gcc.c-torture/compile/asmgoto-1.c: Same.
* gcc.dg/20000707-1.c: Same.
* gcc.dg/pr38700.c: Same.
* gcc.dg/pr70169.c: Same.
* gcc.dg/pr80112.c: Same.
* gcc.dg/torture/pr51071-2.c: Same.
* gcc.dg/torture/pr51071.c: Same.
* gcc.dg/tree-ssa/alias-34.c: Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248775 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogcc/ChangeLog:
jemarch [Thu, 1 Jun 2017 08:43:22 +0000 (08:43 +0000)] 
gcc/ChangeLog:
* config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
type for movstouw.
(*sign_extendsidi2_insn): Likewise for movstosw.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248774 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDWARF: for variants, produce unsigned discr. when debug type is unsigned
pmderodat [Thu, 1 Jun 2017 08:36:57 +0000 (08:36 +0000)] 
DWARF: for variants, produce unsigned discr. when debug type is unsigned

In Ada, the Character type is supposed to be unsigned.  However,
depending on the sign of C char types, GNAT can materialize it as a
signed type for code generation purposes.  When this is the case, GNAT
also attach a debug type to it so it is represented as an unsigned base
type in the debug information.

This change adapts record variant parts processing in the DWARF back-end
so that when the debug type of discriminant is unsigned while
discriminant values are signed themselves, we output unsigned
discriminant values in DWARF.

gcc/

* dwarf2out.c (get_discr_value): Call the get_debug_type hook on
the type of the input discriminant value.  Convert the
discriminant value of signedness vary.

gcc/testsuite/

* gnat.dg/debug11.adb: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248773 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * c.opt (Wcatch-value): New shortcut for Wcatch-value=1.
reichelt [Thu, 1 Jun 2017 08:10:24 +0000 (08:10 +0000)] 
    * c.opt (Wcatch-value): New shortcut for Wcatch-value=1.
        (Wcatch-value=1): Enable by -Wall.

        * doc/invoke.texi (-Wcatch-value): Document new shortcut.
        Add to -Wall section.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248772 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-06-01 Richard Biener <rguenther@suse.de>
rguenth [Thu, 1 Jun 2017 08:05:24 +0000 (08:05 +0000)] 
2017-06-01  Richard Biener  <rguenther@suse.de>

PR middle-end/66313
* fold-const.c (fold_plusminus_mult_expr): If the factored
factor may be zero use a wrapping type for the inner operation.
* tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
and handle moved defs.
(process_assignment): Properly guard the unary op case.  Return a
tri-state indicating that moving the stmt before the call may allow
to continue.  Pass through to_move.
(find_tail_calls): Handle moving unrelated defs before
the call.

* c-c++-common/ubsan/pr66313.c: New testcase.
* gcc.dg/tree-ssa/loop-15.c: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248771 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Thu, 1 Jun 2017 00:16:19 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248770 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix up dg options to resolve make check failures Bill Seurer found
munroesj [Thu, 1 Jun 2017 00:15:51 +0000 (00:15 +0000)] 
Fix up dg options to resolve make check failures Bill Seurer found
when compiling --with-cpu=power6.

2017-05-31  Steven Munroe  <munroesj@gcc.gnu.org>

* gcc.target/powerpc/bmi2-pdep32-1.c: Add -mcpu=power7 to
        dg-options.  Change dg-require-effective-target powerpc_vsx_ok
        to vsx_hw.  Add dg-skip-if directive to disable this test if
-mcpu overridden.
* gcc.target/powerpc/bmi2-pdep64-1.c: Likewise.
* gcc.target/powerpc/bmi2-pext32-1.c: Likewise.
* gcc.target/powerpc/bmi2-pext64-1.c: Likewise.
* gcc.target/powerpc/bmi2-pext64-1a.c: Add -mcpu=power7
to dg-option.  Add dg-skip-if directive to disable this test
for darwin.  Add dg-skip-if directive to disable this test if
-mcpu overridden.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248766 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago libgo: support for sparc64 GNU/Linux
ian [Wed, 31 May 2017 21:36:42 +0000 (21:36 +0000)] 
libgo: support for sparc64 GNU/Linux

    Fix lfstack code to work with sparc64 GNU/Linux address map.

    Force alignment of epollevent.  To make this work reliably, pass
    GOARCH explicitly to mkrsysinfo.sh.

    Patch by Vladimir Mezentsev.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248765 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix changelog of previous commit, the correct version is:
segher [Wed, 31 May 2017 21:09:41 +0000 (21:09 +0000)] 
Fix changelog of previous commit, the correct version is:

PR target/80618
* config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
splitter result in the canonical way.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248764 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agors6000: Don't write "nor" as (not (ior () ())) (PR80618)
segher [Wed, 31 May 2017 20:58:59 +0000 (20:58 +0000)] 
rs6000: Don't write "nor" as (not (ior () ())) (PR80618)

The canonical RTL for "nor" is (and (not ()) (not ())), and that is
indeed what we use in boolccv2df3_internal1.  So, the splitter for
*vector_uneq<mode> should use that form, not (not (ior () ())), which
does not match any pattern.

PR target/80618
* config/rs6000/rs6000.md (*vector_uneq<mode>): Write the nor in the
splitter result in the canonical way.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248763 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
uros [Wed, 31 May 2017 18:33:30 +0000 (18:33 +0000)] 
* config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
also for 32bit target.  Update insn attributes.
(zero-extendsidi2 splitter): Allow all registers for operand 1.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248757 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * config/i386/avx512fintrin.h (_mm_mask_max_sd)
uros [Wed, 31 May 2017 18:26:44 +0000 (18:26 +0000)] 
* config/i386/avx512fintrin.h (_mm_mask_max_sd)
        (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
        (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
        (_mm_maskz_min_ss): New intrinsics.

testsuite/ChangeLog:

* gcc.target/i386/avx512f-vmaxsd-1.c (_mm_mask_max_sd)
(_mm_maskz_max_sd): Test new intrinsics.
* gcc.target/i386/avx512f-vmaxsd-2.c (_mm_mask_max_sd)
(_mm_maskz_max_sd): Test new intrinsics.
* gcc.target/i386/avx512f-vmaxss-1.c (_mm_mask_max_ss)
(_mm_maskz_max_ss): Test new intrinsics.
* gcc.target/i386/avx512f-vmaxss-2.c (_mm_mask_max_ss)
(_mm_maskz_max_ss): Test new intrinsics.
* gcc.target/i386/avx512f-vminsd-1.c (_mm_mask_min_sd)
(_mm_maskz_min_sd): Test new intrinsics.
* gcc.target/i386/avx512f-vminsd-2.c (_mm_mask_min_sd)
(_mm_maskz_min_sd): Test new intrinsics.
* gcc.target/i386/avx512f-vminss-1.c (_mm_mask_min_ss)
(_mm_maskz_min_ss): Test new intrinsics.
* gcc.target/i386/avx512f-vminss-2.c (_mm_mask_min_ss)
(_mm_maskz_min_ss): Test new intrinsics.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248756 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c++/80840 - ICE with constexpr and reference
jason [Wed, 31 May 2017 17:11:17 +0000 (17:11 +0000)] 
PR c++/80840 - ICE with constexpr and reference

* pt.c (convert_nontype_argument): Don't test whether a decl is
value-dependent when binding to a reference.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248749 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * cp-tree.h (lang_decl_slector): New enum.
nathan [Wed, 31 May 2017 16:46:58 +0000 (16:46 +0000)] 
* cp-tree.h (lang_decl_slector): New enum.
(lang_decl_base): Make selector an enum.  Drop decomposition_p
field.
(lang_decl): Use enum for discrimination.
(LANG_DECL_FN_CHECK, LANG_DECL_NS_CHECK, LANG_DECL_PARM_CHECK,
LANG_DECL_DEOMP_CHECK): Use enum.
(DECL_DECOMPOSITION_P): Use selector value.
(SET_DECL_DECOMPOSITION_P): Delete.
(retrofit_lang_decl): Lose SEL parm.
(fit_decomposition_lang_decl): Declare.
* decl.c (cp_finish_decomp, grokdeclarator): Use
fit_decomposition_lang_decl.
* lex.c (maybe_add_lang_decl_raw): New. Broken out of
retrofit_lang_decl.
(set_decl_linkage): New.  Broken out of retrofit_lang_decl.  Use
enum.
(fit_decomposition_lang_decl): Likewise.
(retrofit_lang_decl): Use worker functions.
(cxx_dup_lang_specific_decl): Use selector enum.
(maybe_add_lang_type_raw): New.  Broken out of ...
(cxx_make_type_name): ... here.  Call it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248748 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * g++.dg/lookup/lambda1.C New.
nathan [Wed, 31 May 2017 16:38:28 +0000 (16:38 +0000)] 
* g++.dg/lookup/lambda1.C New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248747 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago gcc/testsuite
amker [Wed, 31 May 2017 16:20:32 +0000 (16:20 +0000)] 
gcc/testsuite
* gcc.dg/tree-ssa/ivopt_mult_4.c: Explicitly check comparison
on pointer should not be replaced.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248746 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDoxygen: transform ENUM_BITFIELD and comments starting with '/**'.
marxin [Wed, 31 May 2017 14:08:36 +0000 (14:08 +0000)] 
Doxygen: transform ENUM_BITFIELD and comments starting with '/**'.

2017-05-31  Martin Liska  <mliska@suse.cz>

* filter_params.py:
Transform ENUM_BITFIELD and comments starting with '/**'

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248741 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoChange comment style to one we normally use.
marxin [Wed, 31 May 2017 14:07:59 +0000 (14:07 +0000)] 
Change comment style to one we normally use.

2017-05-31  Martin Liska  <mliska@suse.cz>

* tree-vect-loop.c (vect_create_epilog_for_reduction):
Change comment style to one we normally use.
(vectorizable_reduction): Likewise.
(vectorizable_induction): Likewise.
* tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
(vectorizable_call): Likewise.
(vectorizable_simd_clone_call): Likewise.
(vectorizable_conversion): Likewise.
(vectorizable_assignment): Likewise.
(vectorizable_shift): Likewise.
(vectorizable_operation): Likewise.
(vectorizable_store): Likewise.
(vectorizable_load): Likewise.
* tree-vectorizer.h: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248740 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoPort Doxygen support script from Perl to Python; add unittests
marxin [Wed, 31 May 2017 14:07:30 +0000 (14:07 +0000)] 
Port Doxygen support script from Perl to Python; add unittests

2017-05-31  David Malcolm  <dmalcolm@redhat.com>
    Martin Liska  <mliska@suse.cz>

* filter_params.py: New, porting the perl script to python,
adding a test suite.
* filter_gcc_for_doxygen_new: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248739 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoGIMPLEFE: Handle missing labels in goto statements
miyuki [Wed, 31 May 2017 13:47:51 +0000 (13:47 +0000)] 
GIMPLEFE: Handle missing labels in goto statements

gcc/c/

PR testsuite/80580
* gimple-parser.c (c_parser_gimple_if_stmt): Check for empty labels.

gcc/testsuite/

PR testsuite/80580
* gcc.dg/gimplefe-error-7.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248738 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix configure.ac to respect --{enable,disable}-werror option.
marxin [Wed, 31 May 2017 13:35:41 +0000 (13:35 +0000)] 
Fix configure.ac to respect --{enable,disable}-werror option.

2017-05-31  Martin Liska  <mliska@suse.cz>

* configure.ac: Add handling of stage2_werror_flags to
action-if-given and to action-if-not-given.
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248737 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agopasses.c: implement pre-ICE emergency dumping
amonakov [Wed, 31 May 2017 13:26:54 +0000 (13:26 +0000)] 
passes.c: implement pre-ICE emergency dumping

* passes.c (emergency_dump_function): New.
* tree-pass.h (emergency_dump_function): Declare.
* plugin.c (plugins_internal_error_function): Remove.
* plugin.h (plugins_internal_error_function): Remove declaration.
* toplev.c (internal_error_function): New static function.  Use it...
(general_init): ...here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248736 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[ARC] Recognise add_n and sub_n in combine again
aburgess [Wed, 31 May 2017 13:15:33 +0000 (13:15 +0000)] 
[ARC] Recognise add_n and sub_n in combine again

Since the combine pass canonicalises shift-add insns using plus and
ashift (as opposed to plus and mult which it previously used to do), it
no longer creates *add_n or *sub_n insns, as the patterns match plus and
mult only. The outcome of this is that some opportunities to generate
add{1,2,3} and sub{1,2,3} instructions are missed.

This change adds additional *add_n and *sub_n insns that match the
plus-ashift pattern. The original *add_n and *sub_n insns are still left
in, as they are sometimes generated later on by constant propagation.
The idea of adding these insns is modelled on the changes in:

  https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01882.html

which addresses a similar issue for the PA target.

For the small test cases that are added, even if the combine pass misses
the opportunity to generate addN or subN, constant propagation manages
to do so, so the rtl of the combine pass is checked.

gcc/ChangeLog:

        * config/arc/arc.c (arc_print_operand): Handle constant operands.
        (arc_rtx_costs): Add costs for new patterns.
        * config/arc/arc.md: Additional *add_n and *sub_n patterns.
        * config/arc/predicates.md: Add _1_2_3_operand predicate.

gcc/testsuite/ChangeLog:

        * gcc.target/arc/add_n-combine.c: New test.
        * gcc.target/arc/sub_n-combine.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248735 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoPR libstdc++/80893 Fix null dereference in vector<bool>
redi [Wed, 31 May 2017 12:41:45 +0000 (12:41 +0000)] 
PR libstdc++/80893 Fix null dereference in vector<bool>

PR libstdc++/80893
* include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
null pointer dereference when size is zero.
* testsuite/23_containers/vector/bool/80893.cc: New.
* testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
Add non-explicit constructor from nullptr.
(PointerBase::derived() const): Add const-qualified overload.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248734 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago[1/2] Add get_next_strinfo helper function
rsandifo [Wed, 31 May 2017 12:26:03 +0000 (12:26 +0000)] 
[1/2] Add get_next_strinfo helper function

This patch just adds a helper function for getting the next strinfo
in a chain, since part 2 adds another place where we do that.

2017-05-16  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* tree-ssa-strlen.c (get_next_strinfo): New function.
(get_stridx_plus_constant): Use it.
(zero_length_string): Likewise.
(adjust_related_strinfos): Likewise.
(adjust_last_stmt): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248732 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-05-31 Richard Biener <rguenther@suse.de>
rguenth [Wed, 31 May 2017 12:09:51 +0000 (12:09 +0000)] 
2017-05-31  Richard Biener  <rguenther@suse.de>

PR target/80880
* config/i386/i386.c (ix86_expand_builtin): Remove assert
for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.

* gcc.target/i386/pr80880.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248731 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoAlternative check for vector refs with same alignment
rsandifo [Wed, 31 May 2017 12:05:10 +0000 (12:05 +0000)] 
Alternative check for vector refs with same alignment

vect_find_same_alignment_drs uses the ddr dependence distance
to tell whether two references have the same alignment.  Although
that's safe with the current code, there's no particular reason
why a dependence distance of 0 should mean that the accesses start
on the same byte.  E.g. a reference to a full complex value could
in principle depend on a reference to the imaginary component.
A later patch adds support for this kind of dependence.

On the other side, checking modulo vf is pessimistic when the step
divided by the element size is a factor of 2.

This patch instead looks for cases in which the drs have the same
base, offset and step, and for which the difference in their constant
initial values is a multiple of the alignment.

2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
loop_vinfo argument and use of dependence distance vectors.
Check instead whether the two references differ only in their
initial value and assume that they have the same alignment if the
difference is a multiple of the vector alignment.
(vect_analyze_data_refs_alignment): Update call accordingly.

gcc/testsuite/
* gcc.dg/vect/vect-103.c: Update wording of dump message.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248730 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoFix typo in a comment in cpuid.h (PR target/79155).
marxin [Wed, 31 May 2017 11:40:13 +0000 (11:40 +0000)] 
Fix typo in a comment in cpuid.h (PR target/79155).

2017-05-31  Martin Liska  <mliska@suse.cz>

PR target/79155
* config/i386/cpuid.h: Fix typo in a comment in cpuid.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248729 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * tree-vect-loop-manip.c (create_intersect_range_checks_index)
amker [Wed, 31 May 2017 09:03:27 +0000 (09:03 +0000)] 
* tree-vect-loop-manip.c (create_intersect_range_checks_index)
(create_intersect_range_checks): Move from ...
* tree-data-ref.c (create_intersect_range_checks_index)
(create_intersect_range_checks): ... to here.
(create_runtime_alias_checks): New function factored from ...
* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
here.  Call above function.
* tree-data-ref.h (create_runtime_alias_checks): New function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248726 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
amker [Wed, 31 May 2017 09:01:36 +0000 (09:01 +0000)] 
* tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
segment length for dr_b and compute it in wide_int.

gcc/testsuite
* gcc.dg/vect/pr80815-3.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248725 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-05-31 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
prakhar [Wed, 31 May 2017 08:25:25 +0000 (08:25 +0000)] 
2017-05-31  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

* MAINTAINERS: Add self to Write After Approval

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248723 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago2017-05-31 Richard Biener <rguenther@suse.de>
rguenth [Wed, 31 May 2017 07:09:21 +0000 (07:09 +0000)] 
2017-05-31  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80906
* graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
and pass through iv_map.
(copy_bb_and_scalar_dependences): Adjust.
(translate_pending_phi_nodes): Likewise.
(copy_loop_close_phi_args): Handle code-generating IVs instead
of ICEing.

* gcc.dg/graphite/pr80906.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248722 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago* configure.ac (strnlen): Add to AC_CHECK_DECLS.
dj [Wed, 31 May 2017 04:16:45 +0000 (04:16 +0000)] 
* configure.ac (strnlen): Add to AC_CHECK_DECLS.
* configure: Likewise.
* config.in: Add HACE_DECL_STRNLEN.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248721 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoDaily bump.
gccadmin [Wed, 31 May 2017 00:16:25 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248719 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoTest if host compiler supports -std=c++11 in ms-sysv.exp
vries [Tue, 30 May 2017 22:00:57 +0000 (22:00 +0000)] 
Test if host compiler supports -std=c++11 in ms-sysv.exp

2017-05-30  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80910
* gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp: Exit with status
unsupported if host compiler does not support c++11.
(host_supports_c++11): New proc.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248701 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogcc/testsuite/ChangeLog:
msebor [Tue, 30 May 2017 21:27:35 +0000 (21:27 +0000)] 
gcc/testsuite/ChangeLog:
PR c/80731
* g++.dg/ext/utf16-4.C: Relax test.
* gcc.dg/fixed-point/int-warning.c: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248700 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c++/80856 - ICE with local extern in template
jason [Tue, 30 May 2017 21:13:27 +0000 (21:13 +0000)] 
PR c++/80856 - ICE with local extern in template

* semantics.c (finish_call_expr): Replace a local extern overload
set in a template with the IDENTIFIER_NODE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248699 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoC++ template type diff printing
dmalcolm [Tue, 30 May 2017 20:38:14 +0000 (20:38 +0000)] 
C++ template type diff printing

gcc/ChangeLog:
* diagnostic-color.c (color_dict): Add "type-diff".
(parse_gcc_colors): Update comment.
* doc/invoke.texi (Diagnostic Message Formatting Options): Add
-fdiagnostics-show-template-tree and -fno-elide-type.
(GCC_COLORS): Add type-diff to example.
(type-diff=): New.
(-fdiagnostics-show-template-tree): New.
(-fno-elide-type): New.
* pretty-print.c (pp_format): Pass quote and formatters[argno] to
the pp_format_decoder callback.  Call any m_format_postprocessor's
"handle" method.
(pretty_printer::pretty_printer): Initialize
m_format_postprocessor.
(pretty_printer::~pretty_printer): Delete any
m_format_postprocessor.
* pretty-print.h (printer_fn): Add bool and const char **
parameters.
(class format_postprocessor): New class.
(struct pretty_printer::format_decoder): Document the new
parameters.
(struct pretty_printer::m_format_postprocessor): New field.
* tree-diagnostic.c (default_tree_printer): Update for new
bool and const char ** params.
* tree-diagnostic.h (default_tree_printer): Likewise.

gcc/c/ChangeLog:
* c-objc-common.c (c_tree_printer): Gain bool and const char **
parameters.

gcc/c-family/ChangeLog:
* c-format.c (gcc_cxxdiag_char_table): Add 'H' and 'I' to
format_chars.
* c.opt (fdiagnostics-show-template-tree): New option.
(felide-type): New option.

gcc/cp/ChangeLog:
* call.c (perform_implicit_conversion_flags): Convert
"from %qT to %qT" to "from %qH to %qI" in diagnostic.
(print_conversion_rejection): Replace pairs of %qT with
%qH and %qI in various places.
(build_user_type_conversion_1): Likewise.
(build_integral_nontype_arg_conv): Likewise.
(build_conditional_expr_1): Likewise.
(convert_like_real): Likewise.
(convert_arg_to_ellipsis): Likewise.
(joust): Likewise.
(initialize_reference): Likewise.
* cvt.c (cp_convert_to_pointer): Likewise.
(cp_convert_to_pointer): Likewise.
(convert_to_reference): Likewise.
(ocp_convert): Likewise.
* error.c (cp_printer): Gain bool and const char ** parameters.
(struct deferred_printed_type): New struct.
(class cxx_format_postprocessor): New class.
(cxx_initialize_diagnostics): Wire up a cxx_format_postprocessor
to pp->m_format_postprocessor.
(comparable_template_types_p): New function.
(newline_and_indent): New function.
(arg_to_string): New function.
(print_nonequal_arg): New function.
(print_template_differences): New function.
(type_to_string_with_compare): New function.
(print_template_tree_comparison): New function.
(append_formatted_chunk): New function.
(add_quotes): New function.
(cxx_format_postprocessor::handle): New function.
(defer_phase_2_of_type_diff): New function.
(cp_printer): Add "quoted" and "buffer_ptr" params.  Implement
%H and %I.
* typeck.c (cp_build_binary_op): Replace pairs of %qT with
%qH and %qI in various places.
(convert_member_func_to_ptr): Likewise.
(build_reinterpret_cast_1): Likewise.
(convert_for_assignment): Likewise.
* typeck2.c (check_narrowing): Likewise.

gcc/fortran/ChangeLog:
* error.c (gfc_format_decoder): Update for new bool and
const char ** params.

gcc/testsuite/ChangeLog:
* g++.dg/plugin/plugin.exp (plugin_test_list): Add...
* g++.dg/plugin/show-template-tree-color-no-elide-type.C: New
test case.
* g++.dg/plugin/show-template-tree-color.C: New test case.
* g++.dg/plugin/show_template_tree_color_plugin.c: New plugin.
* g++.dg/template/show-template-tree-2.C: New test case.
* g++.dg/template/show-template-tree-3.C: New test case.
* g++.dg/template/show-template-tree-4.C: New test case.
* g++.dg/template/show-template-tree-no-elide-type.C: New test case.
* g++.dg/template/show-template-tree.C: New test case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248698 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agoRemove gen_cell_microcode, warn_cell_microcode
segher [Tue, 30 May 2017 19:34:36 +0000 (19:34 +0000)] 
Remove gen_cell_microcode, warn_cell_microcode

-mno-gen-cell-microcode is a pain to handle correctly: it causes
different code generation for some very basic patterns, even patterns
specific to that option.  It also requires marking up many patterns,
which is a pain when adding new patterns or modifying existing ones
(first non-trivial step is finding the Cell BE manual!)

-mwarn-cell-microcode is very expensive, even more so after my recent
fix for PR43763; and it used to ICE for seven years before that fix.

This patch removes both these command line options (it leaves the
positive form of -mgen-cell-microcode, doing nothing, for
compatibility).

Where cc_reg_not_micro_cr0_operand was used, we now get the regular
cc_reg_not_cr0_operand.

One testcase used -mgen-cell-microcode and one its negation; both
are adjusted.

* config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
(lwa_operand): Delete rs6000_gen_cell_microcode test.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
rs6000_gen_cell_microcode code.
(rs6000_final_prescan_insn): Delete.
(rs6000_opt_vars): Delete the "gen-cell-microcode" and
"warn-cell-microcode" entries.
* config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
* config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
throughout.  Change cc_reg_not_micro_cr0_operand to
cc_reg_not_cr0_operand throughout.
(*extendhi<mode>2_noload): Delete.
* config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
(mwarn-cell-microcode): Delete.
* doc/invoke.texi (RS/6000 and PowerPC Options): Delete
-mgen-cell-microcode and -mwarn-cell-microcode.

gcc/testsuite/
* gcc.target/powerpc/shift-dot.c: Delete -mgen-cell-microcode from
dg-options.
* gfortran.dg/pr80107.f: Delete testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248695 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago Kill IDENTIFIER_NAMESPACE_BINDINGS
nathan [Tue, 30 May 2017 19:12:35 +0000 (19:12 +0000)] 
Kill IDENTIFIER_NAMESPACE_BINDINGS
* cp-tree.h (lang_identifier): Delete namespace_bindings.
(IDENTIFIER_NAMESPACE_BINDINGS): Delete.
(lang_decl_ns): Add bindings.
(DECL_NAMESPACE_BINDINGS): New.
* lex.c (retrofit_lang_decl): Create namespace hash table.
* name-lookup.c (find_namespace_slot): Change to use hash-map.
* ptree.c (cxx_print_binding): Delete.
(cxx_print_identifier): Remove NAMESPACE_BINDING printing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248694 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * cp-tree.def (OVERLOAD): Fix comment.
nathan [Tue, 30 May 2017 17:48:57 +0000 (17:48 +0000)] 
* cp-tree.def (OVERLOAD): Fix comment.
* cp-tree.h: Fix comments and whitespace.
* error.c (dump_decl): Use pp_cxx_colon_colon, ovl_scope.
* name-lookup.c (add_decl_to_level): Assert not class.
(check_local_shadow): Use OVL_P.
(pushdecl_with_scope_1): Rename to ...
(do_pushdecl_with_Scope): ... here.
(do_nonmember_using_decl): Use qualified_namespace_lookup return
value.
(push_class_level_binding_1): Use OVL_P.
(pushdecl_namespace_level): Use do_pushdecl_with_scope.
(pushtag_1): Rename to ...
(do_pushtag): ... here.  Adjust do_pushdecl_with_scope call.
(pushtag): Adjust.
(store_class_bindings): Do not time here.
* name-lookup.h (pushdecl_outermost_localscope): Reorder.
* pt.c (listify): Declare argvec at point of initialization.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248693 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago * ChangeLog: Add missing entry.
uros [Tue, 30 May 2017 17:25:43 +0000 (17:25 +0000)] 
* ChangeLog: Add missing entry.
* testsuite/ChangeLog: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248692 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR target/80833
uros [Tue, 30 May 2017 17:18:25 +0000 (17:18 +0000)] 
PR target/80833
* config/i386/constraints.md (Yd): New constraint.
(Ye): Ditto.
* config/i386/i386.md (*movti_internal): Add (?r, Ye)
and (?Yd, r) alternatives.  Update insn attributes.
* config/i386/i386.md (*movti_internal): Add (?r, *Ye)
and (?*Yd, r) alternatives.  Update insn attributes.
(double-mode inter-unit splitters): Add new GR<->XMM splitters.

testsuite/ChangeLog:

PR target/80833
* gcc.target/i386/pr80833-1.c: New test.
* gcc.target/i386/pr80833-2.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248691 138bc75d-0d04-0410-961f-82ee72b054a4

8 years agogimplify_modify_expr: avoid DECL_DEBUG_EXPR links across functions
pmderodat [Tue, 30 May 2017 15:34:00 +0000 (15:34 +0000)] 
gimplify_modify_expr: avoid DECL_DEBUG_EXPR links across functions

An upcoming patch exposes a bug in gimplify_modify_expr.  There, we try
not to create DECL_DEBUG_EXPR links across functions, however we don't
check that *FROM_P actually belongs to the current function before
modifying it.  This patch fixes this oversight.

gcc/

* gimplify.c (gimplify_modify_expr): Don't create a
DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248688 138bc75d-0d04-0410-961f-82ee72b054a4

8 years ago PR c++/80913
nathan [Tue, 30 May 2017 14:43:45 +0000 (14:43 +0000)] 
PR c++/80913
* name-lookup.c (add_decl_to_level): Assert not making a circular
chain.
(update_binding): Don't prematurely slide artificial decl.

* g++.dg/lookup/pr80913.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@248687 138bc75d-0d04-0410-961f-82ee72b054a4