1. 09 Jan, 2017 3 commits
  2. 08 Jan, 2017 7 commits
    • PR tree-optimization/78913 - Probably misleading error reported by -Wformat-length · efcc8d38
      PR tree-optimization/78913 - Probably misleading error reported by -Wformat-length
      PR middle-end/77708 - -Wformat-length %s warns for snprintf
      
      gcc/ChangeLog:
      
      	PR middle-end/77708
      	* doc/invoke.texi (Warning Options): Document -Wformat-truncation.
      	* gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
      	New member functions.
      	(format_directive): Used them.
      	(add_bytes): Same.
      	(pass_sprintf_length::handle_gimple_call): Same.
      	* graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
      	to avoid truncation for any argument.
      	(extract_affine_mul): Same.
      	* tree.c (get_file_function_name): Same.
      
      gcc/c-family/ChangeLog:
      
      	PR middle-end/77708
      	* c.opt (-Wformat-truncation): New option.
      
      gcc/fortran/ChangeLog:
      
      	PR tree-optimization/78913
      	PR middle-end/77708
      	* trans-common.c (build_equiv_decl): Increase buffer size to avoid
      	truncation for any argument.
      	* trans-types.c (gfc_build_logical_type): Same.
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/77708
      	* gcc.dg/tree-ssa/builtin-snprintf-warn-1.c: New test.
      	* gcc.dg/tree-ssa/builtin-snprintf-warn-2.c: New test.
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-6.c: XFAIL test cases failing
      	due to bug 78969.
      	* gcc.dg/format/pr78569.c: Adjust.
      
      From-SVN: r244210
      Martin Sebor committed
    • * download_ecj: Remove. · 1243c42d
      From-SVN: r244209
      Gerald Pfeifer committed
    • re PR rtl-optimization/79003 (r238991 breaks ODR) · 8a1f09e4
      	PR bootstrap/79003
      	* Makefile.in (CFLAGS, CPPFLAGS, LDFLAGS): Remove -fno-lto.
      	(NOLTO_FLAGS): New variable.
      	(ALL_CFLAGS): Use it.
      	* configure.ac (nolto_flags): New ACX_PROG_CC_WARNING_OPTS,
      	check for whether -fno-lto works.
      	* configure: Regenerated.
      
      From-SVN: r244208
      Jakub Jelinek committed
    • re PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000 GAP) · d8dc87c2
      	PR middle-end/77484
      	* predict.def (PRED_INDIR_CALL): Set to 86.
      
      From-SVN: r244207
      Jan Hubicka committed
    • PR c++/78948 - instantiation from discarded statement · 38285dd7
      	PR c++/78948 - instantiation from discarded statement
      	* parser.h (struct cp_parser): Remove in_discarded_stmt field.
      	* cp-tree.h (in_discarded_stmt): Declare it.
      	(struct saved_scope): Add discarded_stmt bitfield.
      	(in_discarded_stmt): New macro.
      	* decl2.c (mark_used): Check it.
      	* parser.c (cp_parser_selection_statement): Adjust.
      	(cp_parser_jump_statement): Adjust.
      
      From-SVN: r244206
      Jason Merrill committed
    • re PR preprocessor/54124 (GCC 4.7.1 manual: -dM and similar options hard to find) · c3e50bc4
      2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR preprocessor/54124
      
      	gcc/
      	* doc/cppopts.texi: Reformat -d subtable to list the full name
      	of the options.  Add cross-reference to the docs for the general
      	compiler -d options.
      	* doc/invoke.texi (Developer Options): Add cross-reference to the
      	preprocessor-specific -d option documentation.
      
      From-SVN: r244205
      Sandra Loosemore committed
    • Daily bump. · 49bf00b9
      From-SVN: r244204
      GCC Administrator committed
  3. 07 Jan, 2017 8 commits
    • re PR preprocessor/13498 (CPP include search path documentation is incorrect) · 1fce8419
      2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR preprocessor/13498
      
      	gcc/
      	* doc/cpp.texi (Search Path): Rewrite to remove obsolete and
      	redudant material, and reflect new command-line options.
      	(System Headers): Likewise.
      
      From-SVN: r244201
      Sandra Loosemore committed
    • cppdiropts.texi: Merge documentation of -I, -iquote, -isystem, and -idirafter. · ec85a978
      2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* doc/cppdiropts.texi: Merge documentation of -I, -iquote,
      	-isystem, and -idirafter.  Copy-edit.
      	* doc/cppopts.texi: Copy-edit.  Remove contradiction about 
      	default for -ftrack-macro-expansion.  Delete obsolete and 
      	badly-formatted implementation details about -fdebug-cpp output.
      	* doc/cppwarnopts.texi: Copy-edit.
      
      From-SVN: r244200
      Sandra Loosemore committed
    • Fix linemap corruption after very wide source lines (PR c++/72803) · 5ccf1d8d
      PR c++/72803 describes an issue where a fix-it hint is to be emitted at
      column 512 of a 511-column source line, leading to an ICE.
      
      The root cause is a bug in linemap_line_start, when transitioning from
      lines >= 512 in width to narrow lines.
      
      The wide line in the reproducer has a line map with:
        m_column_and_range_bits = 15, m_range_bits = 5
      giving 10 effective bits for representing columns, so that columns <= 1023
      can be represented.
      
      When parsing the following line,
        linemap_line_start (..., ..., max_column_hint=0);
      is called.  This leads to the "add_map" logic, due to this condition:
            || (max_column_hint <= 80 && effective_column_bits >= 10)
      i.e. the new line is sufficiently narrower than the old one to
      potentially use a new linemap (so as to conserve values within the
      location_t space).
      
      It then attempts to avoid allocating a new line map.  Part of the logic
      to determine if we really need a new line map is this condition:
         SOURCE_COLUMN (map, highest) >= (1U << column_bits)
      The above condition is incorrect: we need to determine if the highest
      column we've handed out will fit within the proposed *effective* column
      bits, but "column_bits" here is the column plus the range bits, rather
      than just the column bits.
      
      Hence in this case linemap_line_start erroneously decides that we don't
      need a new line map, and updates the column bits within the existing
      line map, so any location_t values we've already handed out within it
      that are offset from the start by
        >= (1<<new_column_and_range_bits)
      effectively change meaning, leading to incorrect line&column information
      when decoding them, and various "interesting" ways for the linemap
      code to fail.
      
      The fix is to use the effective column bits in the above conditional.
      
      gcc/ChangeLog:
      	PR c++/72803
      	* input.c (selftest::test_accessing_ordinary_linemaps): Verify
      	that the transition from a max line width >= 1<<10 to narrower
      	lines works correctly.
      
      gcc/testsuite/ChangeLog:
      	PR c++/72803
      	* g++.dg/diagnostic/pr72803.C: New test case.
      
      libcpp/ChangeLog:
      	PR c++/72803
      	* line-map.c (linemap_line_start): When determining if the highest
      	column given out so far will fit into a proposed change to the
      	current map, use the effective number of column bits, rather than
      	the total number of column + range bits.
      
      From-SVN: r244199
      David Malcolm committed
    • [-fcompare-debug] var tracking options are not optimization options · ff98fa95
      If we include them in the ICF hash, they may cause congruence_groups to
      be processed in a different order due to different hashes, which in turn
      causes different funcdef_nos to be assigned to functions.  Since these
      numbers are included in -fcompare-debug dumps, they cause failures.
      
      Since these options are not optimization options, in that they do not
      (or should not, save for bugs like this) affect the executable code
      output by the compiler, they should not be marked as such.
      
      This patch replaces the Optimization flag in the var-tracking options
      with the newly-introduced PerFunction flag, so that it can still be
      controlled on a per-function basis, but that disregards it in the hash
      computation used by ICF.
      
      This fixes -fcompare-debug failures in numerous LTO testcases.
      
      for  gcc/ChangeLog
      
      	* doc/options.texi (PerFunction): New.
      	* opt-functions.awk (switch_flags): Map both Optimization and
      	PerFunction to CL_OPTIMIZATION.
      	* opth-gen.awk: Test for PerFunction flag along with
      	Optimization.
      	* optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
      	it only when the latter is present.  Skip those that don't in
      	the hash function generator.
      	* common.opt (fvar-tracking): Mark as PerFunction instead of
      	Optimization.
      	(fvar-tracking-assignments): Likewise.
      	(fvar-tracking-assignments-toggle): Likewise.
      	(fvar-tracking-uninit): Likewise.
      
      From-SVN: r244198
      Alexandre Oliva committed
    • attr-alloc_size-3.c: Remove regex made redundant by r243461. · 42002dfe
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/attr-alloc_size-3.c: Remove regex made redundant by r243461.
      	* gcc.dg/attr-alloc_size-4.c: Same.
      
      From-SVN: r244197
      Martin Sebor committed
    • re PR fortran/78781 ([Coarray] ICE in gfc_deallocate_scalar_with_status, at fortran/trans.c:1588) · de91486c
      gcc/fortran/ChangeLog:
      
      2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	PR fortran/78781
      	PR fortran/78935
      	* expr.c (gfc_check_pointer_assign): Return the same error message for
      	rewritten coarray pointer assignments like for plain ones.
      	* gfortran.h: Change prototype.
      	* primary.c (caf_variable_attr): Set attributes used ones only only
      	ones.  Add setting of pointer_comp attribute.
      	(gfc_caf_attr): Add setting of pointer_comp attribute.
      	* trans-array.c (gfc_array_allocate): Add flag that the component to
      	allocate is not an ultimate coarray component.  Add allocation of
      	pointer arrays.
      	(structure_alloc_comps): Extend nullify to treat pointer components in
      	coarrays correctly.  Restructure nullify to remove redundant code.
      	(gfc_nullify_alloc_comp): Allow setting caf_mode flags.
      	* trans-array.h: Change prototype of gfc_nullify_alloc_comp ().
      	* trans-decl.c (generate_coarray_sym_init): Call nullify_alloc_comp for
      	derived type coarrays with pointer components.
      	* trans-expr.c (gfc_trans_structure_assign): Also treat pointer
      	components.
      	(trans_caf_token_assign): Handle assignment of token of scalar pointer
      	components.
      	(gfc_trans_pointer_assignment): Call above routine.
      	* trans-intrinsic.c (conv_expr_ref_to_caf_ref): Add treating pointer
      	components.
      	(gfc_conv_intrinsic_caf_get): Likewise.
      	(conv_caf_send): Likewise.
      	* trans-stmt.c (gfc_trans_allocate): After allocating a derived type in
      	a coarray pre-register the tokens.
      	(gfc_trans_deallocate): Simply determining the coarray type (scalar or
      	array) and deregistering it correctly.
      	* trans-types.c (gfc_typenode_for_spec): Replace in_coarray flag by the
      	actual codim to allow lookup of array types in the cache.
      	(gfc_build_array_type): Likewise.
      	(gfc_get_array_descriptor_base): Likewise.
      	(gfc_get_array_type_bounds): Likewise.
      	(gfc_get_derived_type): Likewise.
      	* trans-types.h: Likewise.
      	* trans.c (gfc_deallocate_with_status): Enable deregistering of all kind
      	of coarray components.
      	(gfc_deallocate_scalar_with_status): Use free() in fcoarray_single mode
      	instead of caf_deregister.
      
      libgfortran/ChangeLog:
      
      2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	PR fortran/78781
      	PR fortran/78935
      	* caf/single.c (send_by_ref): Fix addressing of non-allocatable scalar
      	destination components.
      
      gcc/testsuite/ChangeLog:
      
      2017-01-07  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	* gfortran.dg/coarray/ptr_comp_1.f08: New test.
      	* gfortran.dg/coarray/ptr_comp_2.f08: New test.
      	* gfortran.dg/coarray/ptr_comp_3.f08: New test.
      	* gfortran.dg/coarray/ptr_comp_4.f08: New test.
      	* gfortran.dg/coarray_ptr_comp_1.f08: New test.
      	* gfortran.dg/coarray_ptr_comp_2.f08: New test.
      	* gfortran.dg/coarray_ptr_comp_3.f08: New test.
      
      From-SVN: r244196
      Andre Vehreschild committed
    • re PR translation/79018 (translatable string typo in params.def:1105) · 0fc08a17
      	PR translation/79018
      	* params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
      	the and store.
      
      From-SVN: r244195
      Jakub Jelinek committed
    • Daily bump. · ebeba030
      From-SVN: r244191
      GCC Administrator committed
  4. 06 Jan, 2017 22 commits
    • * fr.po: Update. · 168a6d49
      From-SVN: r244187
      Joseph Myers committed
    • Add more tests for std::basic_string::find · 3330ac38
      	* testsuite/21_strings/basic_string/operations/find/char/6.cc: New.
      	* testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New.
      
      From-SVN: r244185
      Jonathan Wakely committed
    • re PR target/57583 (large switches with jump tables are horribly broken on m68k) · c24900be
      2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
      
      	PR target/57583
      	* config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
      	* config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
      	TARGET_LONG_JUMP_TABLE_OFFSETS.
      	* config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
      	* config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
      	* config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
      	(ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
      	* config/m68k/m68k.md (tablejump expander): Likewise.
      	(*tablejump_pcrel_hi): Renamed from unnamed insn, reject
      	TARGET_LONG_JUMP_TABLE_OFFSETS.
      	(*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
      	* doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
      
      From-SVN: r244184
      Mikael Pettersson committed
    • Make MicroBlaze support DWARF EH (old Xilinx patch, needed for glibc build). · b69195a0
      This patch, taken from
      <https://git.busybox.net/buildroot/tree/package/gcc/5.4.0/840-microblaze-enable-dwarf-eh-support.patch>
      and with a few formatting cleanups and an update for the removal of
      gen_rtx_raw_REG, enables DWARF EH support for MicroBlaze.
      
      This is needed for building glibc with a compiler that includes shared
      libgcc; right now all glibc builds for MicroBlaze are failing with my
      bot for lack of this support.  (It's dubious if we should have glibc
      ports at all where required support is missing in FSF GCC.)
      
      Tested building glibc with build-many-glibcs.py.  I have *not* done
      any other testing or any execution testing for MicroBlaze.
      
      2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
      	    David Holsgrove <david.holsgrove@xilinx.com>
      
      	* common/config/microblaze/microblaze-common.c
      	(TARGET_EXCEPT_UNWIND_INFO): Remove.
      	* config/microblaze/microblaze-protos.h (microblaze_eh_return):
      	New prototype.
      	* config/microblaze/microblaze.c (microblaze_must_save_register)
      	(microblaze_expand_epilogue, microblaze_return_addr): Handle
      	calls_eh_return.
      	(microblaze_eh_return): New function.
      	* config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
      	(EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
      	(EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
      	* config/microblaze/microblaze.md (eh_return): New pattern.
      
      Co-Authored-By: David Holsgrove <david.holsgrove@xilinx.com>
      
      From-SVN: r244183
      Edgar E. Iglesias committed
    • system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, [...]): Define. · 75213cc0
      	* system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
      	GCC_DIAGNOSTIC_STRINGIFY): Define.
      
      	* simplify.c (simplify_transformation_to_array): Use
      	GCC_DIAGNOSTIC_PUSH_IGNORED and GCC_DIAGNOSTIC_POP instead of
      	#pragma GCC diagnostic {push,ignored,pop}.
      
      From-SVN: r244179
      Jakub Jelinek committed
    • read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning. · 9a38f84e
      	* read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare
      	warning.
      
      From-SVN: r244178
      Jakub Jelinek committed
    • memcmp-1.c: New. · f55a925e
      2017-01-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
      	* gcc.dg/memcmp-1.c: New.
      	* gcc.dg/strncmp-1.c: New.
      New testcases to check that builtin expansion of memcmp and strncmp works properly.
      
      From-SVN: r244177
      Aaron Sawdey committed
    • Add missing <cassert> include to testcase · 3907f9e5
      	* testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp:
      	Include <cassert> header.
      
      From-SVN: r244176
      Jonathan Wakely committed
    • [ARM] Implement support for ACLE Coprocessor MCRR and MRRC intrinsics · f3caa118
      gcc/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* config/arm/arm.md (<mcrr>): New.
      	(<mrrc>): New.
      	* config/arm/arm.c (arm_arch5te): New.
      	(arm_option_override): Set arm_arch5te.
      	(arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
      	and mrrc2.
      	* config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
      	(arm_mcrr_qualifiers): ... this. New.
      	(MRRC_QUALIFIERS): Define to...
      	(arm_mrrc_qualifiers): ... this. New.
      	* config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
      	__arm_mrrc2): New.
      	* config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
      	* config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
      	(MRRCI, mrrc, MRRC): New.
      	* config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
      	VUNSPEC_MRRC2): New.
      
      gcc/testsuite/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* gcc.target/arm/acle/mcrr: New.
      	* gcc.target/arm/acle/mcrr2: New.
      	* gcc.target/arm/acle/mrrc: New.
      	* gcc.target/arm/acle/mrrc2: New.
      
      From-SVN: r244175
      Andre Vieira committed
    • [ARM] Implement support for ACLE Coprocessor MCR and MRC intrinsics · ecc9a25b
      gcc/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* config/arm/arm.md (<mcr>): New.
      	(<mrc>): New.
      	* config/arm/arm.c (arm_coproc_builtin_available): Add
      	support for mcr, mrc, mcr2 and mrc2.
      	* config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
      	(arm_mcr_qualifiers): ... this. New.
      	(MRC_QUALIFIERS): Define to ...
      	(arm_mrc_qualifiers): ... this. New.
      	(MCR_QUALIFIERS): Define to ...
      	(arm_mcr_qualifiers): ... this. New.
      	* config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
      	__arm_mrc2): New.
      	* config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
      	* config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
      	* config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
      	VUNSPEC_MRC2): New.
      
      gcc/testsuite/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* gcc.target/arm/acle/mcr.c: New.
      	* gcc.target/arm/acle/mrc.c: New.
      	* gcc.target/arm/acle/mcr2.c: New.
      	* gcc.target/arm/acle/mrc2.c: New.
      
      From-SVN: r244174
      Andre Vieira committed
    • [ARM] Implement support for ACLE Coprocessor LDC and STC intrinsics · 3811581f
      gcc/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* config/arm/arm.md (*ldc): New.
      	(*stc): New.
      	(<ldc>): New.
      	(<stc>): New.
      	* config/arm/arm.c (arm_coproc_builtin_available): Add
      	support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
      	(arm_coproc_ldc_stc_legitimate_address): New.
      	* config/arm/arm-builtins.c (arm_type_qualifiers): Add
      	'qualifier_const_pointer'.
      	(LDC_QUALIFIERS): Define to...
      	(arm_ldc_qualifiers): ... this. New.
      	(STC_QUALIFIERS): Define to...
      	(arm_stc_qualifiers): ... this. New.
      	* config/arm/arm-protos.h
      	(arm_coproc_ldc_stc_legitimate_address): New.
      	* config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
      	__arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
      	* config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
      	stc2, stcl, stc2l): New.
      	* config/arm/constraints.md (Uz): New.
      	* config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
      	* config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
      	VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
      	VUNSPEC_STC2L): New.
      
      gcc/testsuite/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* gcc.target/arm/acle/ldc: New.
      	* gcc.target/arm/acle/ldc2: New.
      	* gcc.target/arm/acle/ldcl: New.
      	* gcc.target/arm/acle/ldc2l: New.
      	* gcc.target/arm/acle/stc: New.
      	* gcc.target/arm/acle/stc2: New.
      	* gcc.target/arm/acle/stcl: New.
      	* gcc.target/arm/acle/stc2l: New.
      
      From-SVN: r244173
      Andre Vieira committed
    • [ARM] Implement support for ACLE Coprocessor CDP intrinsics · d57daa0c
      gcc/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* config/arm/arm.md (<cdp>): New.
      	* config/arm/arm.c (neon_const_bounds): Rename this ...
      	(arm_const_bounds): ... this.
      	(arm_coproc_builtin_available): New.
      	* config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
      	(arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
      	(CDP_QUALIFIERS): Define to...
      	(arm_cdp_qualifiers): ... this. New.
      	(void_UP): Define.
      	(arm_expand_builtin_args): Add case for 6 arguments.
      	* config/arm/arm-protos.h (neon_const_bounds): Rename this ...
      	(arm_const_bounds): ... this.
      	(arm_coproc_builtin_available): New.
      	* config/arm/arm_acle.h (__arm_cdp): New.
      	(__arm_cdp2): New.
      	* config/arm/arm_acle_builtins.def (cdp): New.
      	(cdp2): New.
      	* config/arm/iterators.md (CDPI,CDP,cdp): New.
      	* config/arm/neon.md: Rename all 'neon_const_bounds' to
      	'arm_const_bounds'.
      	* config/arm/types.md (coproc): New.
      	* config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
      	* gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
      	* gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
      	arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
      
      gcc/testsuite/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* gcc.target/arm/acle/acle.exp: Run tests for different options
      	and make sure fat-lto-objects is used such that we can still do
      	assemble scans.
      	* gcc.target/arm/acle/cdp.c: New.
      	* gcc.target/arm/acle/cdp2.c: New.
      	* lib/target-supports.exp (check_effective_target_arm_coproc1_ok): New.
      	(check_effective_target_arm_coproc1_ok_nocache): New.
      	(check_effective_target_arm_coproc2_ok): New.
      	(check_effective_target_arm_coproc2_ok_nocache): New.
      	(check_effective_target_arm_coproc3_ok): New.
      	(check_effective_target_arm_coproc3_ok_nocache): New.
      	(check_effective_target_arm_coproc4_ok): New.
      	(check_effective_target_arm_coproc4_ok_nocache): New.
      
      From-SVN: r244172
      Andre Vieira committed
    • [ARM] Move CRC builtins to refactored framework · 7a2c8e28
      gcc/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
      	(UBINOP_QUALIFIERS): New.
      	(si_UP): Define.
      	(acle_builtin_data): New. Change comment.
      	(arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
      	ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
      	ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
      	arm_acle_builtins.def.
      	(ARM_BUILTIN_ACLE_PATTERN_START): Define.
      	(arm_init_acle_builtins): New.
      	(CRC32_BUILTIN): Remove.
      	(bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
      	crc32cb, crc32ch and crc32cw.
      	(arm_init_crc32_builtins): Remove.
      	(arm_init_builtins): Use arm_init_acle_builtins rather
      	than arm_init_crc32_builtins.
      	(arm_expand_acle_builtin): New.
      	(arm_expand_builtin): Use 'arm_expand_acle_builtin'.
      	* config/arm/arm_acle_builtins.def: New.
      
      From-SVN: r244171
      Andre Vieira committed
    • [ARM] Refactor NEON builtin framework to work for other builtins · 131e1faa
      gcc/ChangeLog:
      2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
      	(arm_builtin_datum): ... this.
      	(arm_init_neon_builtin): Rename to ...
      	(arm_init_builtin): ... this. Add a new parameters PREFIX
      	and USE_SIG_IN_NAME.
      	(arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
      	'arm_init_builtin'. Replace type 'neon_builtin_datum' with
      	'arm_builtin_datum'.
      	(arm_init_vfp_builtins): Likewise.
      	(builtin_arg): Rename enum's replacing 'NEON_ARG' with
      	'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
      	(arm_expand_neon_args): Rename to ...
      	(arm_expand_builtin_args): ... this. Rename builtin_arg
      	enum values and differentiate between ARG_BUILTIN_MEMORY
      	and ARG_BUILTIN_NEON_MEMORY.
      	(arm_expand_neon_builtin_1): Rename to ...
      	(arm_expand_builtin_1): ... this. Rename builtin_arg enum
      	values, arm_expand_builtin_args and add bool parameter NEON.
      	(arm_expand_neon_builtin): Use arm_expand_builtin_1.
      	(arm_expand_vfp_builtin): Likewise.
      	(NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
      
      From-SVN: r244170
      Andre Vieira committed
    • Check for __cxa_thread_atexit for freebsd crosses · ea4ad78e
      	PR libstdc++/78968
      	* crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*.
      	* configure: Regenerate.
      
      From-SVN: r244169
      Jonathan Wakely committed
    • Fix changelog entry. · 834a2715
      From-SVN: r244168
      Jan Hubicka committed
    • re PR middle-end/77484 (Static branch predictor causes ~6-8% regression of SPEC2000 GAP) · 350de209
      	PR middle-end/77484
      	* predict.def (PRED_POLYMORPHIC_CALL): Set to 58
      	* predict.c (tree_estimate_probability_bb): Reverse direction of
      	polymorphic call predictor.
      
      From-SVN: r244167
      Jan Hubicka committed
    • runtime: actually remove go-alloc.h · 12e917ff
      Accidentally omitted from the commit of CL 34797 (SVN revision 244036).
      
      From-SVN: r244166
      Ian Lance Taylor committed
    • re PR go/78978 (runtime/pprof FAILs on Solaris 2/x86) · 08934aed
      	PR go/78978
          libgo: build with -Wa,-nH if possible on Solaris
          
          By default the Solaris assembler records the required hardware
          capability in the object file.  This means that the AES hashing code
          breaks on systems that do not support AES, even though the code uses a
          runtime check to only actually invoke the AES instructions on systems
          that support it.  An earlier fix for the problem only fixed the shared
          library, not the static libgo.a.  Fix the problem for real by using an
          assembler option to not record the hardware capability.
          
          For GCC PR 78978.
          
          Patch by Rainer Orth.
          
          Reviewed-on: https://go-review.googlesource.com/34910
      
      From-SVN: r244165
      Ian Lance Taylor committed
    • PR middle-end/78605 - bogus -Wformat-length=1 with %f · 8a123229
      gcc/testsuite/ChangeLog:
      	* gcc.dg/tree-ssa/pr78605.c: New test.
      
      From-SVN: r244164
      Martin Sebor committed
    • Use fold expressions to reduce std::variant instantiation depth · 258ee761
      2017-01-06  Barrett Adair  <barrettellisadair@gmail.com>
      	    Jonathan Wakely  <jwakely@redhat.com>
      
      	* include/std/variant (variant, swap): Replace __and_ usage with fold
      	expressions.
      
      Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
      
      From-SVN: r244163
      Barrett Adair committed
    • Build libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts] · 1ec62aa9
      	libstdc++-v3:
      	PR go/78978
      	* acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove.
      	* configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of
      	GLIBCXX_CHECK_ASSEMBLER_HWCAP.
      	* fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of
      	HWCAP_FLAGS.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* Makefile.in, doc/Makefile.in, include/Makefile.in,
      	libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
      	src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in,
      	src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
      
      	config:
      	PR go/78978
      	* hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro.
      
      From-SVN: r244162
      Rainer Orth committed