1. 08 Dec, 2016 8 commits
    • P0003R5 - removal of dynamic exception specification from C++17 · 1d09844a
      	P0003R5 - removal of dynamic exception specification from C++17
      	* parser.c (cp_parser_exception_specification_opt): For C++17
      	error out on throw ( type-id-list ), for C++11 and C++14 issue
      	-Wdeprecated warning on it.  Formatting fix.  Treat throw()
      	in C++17 as noexcept(true).
      
      	* g++.dg/compat/eh/ctor1.h: Adjust for deprecation of
      	throw (type-id-list) in C++11 and C++14 and removal in C++17.
      	* g++.dg/compat/eh/ctor1_y.C: Likewise.
      	* g++.dg/compat/eh/new1_x.C: Likewise.
      	* g++.dg/compat/eh/new1_y.C: Likewise.
      	* g++.dg/compat/eh/spec3_x.C: Likewise.
      	* g++.dg/compat/eh/spec3_y.C: Likewise.
      	* g++.dg/compat/eh/template1.h: Likewise.
      	* g++.dg/compat/eh/template1_y.C: Likewise.
      	* g++.dg/compat/eh/unexpected1_x.C: Likewise.
      	* g++.dg/compat/eh/unexpected1_y.C: Likewise.
      	* g++.dg/cpp0x/auto9.C: Likewise.
      	* g++.dg/cpp0x/defaulted23.C: Likewise.
      	* g++.dg/cpp0x/error5.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-eh2.C: Likewise.
      	* g++.dg/cpp0x/noexcept02.C: Likewise.
      	* g++.dg/cpp0x/noexcept07.C: Likewise.
      	* g++.dg/cpp0x/noexcept08.C: Likewise.
      	* g++.dg/cpp0x/noexcept19.C: Likewise.
      	* g++.dg/cpp0x/variadic73.C: Likewise.
      	* g++.dg/cpp0x/variadic-throw.C: Likewise.
      	* g++.dg/cpp1z/noexcept-type1.C: Likewise.
      	* g++.dg/eh/async-unwind2.C: Likewise.
      	* g++.dg/eh/cond4.C: Likewise.
      	* g++.dg/eh/delete1.C: Likewise.
      	* g++.dg/eh/ehopt1.C: Likewise.
      	* g++.dg/eh/forced3.C: Likewise.
      	* g++.dg/eh/forced4.C: Likewise.
      	* g++.dg/eh/init-temp2.C: Likewise.
      	* g++.dg/eh/pr38662.C: Likewise.
      	* g++.dg/eh/pr41819.C: Likewise.
      	* g++.dg/eh/shadow1.C: Likewise.
      	* g++.dg/eh/spec2.C: Likewise.
      	* g++.dg/eh/spec3.C: Likewise.
      	* g++.dg/eh/spec5.C: Likewise.
      	* g++.dg/eh/spec6.C: Likewise.
      	* g++.dg/eh/spec7.C: Likewise.
      	* g++.dg/eh/spec8.C: Likewise.
      	* g++.dg/eh/spec9.C: Likewise.
      	* g++.dg/eh/template1.C: Likewise.
      	* g++.dg/eh/unexpected1.C: Likewise.
      	* g++.dg/ext/has_nothrow_assign.C: Likewise.
      	* g++.dg/ext/has_nothrow_constructor.C: Likewise.
      	* g++.dg/ext/has_nothrow_copy-1.C: Likewise.
      	* g++.dg/ext/has_nothrow_copy-2.C: Likewise.
      	* g++.dg/ext/has_nothrow_copy-4.C: Likewise.
      	* g++.dg/ext/has_nothrow_copy-5.C: Likewise.
      	* g++.dg/ext/has_nothrow_copy-6.C: Likewise.
      	* g++.dg/ext/has_nothrow_copy-7.C: Likewise.
      	* g++.dg/gcov/gcov-7.C: Likewise.
      	* g++.dg/init/new13.C: Likewise.
      	* g++.dg/init/new25.C: Likewise.
      	* g++.dg/lookup/exception1.C: Likewise.
      	* g++.dg/opt/noreturn-1.C: Likewise.
      	* g++.dg/other/error3.C: Likewise.
      	* g++.dg/rtti/crash3.C: Likewise.
      	* g++.dg/template/eh2.C: Likewise.
      	* g++.dg/template/error36.C: Likewise.
      	* g++.dg/tm/pr46567.C: Likewise.
      	* g++.dg/tm/pr47340.C: Likewise.
      	* g++.dg/torture/pr46364.C: Likewise.
      	* g++.dg/torture/pr49394.C: Likewise.
      	* g++.dg/torture/pr52918-1.C: Likewise.
      	* g++.dg/torture/pr57190.C: Likewise.
      	* g++.dg/torture/stackalign/eh-alloca-1.C: Likewise.
      	* g++.dg/torture/stackalign/eh-fastcall-1.C: Likewise.
      	* g++.dg/torture/stackalign/eh-global-1.C: Likewise.
      	* g++.dg/torture/stackalign/eh-inline-1.C: Likewise.
      	* g++.dg/torture/stackalign/eh-inline-2.C: Likewise.
      	* g++.dg/torture/stackalign/eh-thiscall-1.C: Likewise.
      	* g++.dg/torture/stackalign/eh-vararg-1.C: Likewise.
      	* g++.dg/torture/stackalign/eh-vararg-2.C: Likewise.
      	* g++.dg/tree-ssa/pr45605.C: Likewise.
      	* g++.dg/warn/Wreturn-type-3.C: Likewise.
      	* g++.old-deja/g++.eh/badalloc1.C: Likewise.
      	* g++.old-deja/g++.eh/cleanup2.C: Likewise.
      	* g++.old-deja/g++.eh/spec1.C: Likewise.
      	* g++.old-deja/g++.eh/spec2.C: Likewise.
      	* g++.old-deja/g++.eh/spec3.C: Likewise.
      	* g++.old-deja/g++.eh/spec4.C: Likewise.
      	* g++.old-deja/g++.eh/spec6.C: Likewise.
      	* g++.old-deja/g++.eh/throw1.C: Likewise.
      	* g++.old-deja/g++.eh/throw2.C: Likewise.
      	* g++.old-deja/g++.eh/tmpl1.C: Likewise.
      	* g++.old-deja/g++.eh/tmpl3.C: Likewise.
      	* g++.old-deja/g++.mike/eh15.C: Likewise.
      	* g++.old-deja/g++.mike/eh25.C: Likewise.
      	* g++.old-deja/g++.mike/eh33.C: Likewise.
      	* g++.old-deja/g++.mike/eh34.C: Likewise.
      	* g++.old-deja/g++.mike/eh50.C: Likewise.
      	* g++.old-deja/g++.mike/eh51.C: Likewise.
      	* g++.old-deja/g++.mike/eh55.C: Likewise.
      	* g++.old-deja/g++.mike/p10416.C: Likewise.
      	* g++.old-deja/g++.other/crash28.C: Likewise.
      	* g++.old-deja/g++.other/crash30.C: Likewise.
      	* g++.old-deja/g++.other/new7.C: Likewise.
      	* g++.old-deja/g++.pt/ehspec1.C: Likewise.
      	* g++.old-deja/g++.robertl/eb123.C: Likewise.
      
      	* testsuite/util/testsuite_new_operators.h: Include testsuite_hooks.h.
      	(operator new): Use THROW macro.
      
      From-SVN: r243429
      Jakub Jelinek committed
    • aarch64.c (aarch64_load_symref_appropriately): Handle SYMBOL_SMALL_TLSGD for ILP32. · 23b88fda
      2016-12-08  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
      
      gcc
      	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
      	Handle SYMBOL_SMALL_TLSGD for ILP32.
      	* config/aarch64/aarch64.md : tlsgd_small modified into
      	tlsgd_small_<mode> to support SImode and DImode.
      	*tlsgd_small modified into *tlsgd_small_<mode> to support SImode and
      	DImode.
      
      gcc/testsuite
      	* gcc.target/aarch64/pr78382.c : New Testcase.
      
      From-SVN: r243428
      Naveen H.S committed
    • aarch64.c (aarch64_load_symref_appropriately): Access the lower part of RTX appropriately. · 4ba8f0a3
      2016-12-08  Andrew Pinski  <apinski@cavium.com>
      
      gcc
      	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
      	Access the lower part of RTX appropriately.
      
      gcc/testsuite
      	* gcc.target/aarch64/pr71112.c : New Testcase.
      
      From-SVN: r243427
      Andrew Pinski committed
    • Split class rtx_reader into md_reader vs rtx_reader · a96d1f1d
      This moves read_rtx and friends into rtx_reader, and splits
      rtx_reader into two classes:
      
      class md_reader: has responsibility for reading chars, managing
      include files, top-level directives etc.  It is the read-md.o part.
      
      class rtx_reader, a subclass, has the code for reading hierarchical
      rtx expressions using the format codes.   It is the read-rtl.o part.
      
      This split is needed by a followup patch, which converts
      read_rtx_operand to a virtual function of rtx_reader.  To do this,
      instances of rtx_reader (or its subclasses) need a vtable, which
      needs to include a ptr to the code in read-rtl.o.  Splitting it up
      allows the gen* tools that currently purely use read-md.o to continue
      to do so.
      
      gcc/ChangeLog:
      	* genpreds.c (write_tm_constrs_h): Update for renaming of
      	rtx_reader_ptr to md_reader_ptr.
      	(write_tm_preds_h): Likewise.
      	(write_insn_preds_c): Likewise.
      	* read-md.c (rtx_reader_ptr): Rename to...
      	(md_reader_ptr): ...this, and convert from an
      	rtx_reader * to a md_reader *.
      	(rtx_reader::set_md_ptr_loc): Rename to...
      	(md_reader::set_md_ptr_loc): ...this.
      	(rtx_reader::get_md_ptr_loc): Rename to...
      	(md_reader::get_md_ptr_loc): ...this.
      	(rtx_reader::copy_md_ptr_loc): Rename to...
      	(md_reader::copy_md_ptr_loc): ...this.
      	(rtx_reader::fprint_md_ptr_loc): Rename to...
      	(md_reader::fprint_md_ptr_loc): ...this.
      	(rtx_reader::print_md_ptr_loc): Rename to...
      	(md_reader::print_md_ptr_loc): ...this.
      	(rtx_reader::join_c_conditions): Rename to...
      	(md_reader::join_c_conditions): ...this.
      	(rtx_reader::fprint_c_condition): ...this.
      	(rtx_reader::print_c_condition): Rename to...
      	(md_reader::print_c_condition): ...this.
      	(fatal_with_file_and_line):  Update for renaming of
      	rtx_reader_ptr to md_reader_ptr.
      	(rtx_reader::require_char): Rename to...
      	(md_reader::require_char): ...this.
      	(rtx_reader::require_char_ws): Rename to...
      	(md_reader::require_char_ws): ...this.
      	(rtx_reader::require_word_ws): Rename to...
      	(md_reader::require_word_ws): ...this.
      	(rtx_reader::read_char): Rename to...
      	(md_reader::read_char): ...this.
      	(rtx_reader::unread_char): Rename to...
      	(md_reader::unread_char): ...this.
      	(rtx_reader::peek_char): Rename to...
      	(md_reader::peek_char): ...this.
      	(rtx_reader::read_name): Rename to...
      	(md_reader::read_name): ...this.
      	(rtx_reader::read_escape): Rename to...
      	(md_reader::read_escape): ...this.
      	(rtx_reader::read_quoted_string): Rename to...
      	(md_reader::read_quoted_string): ...this.
      	(rtx_reader::read_braced_string): Rename to...
      	(md_reader::read_braced_string): ...this.
      	(rtx_reader::read_string): Rename to...
      	(md_reader::read_string): ...this.
      	(rtx_reader::read_skip_construct): Rename to...
      	(md_reader::read_skip_construct): ...this.
      	(rtx_reader::handle_constants): Rename to...
      	(md_reader::handle_constants): ...this.
      	(rtx_reader::traverse_md_constants): Rename to...
      	(md_reader::traverse_md_constants): ...this.
      	(rtx_reader::handle_enum): Rename to...
      	(md_reader::handle_enum): ...this.
      	(rtx_reader::lookup_enum_type): Rename to...
      	(md_reader::lookup_enum_type): ...this.
      	(rtx_reader::traverse_enum_types): Rename to...
      	(md_reader::traverse_enum_types): ...this.
      	(rtx_reader::rtx_reader): Rename to...
      	(md_reader::md_reader): ...this, and update for renaming of
      	rtx_reader_ptr to md_reader_ptr.
      	(rtx_reader::~rtx_reader): Rename to...
      	(md_reader::~md_reader): ...this, and update for renaming of
      	rtx_reader_ptr to md_reader_ptr.
      	(rtx_reader::handle_include): Rename to...
      	(md_reader::handle_include): ...this.
      	(rtx_reader::handle_file): Rename to...
      	(md_reader::handle_file): ...this.
      	(rtx_reader::handle_toplevel_file): Rename to...
      	(md_reader::handle_toplevel_file): ...this.
      	(rtx_reader::get_current_location): Rename to...
      	(md_reader::get_current_location): ...this.
      	(rtx_reader::add_include_path): Rename to...
      	(md_reader::add_include_path): ...this.
      	(rtx_reader::read_md_files): Rename to...
      	(md_reader::read_md_files): ...this.
      	* read-md.h (class rtx_reader): Split into...
      	(class md_reader): ...new class.
      	(rtx_reader_ptr): Rename to...
      	(md_reader_ptr): ...this, and convert to a md_reader *.
      	(class noop_reader): Update base class to be md_reader.
      	(class rtx_reader): Reintroduce as a subclass of md_reader.
      	(rtx_reader_ptr): Reintroduce as a rtx_reader *.
      	(read_char): Update for renaming of rtx_reader_ptr to
      	md_reader_ptr.
      	(unread_char): Likewise.
      	* read-rtl.c (rtx_reader_ptr): New global.
      	(rtx_reader::apply_iterator_to_string): Rename to...
      	(md_reader::apply_iterator_to_string): ...this.
      	(rtx_reader::copy_rtx_for_iterators): Rename to...
      	(md_reader::copy_rtx_for_iterators): ...this.
      	(rtx_reader::read_conditions): Rename to...
      	(md_reader::read_conditions): ...this.
      	(rtx_reader::record_potential_iterator_use): Rename to...
      	(md_reader::record_potential_iterator_use): ...this.
      	(rtx_reader::read_mapping): Rename to...
      	(md_reader::read_mapping): ...this.
      	(rtx_reader::read_rtx): Use rtx_reader_ptr when calling
      	read_rtx_code.
      	(rtx_reader::read_rtx_operand): Use get_string_obstack rather
      	than directly accessing m_string_obstack.
      	(rtx_reader::rtx_reader): New ctor.
      	(rtx_reader::~rtx_reader): New dtor.
      
      From-SVN: r243426
      David Malcolm committed
    • runtime: remove some unused variables/declarations from runtime.h · 776a8a92
          
          Small patch from Eric Botcazou.
          
          Reviewed-on: https://go-review.googlesource.com/34029
      
      From-SVN: r243424
      Ian Lance Taylor committed
    • Daily bump. · f9adfcca
      From-SVN: r243423
      GCC Administrator committed
    • simplify-rtx: Fix the last fix (PR78638) · 12705913
      I managed to get the last obvious fix wrong: mode is M1, GET_MODE (op)
      is M2.
      
      [ adding missing PR marker ]
      
      
      	PR rtl-optimization/78638
      	* simplify-rtx.c (simplify_truncation): M2 is not mode, it is
      	GET_MODE (op).  Fix this.
      
      From-SVN: r243420
      Segher Boessenkool committed
    • PR c/53562 - Add -Werror= support for -D_FORTIFY_SOURCE / __builtin___memcpy_chk · ee92e7ba
      PR c/53562 - Add -Werror= support for -D_FORTIFY_SOURCE / __builtin___memcpy_chk
      PR middle-end/77784 - duplicate warning for snprintf when n > object size
      PR middle-end/78149 - missing warning on strncpy buffer overflow due to an excessive bound
      PR middle-end/78138 - missing warnings on buffer overflow with non-constant source length
      
      gcc/c-family/ChangeLog:
      
      	PR c/53562
      	PR middle-end/77784
      	PR middle-end/78149
      	PR middle-end/78138
      	* c.opt (-Wstringop-overflow): New option.
      
      gcc/ChangeLog:
      
      	PR middle-end/77784
      	PR middle-end/78149
      	PR middle-end/78138
      	
      	* builtins.c (expand_builtin_strcat, expand_builtin_strncat): New
      	functions.
      	(compute_dest_size, get_size_range, check_sizes, check_strncat_sizes)
      	(check_memop_sizes): Same.
      	(expand_builtin_memcpy): Call check memop_sizes.
      	(expand_builtin_mempcpy): Same.
      	(expand_builtin_memset): Same,
      	(expand_builtin_bzero): Same.
      	(expand_builtin_memory_chk): Call check_sizes.
      	(expand_builtin_strcpy): Same.
      	(expand_builtin_strncpy): Same.
      	(maybe_emit_sprintf_chk_warning): Same.
      	(expand_builtin): Handle strcat and strncat.
      	(fini_object_sizes): Reset pointers.
      	(compute_object_size): New function.
      	* gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
      	Avoid issuing warnings also issued during built-in expansion.
      	* doc/invoke.texi (Warning Options): Document -Wstringop-overflow.
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/77784
      	PR middle-end/78149
      	PR middle-end/78138
      
      	* c-c++-common/Wsizeof-pointer-memaccess2.c: Adjust expected diagnostic.
      	* g++.dg/ext/builtin-object-size3.C (bar): Same.
      	* g++.dg/ext/strncpy-chk1.C: Same.
      	* g++.dg/opt/memcpy1.C: Same.
      	* g++.dg/torture/Wsizeof-pointer-memaccess1.C: Same.
      	* gcc.c-torture/compile/pr55569.c: Disable -Wstringop-overflow.
      	* gcc.dg/Wobjsize-1.c: Adjust expected diagnostic.
      	* gcc.dg/attr-alloc_size.c: Same.
      	* gcc.dg/builtin-stringop-chk-1.c: Adjust expected diagnostic.
      	* gcc.dg/builtin-stringop-chk-2.c: Same.
      	* gcc.dg/builtin-stringop-chk-4.c: New test.
      	* gcc.dg/builtin-strncat-chk-1.c: Adjust expected diagnostic.
      	* gcc.dg/memcpy-2.c: Same.
      	* gcc.dg/pr40340-1.c: Same.
      	* gcc.dg/pr40340-2.c (main): Same.
      	* gcc.dg/pr40340-5.c (main): Same.
      	* gcc.dg/torture/Wsizeof-pointer-memaccess1.c: Same.
      	* gcc.dg/torture/pr71132.c: Disable -Wstringop-overflow.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust text of expected
      	warning.
      	* gfortran.dg/char_length_3.f90: Prune expected warnings.
      	* gfortran.dg/pr38868.f: Add expected warnings.
      
      From-SVN: r243419
      Martin Sebor committed
  2. 07 Dec, 2016 32 commits
    • re PR target/72717 (ICE: in emit_move_insn, at expr.c:3693 with vector shift @ powerpc64le) · fc3f36f9
      [gcc]
      2016-12-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/72717
      	* config/rs6000/rs6000.c (rs6000_expand_vector_init): If the
      	V2DImode elements are SUBREG's convert the result into DImode
      	rather than failing in emit_move_insn.
      
      [gcc/testsuite]
      2016-12-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/72717
      	* gcc.target/powerpc/pr72717.c: New test.
      
      From-SVN: r243418
      Michael Meissner committed
    • sync config/* from binutils · 18697a1d
      	* elf.m4: Revert 2016-06-21 change.
      	* picflag.m4: Likewise.  Revert 2016-04-30 change too.
      	* override.m4 (AC_PROG_LEX): Import 2016-01-18 binutils fix
      	for PR binutils/19481.
      
      From-SVN: r243417
      Alan Modra committed
    • 2016-12-07 François Dumont <fdumont@gcc.gnu.org> · 352f824f
      	* include/bits/stl_tree.h
      	(_Rb_tree<>::_M_copy(_Const_Link_type, _Base_ptr)): Delete.
      	(_Rb_tree<>::_M_copy(const _Rb_tree&, _NodeGen&)): New.
      	(_Rb_tree<>::_M_copy(const _Rb_tree&)): New, use latter.
      	(_Rb_tree<>(const _Rb_tree&): Use latter.
      	(_Rb_tree<>(const _Rb_tree&, const allocator_type&)): Likewise.
      	(_Rb_tree<>::_M_move_data(_Rb_tree&, false_type)): Likewise.
      	(_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Likewise.
      	(_Rb_tree<>::operator=(const _Rb_tree&)): Likewise.
      
      From-SVN: r243380
      François Dumont committed
    • stl_map.h (map(const map&)): Make default. · a4dec0d6
      2016-12-07  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_map.h (map(const map&)): Make default.
      	(map(map&&)): Likewise.
      	(~map()): Likewise.
      	(operator=(const map&)): Likewise.
      	* include/bits/stl_multimap.h (multimap(const multimap&)): Make default.
      	(multimap(multimap&&)): Likewise.
      	(~multimap()): Likewise.
      	(operator=(const multimap&)): Likewise.
      	* include/bits/stl_set.h (set(const set&)): Make default.
      	(set(set&&)): Likewise.
      	(~set()): Likewise.
      	(operator=(const set&)): Likewise.
      	* include/bits/stl_multiset.h (multiset(const multiset&)): Make default.
      	(multiset(multiset&&)): Likewise.
      	(~multiset()): Likewise.
      	(operator=(const multiset&)): Likewise.
      	* include/bits/stl_tree.h (_Rb_tree_key_compare<>): New.
      	(_Rb_tree_header): New.
      	(_Rb_tree_impl): Inherit from latters.
      	(_Rb_tree_impl()): Make default.
      	(_Rb_tree_impl(const _Rb_tree_impl&)): New.
      	(_Rb_tree<>(const _Rb_tree&): Use latter.
      	(_Rb_tree_impl(_Rb_tree_impl&&)): New, default.
      	(_Rb_tree_impl(const _Key_compare&, const _Node_allocator&)): Delete.
      	(_Rb_tree_impl::_M_reset): Move...
      	(_Rb_tree_header::_M_reset): ...here.
      	(_Rb_tree_impl::_M_initialize): Delete.
      	(_Rb_tree(_Rb_tree&&)): Make default.
      	(_Rb_tree_header::_M_move_data(_Rb_tree_header&)): New.
      	(_Rb_tree<>::_M_move_data(_Rb_tree&, true_type)): Use latter.
      	(_Rb_tree<>(_Rb_tree&&)): Make default.
      
      From-SVN: r243379
      François Dumont committed
    • builtins.c (fold_builtin_strstr): Removed. · c8952930
      	* builtins.c (fold_builtin_strstr): Removed.
      	(fold_builtin_2): Don't call fold_builtin_strstr.
      	* gimple-fold.c (gimple_fold_builtin_strchr): Check is_strrchr
      	earlier in the strrchr (x, 0) -> strchr (x, 0) optimization.
      	(gimple_fold_builtin_strstr): New function.
      	(gimple_fold_builtin): Call it.
      	* fold-const-call.c (fold_const_call): Handle CFN_BUILT_IN_STRSTR.
      
      	* gcc.dg/builtin-strstr-1.c: New test.
      	* g++.dg/cpp0x/constexpr-strstr.C: New test.
      
      From-SVN: r243378
      Jakub Jelinek committed
    • re PR tree-optimization/78692 (ICE (segfault)) · 77f1efdb
      	PR c++/78692
      	* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Set lhs
      	var to lhs of new_stmt right before noreturn handling rather than to
      	lhs of e->call_stmt early.
      
      	* g++.dg/torture/pr78692.C: New test.
      
      From-SVN: r243377
      Jakub Jelinek committed
    • Add some functions for use by the RTL frontend. · 9c4e96eb
      gcc/ChangeLog:
      	* read-md.c (rtx_reader::require_char): New method.
      	(require_char_ws): Convert from function to...
      	(rtx_reader::require_char_ws): ...method.
      	(rtx_reader::require_word_ws): New method.
      	* read-md.h (rtx_reader::require_char): New method decl.
      	(require_char_ws): Remove global decl in favor of...
      	(rtx_reader::require_char_ws): ...new method decl.
      	(rtx_reader::require_word_ws): New method decl.
      	(rtx_reader::peek_char): New method decl.
      
      From-SVN: r243376
      David Malcolm committed
    • re PR rtl-optimization/78617 (LRA clobbers live register during rematerialization) · 8e1d640f
      2016-12-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          PR rtl-optimization/78617
          * lra-remat.c (do_remat): Initialize live_hard_regs from live in
          registers, also setting hard registers mapped to pseudo registers.
      
          gcc/testsuite/
          PR rtl-optimization/78617
          * gcc.c-torture/execute/pr78617.c: New test.
      
      From-SVN: r243374
      Thomas Preud'homme committed
    • Introduce rtl_data::init_stack_alignment · 8194c537
      Move this part of "expand"'s initialization of crtl into its own
      method so that it can used by the RTL frontend when postprocessing
      RTL dumps.
      
      gcc/ChangeLog:
      	* cfgexpand.c (pass_expand::execute): Move stack initializations
      	to rtl_data::init_stack_alignment and call it.
      	* emit-rtl.c (rtl_data::init_stack_alignment): New method.
      	* emit-rtl.h (rtl_data::init_stack_alignment): New method.
      
      From-SVN: r243371
      David Malcolm committed
    • builtins-3.c: Move built-in tests for P8 and P9 to their own test file. · 27e7087f
      2016-12-07  Carl Love  <cel@us.ibm.com>
      
      	* gcc.target/powerpc/builtins-3.c: Move built-in tests for P8 and
      	P9 to their own test file.  This allows precise constraints on the
      	effective target and compile options.
      	* gcc.target/powerpc/builtins-3-p8.c: New file for the vector
      	compare P8 built-in tests.
      	* gcc.target/powerpc/builtins-3-p9.c: New file for the vector
      	compare P9 built-in tests.
      
      From-SVN: r243370
      Carl Love committed
    • pr77761.c: Require int128 effective target. · 4dfad1fb
      	* gcc.target/i386/pr77761.c: Require int128 effective target.
      	(avx512f_test): Delete.
      	(do_main): Rename to avx512f_test.
      
      From-SVN: r243367
      Uros Bizjak committed
    • Replace uses of C++14 remove_cv_t alias in C++11 header · 435f4342
      	* include/experimental/bits/fs_path.h (path::_S_convert): Replace
      	uses of C++14 std::remove_cv_t alias template.
      
      From-SVN: r243355
      Jonathan Wakely committed
    • Replace use of C++14 std::exchange in C++11 testcase · d71f5aa7
      	* testsuite/28_regex/traits/char/user_defined.cc: Replace uses of
      	C++14 std::exchange function.
      
      From-SVN: r243354
      Jonathan Wakely committed
    • Replace dynamic exception specifications in testsuite · 1f153a1d
      	* testsuite/util/testsuite_hooks.h (THROW): Define.
      	* testsuite/util/replacement_memory_operators.h: Include
      	testsuite_hooks.h and use THROW macro.
      	* testsuite/util/testsuite_tr1.h: Likewise.
      	* testsuite/20_util/allocator/1.cc: Use THROW macro.
      	* testsuite/22_locale/locale/cons/12352.cc: Likewise.
      	* testsuite/23_containers/vector/zero_sized_allocations.cc: Likewise.
      	* testsuite/30_threads/lock_guard/cons/1.cc: Replace dynamic exception
      	specification with noexcept-specifier.
      	* testsuite/ext/pool_allocator/allocate_chunk.cc: Include
      	testsuite_hooks.h and use THROW macro.
      	* testsuite/ext/profile/replace_new.cc: Likewise.
      
      From-SVN: r243353
      Jonathan Wakely committed
    • Use _GLIBCXX_THROW macro in bitmap_allocator · ba454dfb
      	* include/ext/bitmap_allocator.h (bitmap_allocator::_S_refill_pool)
      	(bitmap_allocator::_M_allocate_single_object)
      	(bitmap_allocator::_M_get): Use _GLIBCXX_THROW macro.
      
      From-SVN: r243352
      Jonathan Wakely committed
    • Disable test using std::set_unexcepted for C++17 · 101ee3cc
      	* testsuite/18_support/bad_exception/59392.cc: Disable for C++17.
      
      From-SVN: r243351
      Jonathan Wakely committed
    • Improve tests for contents of <new> header · 63915a91
      	* testsuite/18_support/headers/new/synopsis.cc: Add C++14 and C++17
      	declarations.
      	* testsuite/18_support/headers/new/synopsis_cxx98.cc: New test.
      
      From-SVN: r243349
      Jonathan Wakely committed
    • GCC caches the whether a function is a leaf in crtl->is_leaf. · 0064f49e
      GCC caches the whether a function is a leaf in crtl->is_leaf. Using this
      in the backend is best as leaf_function_p may not work correctly (eg. while
      emitting prolog or epilog code).  There are many reads of crtl->is_leaf
      before it is initialized.  Many targets do in targetm.frame_pointer_required
      (eg. arm, aarch64, i386, mips, sparc), which is called before register 
      allocation by ira_setup_eliminable_regset and sched_init.
      
      Additionally, SHRINK_WRAPPING_ENABLED calls targetm.have_simple_return,
      which evaluates the condition of the simple_return instruction.  On ARM
      this results in a call to use_simple_return_p which requires crtl->is_leaf
      to be set correctly.
      
      To fix this, initialize crtl->is_leaf in ira_setup_eliminable_regset and
      early on in ira.  A bootstrap did not find any uninitialized reads of
      crtl->is_leaf on Thumb-2.  A follow-up patch will remove incorrect uses
      of leaf_function_p from the ARM backend.
      
          gcc/
      	* gcc/ira.c (ira_setup_eliminable_regset): Initialize crtl->is_leaf.
      	(ira): Move initialization of crtl->is_leaf earlier.
      
      From-SVN: r243347
      Wilco Dijkstra committed
    • Improve TI mode address offsets - these may either use LDP of 64-bit or LDR of 128-bit... · 8734dfac
      Improve TI mode address offsets - these may either use LDP of 64-bit or
      LDR of 128-bit, so we need to use the correct intersection of offsets.
      When splitting a large offset into base and offset, use a signed 9-bit 
      unscaled offset.
      
      Remove the Ump constraint on movti and movtf instructions as this blocks
      the reload optimizer from merging address CSEs (is this supposed to work
      only on 'm' constraints?).  The result is improved codesize, especially
      wrf and gamess in SPEC2006.
      
          gcc/
      	* config/aarch64/aarch64.md (movti_aarch64): Change Ump to m.
      	(movtf_aarch64): Likewise.
      	* config/aarch64/aarch64.c (aarch64_classify_address):
      	Use correct intersection of offsets.
      	(aarch64_legitimize_address_displacement): Use 9-bit signed offsets.
      	(aarch64_legitimize_address): Use 9-bit signed offsets for TI/TF mode.
      	Use 7-bit signed scaled mode for modes > 16 bytes.
      
      From-SVN: r243346
      Wilco Dijkstra committed
    • [Patch PR78561 PowerPC] Revert to old behaviour for counting constant pools · da88ea02
      gcc/
      
      	PR rtl-optimization/78561
      	* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Use
      	constant_pool_empty_p in place of get_pool_size_upper_bound.
      	(rs6000_stack_info): Likewise.
      	(rs6000_emit_prologue): Likewise.
      	(rs6000_elf_declare_function_name): Likewise.
      	(rs6000_set_up_by_prologue): Likewise.
      	(rs6000_can_eliminate): Likewise.
      	* output.h (get_pool_size_upper_bound): Delete.
      	(constant_pool_empty_p): New.
      	* varasm.c (get_pool_size_upper_bound): Delete
      	(constant_pool_empty_p): New.
      
      From-SVN: r243345
      James Greenhalgh committed
    • Use dump_function_name rather than emit <built-in> · 716c5ace
      2016-12-07  Martin Jambor  <mjambor@suse.cz>
      
      	PR c++/78589
      	* error.c (dump_decl): Use dump_function_name to dump
      	!DECL_LANG_SPECIFIC function decls with no or self-referencing
      	abstract origin.
      
      From-SVN: r243344
      Martin Jambor committed
    • pt.c (tsubst <{NON,}TYPE_ARGUMENT_PACK>): Simplify control flow and avoid re-tsubsting type. · 098eae00
      	* pt.c (tsubst <{NON,}TYPE_ARGUMENT_PACK>: Simplify control flow
      	and avoid re-tsubsting type.
      
      From-SVN: r243343
      Nathan Sidwell committed
    • cp-tree.h (enum cp_tree_index): Add CPTI_AUTO_IDENTIFIER & CPTI_DECLTYPE_AUTO_IDENTIFIER. · b3235e97
      	* cp-tree.h (enum cp_tree_index): Add CPTI_AUTO_IDENTIFIER &
      	CPTI_DECLTYPE_AUTO_IDENTIFIER.
      	(auto_identifier, decltype_auto_identifier): New.
      	*decl.c (initialize_predefined_identifiers): Add 'auto' and
      	'decltype(auto)'.
      	(grokdeclarator): Use cached identifier.
      	* pt.c (make_decltype_auto, make_auto, make_constrained_auto,
      	is_auto): Likewise.
      
      From-SVN: r243342
      Nathan Sidwell committed
    • decl.c (gnat_to_gnu_entity): When they are global... · bbe9a71d
      	* gcc-interface/decl.c (gnat_to_gnu_entity): When they are global,
      	consider ___XR GNAT encodings variables for renamings as static so
      	they have a location in the debug info.
      
      From-SVN: r243341
      Pierre-Marie de Rodat committed
    • decl.c (gnat_to_gnu_entity): Translate System.Address into ptr_type_node for… · f2e04c79
      decl.c (gnat_to_gnu_entity): Translate System.Address into ptr_type_node for every foreign convention.
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Translate
      	System.Address into ptr_type_node for every foreign convention.
      	(gnat_to_gnu_subprog_type): Likewise for result and parameter types.
      	(gnat_to_gnu_param): Do not do it here for GCC builtins.
      	(intrin_return_compatible_p): Likewise.
      
      From-SVN: r243340
      Eric Botcazou committed
    • Adjust comment · aa35e3ba
      From-SVN: r243338
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Also call finish_character_type on Character subtypes. · 2c1f5c0a
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
      	Also call finish_character_type on Character subtypes.
      	* gcc-interface/utils.c (finish_character_type): Deal with subtypes.
      
      From-SVN: r243336
      Eric Botcazou committed
    • re PR middle-end/78691 (ICE compiling Linux boot code) · ebf41734
      	PR tree-optimization/78691
      	* match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)):
      	Require integral type for the outer expression.
      	gcc/testsuite
      	PR tree-optimization/78691
      	* gcc.target/i386/pr78691-i386.c: New test.
      	* gcc.target/powerpc/pr78691-ppc.c: New test.
      
      From-SVN: r243335
      Bin Cheng committed
    • Compile gcc.target/i386/pr70322-?.c with -mno-stackrealign · 81a58ffb
      	* gcc.target/i386/pr70322-1.c: Add -mno-stackrealign to dg-options.
      	* gcc.target/i386/pr70322-2.c: Likewise.
      	* gcc.target/i386/pr70322-3.c: Likewise.
      	* gcc.target/i386/pr70322-4.c: Likewise.
      
      From-SVN: r243334
      Rainer Orth committed
    • 2016-12-07 Naveen H.S <Naveen.Hurugalawadi@cavium.com> · 7df76747
      gcc
      	* config/aarch64/aarch64.c
      	(aarch64_builtin_support_vector_misalignment): New.
      	(TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Define.
      gcc/testsuite
      	* gcc.target/aarch64/pr71727.c : New Testcase.
      
      From-SVN: r243333
      Naveen H.S committed
    • Fix x86_64-ism in selftest (PR bootstrap/78705) · fd1c9a07
      In r243317 I accidentally introduced an assumption in a selftest
      in i386.c that Pmode == DImode.  This patch conditionalizes the
      overzealous string comparison to avoid breaking the build on
      32-bit i386.c targets.
      
      gcc/ChangeLog:
      	PR bootstrap/78705
      	* config/i386/i386.c (selftest::ix86_test_dumping_memory_blockage):
      	Conditionalize the string comparison on Pmode == DImode.
      
      From-SVN: r243332
      David Malcolm committed
    • Daily bump. · b9e8329d
      From-SVN: r243328
      GCC Administrator committed