1. 18 Jan, 2017 5 commits
  2. 17 Jan, 2017 35 commits
    • crossconfig.m4: Add fuchsia OS. · 93f90f7b
      2017-01-17  Joshua Conner  <joshconner@google.com>
      
      	* crossconfig.m4: Add fuchsia OS.
      	* configure: Regenerate.
      
      From-SVN: r244557
      Joshua Conner committed
    • -mstack-protector-guard and friends (PR78875) · 1b3254e4
      Currently, on PowerPC, code compiled with -fstack-protector will load
      the canary from -0x7010(13) (for -m64) or from -0x7008(2) (for -m32)
      if GCC was compiled against GNU libc 2.4 or newer or some other libc
      that supports -fstack-protector, and from the global variable
      __stack_chk_guard otherwise.
      
      This does not work well for Linux and other OS kernels and similar.
      For such non-standard applications, this patch creates a few new
      command-line options.  The relevant new use cases are:
      
      -mstack-protector-guard=global
      Use the __stack_chk_guard variable, no matter how this GCC was
      configured.
      
      -mstack-protector-guard=tls
      Use the canary from TLS.  This will error out if this GCC was built
      with a C library that does not support it.
      
      -mstack-protector-guard=tls -mstack-protector-register=<reg>
      -mstack-protector-offset=<offset>
      Load the canary from offset <off> from base register <reg>.
      
      
      	PR target/78875
      	* config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
      	the new options.
      	* config/rs6000/rs6000.md (stack_protect_set): Handle the new more
      	flexible settings.
      	(stack_protect_test): Ditto.
      	* config/rs6000/rs6000.opt (mstack-protector-guard=,
      	mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
      	options.
      	* doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
      	Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
      	-mstack-protector-guard-offset=.
      	(RS/6000 and PowerPC Options): Ditto.
      
      gcc/testsuite/
      	* gcc.target/powerpc/ssp-1.c: New testcase.
      	* gcc.target/powerpc/ssp-2.c: New testcase.
      
      From-SVN: r244556
      Segher Boessenkool committed
    • i386.h (MASK_CLASS_P): New define. · 4ed04e93
      	* config/i386/i386.h (MASK_CLASS_P): New define.
      	* config/i386/i386.c (inline_secondary_memory_needed): Ensure that
      	there are no registers from different register sets also when
      	mask registers are used.  Update function comment.
      	* config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
      	to (*k/*r) and (*k/*km) alternatives.
      
      From-SVN: r244548
      Uros Bizjak committed
    • This patch simplifies the handling of EH return. · 8144a493
      This patch simplifies the handling of EH return.  We force the use of the
      frame pointer so the return location is always at FP + 8.  This means we
      can emit a simple volatile access in EH_RETURN_HANDLER_RTX without needing md
      patterns, splitters and frame offset calculations.  The new implementation also
      fixes various bugs in aarch64_final_eh_return_addr, which does not work with
      -fomit-frame-pointer, alloca or outgoing arguments.
      
          gcc/
      	* config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
      	* config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
      	(EH_RETURN_HANDLER_RTX): New define.
      	* config/aarch64/aarch64.c (aarch64_frame_pointer_required):
      	Force frame pointer in EH return functions.
      	(aarch64_expand_epilogue): Add barrier for eh_return.
      	(aarch64_final_eh_return_addr): Remove.
      	(aarch64_eh_return_handler_rtx): New function.
      	* config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
      	Remove.
      	(aarch64_eh_return_handler_rtx): New prototype.
      
          testsuite/
      	* gcc.target/aarch64/eh_return.c: New test.
      
      From-SVN: r244547
      Wilco Dijkstra committed
    • altivec.h (vec_rlmi): New #define. · a6607774
      [gcc]
      
      2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/altivec.h (vec_rlmi): New #define.
      	(vec_vrlnm): Likewise.
      	(vec_rlnm): Likewise.
      	* config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
      	(UNSPEC_VRLNM): Likewise.
      	(VIlong): New mode iterator.
      	(altivec_vrl<VI_char>mi): New define_insn.
      	(altivec_vrl<VI_char>nm): Likewise.
      	* config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
      	function entry.
      	(VRLDNM): Likewise.
      	(RLNM): New polymorphic function entry.
      	(VRLWMI): New monomorphic function entry.
      	(VRLDMI): Likewise.
      	(RLMI): New polymorphic function entry.
      	* config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
      	new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
      	* doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
      	vec_vrlnm.
      
      [gcc/testsuite]
      
      2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* vec-rlmi-rlnm.c: New file.
      
      From-SVN: r244546
      Bill Schmidt committed
    • re PR debug/78839 (DWARF output different between GCC 5 and 6) · 1e0424d9
      	PR debug/78839
      	* dwarf2out.c (field_byte_offset): Restore the
      	PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
      	and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
      	(analyze_variants_discr, gen_variant_part): Use fold_build2 instead
      	of build2 + fold.
      
      From-SVN: r244545
      Jakub Jelinek committed
    • re PR c++/61636 (generic lambda: segfault / "cannot call member function without object") · 8ddfdbc2
      	PR c++/61636
      	* cp-tree.h (maybe_generic_this_capture): Declare.
      	* lambda.c (resolvable_dummy_lambda): New, broken out of ...
      	(maybe_resolve_dummy): ... here.  Call it.
      	(maybe_generic_this_capture): New.
      	* parser.c (cp_parser_postfix_expression): Speculatively capture
      	this in generic lambda in unresolved member function call.
      	* pt.c (tsubst_copy_and_build): Force hard error from failed
      	member function lookup in generic lambda.
      
      	PR c++/61636
      	* g++.dg/cpp1y/pr61636-1.C: New.
      	* g++.dg/cpp1y/pr61636-2.C: New.
      	* g++.dg/cpp1y/pr61636-3.C: New.
      
      From-SVN: r244544
      Nathan Sidwell committed
    • re PR ada/67205 (eliminate No_Implicit_Dynamic_Code restriction violations) · f46fe37e
      	PR ada/67205
      	* config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
      
      From-SVN: r244543
      Eric Botcazou committed
    • re PR debug/71669 (DW_AT_data_bit_offset is not emitted for dwarf4 and above) · c5b7d7b7
      	PR debug/71669
      	* dwarf2out.c (add_data_member_location_attribute): For constant
      	offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
      	instead of DW_AT_data_member_location, DW_AT_bit_offset and
      	DW_AT_byte_size attributes.
      
      From-SVN: r244542
      Jakub Jelinek committed
    • rs6000.c (rs6000_emit_move): Also use a TOC reference after forcing to constant memory when... · d25fabdc
      	* config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
      	after forcing to constant memory when the code model is medium.
      
      From-SVN: r244541
      Eric Botcazou committed
    • re PR target/76731 ([AVX512] _mm512_i32gather_epi32 and other scatter/gather… · 0e171d54
      re PR target/76731 ([AVX512] _mm512_i32gather_epi32 and other scatter/gather routines have incorrect signature)
      
      	PR target/76731
      	* config/i386/avx512fintrin.h
      	(_mm512_i32gather_ps): Change __addr type to void const*.
      	(_mm512_mask_i32gather_ps): Ditto.
      	(_mm512_i32gather_pd): Ditto.
      	(_mm512_mask_i32gather_pd): Ditto.
      	(_mm512_i64gather_ps): Ditto.
      	(_mm512_mask_i64gather_ps): Ditto.
      	(_mm512_i64gather_pd): Ditto.
      	(_mm512_mask_i64gather_pd): Ditto.
      	(_mm512_i32gather_epi32): Ditto.
      	(_mm512_mask_i32gather_epi32): Ditto.
      	(_mm512_i32gather_epi64): Ditto.
      	(_mm512_mask_i32gather_epi64): Ditto.
      	(_mm512_i64gather_epi32): Ditto.
      	(_mm512_mask_i64gather_epi32): Ditto.
      	(_mm512_i64gather_epi64): Ditto.
      	(_mm512_mask_i64gather_epi64): Ditto.
      	(_mm512_i32scatter_ps): Change __addr type to void*.
      	(_mm512_mask_i32scatter_ps): Ditto.
      	(_mm512_i32scatter_pd): Ditto.
      	(_mm512_mask_i32scatter_pd): Ditto.
      	(_mm512_i64scatter_ps): Ditto.
      	(_mm512_mask_i64scatter_ps): Ditto.
      	(_mm512_i64scatter_pd): Ditto.
      	(_mm512_mask_i64scatter_pd): Ditto.
      	(_mm512_i32scatter_epi32): Ditto.
      	(_mm512_mask_i32scatter_epi32): Ditto.
      	(_mm512_i32scatter_epi64): Ditto.
      	(_mm512_mask_i32scatter_epi64): Ditto.
      	(_mm512_i64scatter_epi32): Ditto.
      	(_mm512_mask_i64scatter_epi32): Ditto.
      	(_mm512_i64scatter_epi64): Ditto.
      	(_mm512_mask_i64scatter_epi64): Ditto.
      	* config/i386/avx512pfintrin.h
      	(_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
      	(_mm512_mask_prefetch_i32gather_ps): Ditto.
      	(_mm512_mask_prefetch_i64gather_pd): Ditto.
      	(_mm512_mask_prefetch_i64gather_ps): Ditto.
      	(_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
      	(_mm512_prefetch_i32scatter_ps): Ditto.
      	(_mm512_mask_prefetch_i32scatter_pd): Ditto.
      	(_mm512_mask_prefetch_i32scatter_ps): Ditto.
      	(_mm512_prefetch_i64scatter_pd): Ditto.
      	(_mm512_prefetch_i64scatter_ps): Ditto.
      	(_mm512_mask_prefetch_i64scatter_pd): Ditto.
      	(_mm512_mask_prefetch_i64scatter_ps): Ditto.
      	* config/i386/avx512vlintrin.h
      	(_mm256_mmask_i32gather_ps): Change __addr type to void const*.
      	(_mm_mmask_i32gather_ps): Ditto.
      	(_mm256_mmask_i32gather_pd): Ditto.
      	(_mm_mmask_i32gather_pd): Ditto.
      	(_mm256_mmask_i64gather_ps): Ditto.
      	(_mm_mmask_i64gather_ps): Ditto.
      	(_mm256_mmask_i64gather_pd): Ditto.
      	(_mm_mmask_i64gather_pd): Ditto.
      	(_mm256_mmask_i32gather_epi32): Ditto.
      	(_mm_mmask_i32gather_epi32): Ditto.
      	(_mm256_mmask_i32gather_epi64): Ditto.
      	(_mm_mmask_i32gather_epi64): Ditto.
      	(_mm256_mmask_i64gather_epi32): Ditto.
      	(_mm_mmask_i64gather_epi32): Ditto.
      	(_mm256_mmask_i64gather_epi64): Ditto.
      	(_mm_mmask_i64gather_epi64): Ditto.
      	(_mm256_i32scatter_ps): Change __addr type to void*.
      	(_mm256_mask_i32scatter_ps): Ditto.
      	(_mm_i32scatter_ps): Ditto.
      	(_mm_mask_i32scatter_ps): Ditto.
      	(_mm256_i32scatter_pd): Ditto.
      	(_mm256_mask_i32scatter_pd): Ditto.
      	(_mm_i32scatter_pd): Ditto.
      	(_mm_mask_i32scatter_pd): Ditto.
      	(_mm256_i64scatter_ps): Ditto.
      	(_mm256_mask_i64scatter_ps): Ditto.
      	(_mm_i64scatter_ps): Ditto.
      	(_mm_mask_i64scatter_ps): Ditto.
      	(_mm256_i64scatter_pd): Ditto.
      	(_mm256_mask_i64scatter_pd): Ditto.
      	(_mm_i64scatter_pd): Ditto.
      	(_mm_mask_i64scatter_pd): Ditto.
      	(_mm256_i32scatter_epi32): Ditto.
      	(_mm256_mask_i32scatter_epi32): Ditto.
      	(_mm_i32scatter_epi32): Ditto.
      	(_mm_mask_i32scatter_epi32): Ditto.
      	(_mm256_i32scatter_epi64): Ditto.
      	(_mm256_mask_i32scatter_epi64): Ditto.
      	(_mm_i32scatter_epi64): Ditto.
      	(_mm_mask_i32scatter_epi64): Ditto.
      	(_mm256_i64scatter_epi32): Ditto.
      	(_mm256_mask_i64scatter_epi32): Ditto.
      	(_mm_i64scatter_epi32): Ditto.
      	(_mm_mask_i64scatter_epi32): Ditto.
      	(_mm256_i64scatter_epi64): Ditto.
      	(_mm256_mask_i64scatter_epi64): Ditto.
      	(_mm_i64scatter_epi64): Ditto.
      	(_mm_mask_i64scatter_epi64): Ditto.
      	* config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
      	(V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
      	(V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
      	(V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
      	(V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
      	(V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
      	(V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
      	(V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
      	(V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
      	(V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
      	(V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
      	(V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
      	(V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
      	(VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
      	(VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
      	(VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
      	(VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
      	(VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
      	(VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
      	(VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
      	(VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
      	(VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
      	(VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
      	(VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
      	(VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
      	(VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
      	(VOID_QI_V8DI_PCINT_INT_INT): Remove.
      	(V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
      	(V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
      	(V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
      	(V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
      	(VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
      	(VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
      	(VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
      	(VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
      	(V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
      	(V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
      	(V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
      	(V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
      	(V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
      	(V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
      	(V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
      	(V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
      	(VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
      	(VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
      	(VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
      	(VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
      	(VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
      	(VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
      	(VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
      	(VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
      	(VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
      	(VOID_QI_V8DI_PCVOID_INT_INT): Add.
      	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
      	definitions accordingly.
      
      From-SVN: r244540
      Julia Koval committed
    • re PR target/79079 ([6] Wrong code gen for __builtin_mul_overflow when… · 4ed543bc
      re PR target/79079 ([6] Wrong code gen for __builtin_mul_overflow when TRULY_NOOP_TRUNCATION (32, 64) == false)
      
      	PR target/79079
      	* internal-fn.c (expand_mul_overflow): Use convert_modes instead of
      	gen_lowpart.
      
      Co-Authored-By: Kuan-Lin Chen <kuanlinchentw@gmail.com>
      
      From-SVN: r244539
      Kito Cheng committed
    • re PR c++/70565 (ICE at gimplify.c:8832 (cilkplus array extension)) · 893ffa2c
      	PR c++/70565
      	* cp-array-notation.c (expand_array_notation_exprs): Handle
      	OMP_PARALLEL.
      
      From-SVN: r244538
      Aldy Hernandez committed
    • PR testsuite/79115 - FAIL: gcc.dg/pr78768.c execution test on arm, aarch64 · d365b403
      gcc/testsuite/ChangeLog
      	* gcc.dg/pr78768.c: Make it a link-only test.
      
      From-SVN: r244537
      Martin Sebor committed
    • Fix wording of -Wmisleading-indentation (PR c++/71497) · 0d80ab91
      gcc/c-family/ChangeLog:
      	PR c++/71497
      	* c-indentation.c (warn_for_misleading_indentation): Use the past
      	subjunctive in the note.
      
      gcc/testsuite/ChangeLog:
      	PR c++/71497
      	* c-c++-common/Wmisleading-indentation-3.c: Update wording of
      	expected messages.
      	* c-c++-common/Wmisleading-indentation.c: Likewise.
      
      From-SVN: r244536
      David Malcolm committed
    • re PR target/79058 (ARM: internal compiler error: in extract_constrain_insn, at recog.c:2213) · 31b61548
      2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/79058
      	* ira-conflicts.c (ira_build_conflicts): Update total conflict
      	hard regs for inner regno.
      
      2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/79058
      	* gcc.target/arm/pr79058.c: New.
      
      From-SVN: r244535
      Vladimir Makarov committed
    • re PR tree-optimization/71854 (ICE at -O3 in both 32-bit and 64-bit modes on… · c549996e
      re PR tree-optimization/71854 (ICE at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu (verify_gimple failed))
      
      	PR tree-optimization/71854
      	* gcc.dg/vect/pr71854.c: New test.
      
      From-SVN: r244534
      Jakub Jelinek committed
    • re PR c/79116 (ICE on cilkplus array notation with a _Cilk_for) · 7f991c36
      	PR c/79116
      	* array-notation-common.c (cilkplus_extract_an_triplets): Convert
      	start type to integer_type.
      
      From-SVN: r244533
      Aldy Hernandez committed
    • PR69699 document why __GLIBCXX__ macro is useless · c6b8b5e4
      	PR libstdc++/69699
      	* doc/xml/manual/abi.xml (abi.versioning.history): Explain why the
      	_GLIBCXX__ macro is not useful. Remove redundant date information
      	and link to the GCC release timeline.
      	(abi.versioning.active): Move partial sentence into the previous
      	paragraph.
      	* doc/html/*: Regenerate.
      
      From-SVN: r244532
      Jonathan Wakely committed
    • PR79114 use decayed type in std::throw_with_nested assertion · 04c872aa
      	PR libstdc++/79114
      	* libsupc++/nested_exception.h (throw_with_nested): Use decay instead
      	of remove_reference.
      	* testsuite/18_support/nested_exception/79114.cc: New test.
      
      From-SVN: r244531
      Jonathan Wakely committed
    • Fix wrong assumption in contains_type_p (PR ipa/71207). · 4f197ff9
      2017-01-17  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/71207
      	* g++.dg/ipa/pr71207.C: New test.
      2017-01-17  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/71207
      	* ipa-polymorphic-call.c (contains_type_p): Fix wrong
      	assumption and add comment.
      
      From-SVN: r244530
      Martin Liska committed
    • ipa-visibility.c (localize_node): New function, broken out of ... · 408de159
      	* ipa-visibility.c (localize_node): New function, broken out of	...
      	(function_and_variable_visibility): ... here. Call it.
      
      From-SVN: r244529
      Nathan Sidwell committed
    • re PR tree-optimization/77445 (Performance drop after r239219 on coremark test) · d4193b85
      
      	PR middle-end/77445
      	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
      	correctly set frequency of oudgoing edge.
      	(duplicate_thread_path): Fix profile updating.
      	* gcc.dg/tree-ssa/pr77445-2.c: New testcase.
      	* gcc.dg/tree-ssa/pr77445.c: New testcase.
      
      From-SVN: r244528
      Jan Hubicka committed
    • ssa-dse-2.C (size_t): Typedef to __SIZE_TYPE__ rather than long unsigned int. · 906e7712
      	* g++.dg/tree-ssa/ssa-dse-2.C (size_t): Typedef to __SIZE_TYPE__
      	rather than long unsigned int.
      	* g++.dg/tree-ssa/ssa-dom.C: Likewise.
      
      From-SVN: r244527
      Jakub Jelinek committed
    • hsa.h: Add GCC runtime library exception. · d190d5c0
      	* plugin/hsa.h: Add GCC runtime library exception.
      	* plugin/hsa_ext_finalize.h: Likewise.
      
      From-SVN: r244523
      Jakub Jelinek committed
    • configfrag.ac: For --without-cuda-driver don't initialize CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB. · 2393d337
      	* plugin/configfrag.ac: For --without-cuda-driver don't initialize
      	CUDA_DRIVER_INCLUDE nor CUDA_DRIVER_LIB.  If both
      	CUDA_DRIVER_INCLUDE and CUDA_DRIVER_LIB are empty and linking small
      	cuda program fails, define PLUGIN_NVPTX_DYNAMIC to 1 and use
      	plugin/include/cuda as include dir and -ldl instead of -lcuda as
      	library to link ptx plugin against.
      	* plugin/plugin-nvptx.c: Include dlfcn.h if PLUGIN_NVPTX_DYNAMIC.
      	(CUDA_CALLS): Define.
      	(cuda_lib, cuda_lib_inited): New variables.
      	(init_cuda_lib): New function.
      	(CUDA_CALL_PREFIX): Define.
      	(CUDA_CALL_ERET, CUDA_CALL_ASSERT): Use CUDA_CALL_PREFIX.
      	(CUDA_CALL): Use FN instead of (FN).
      	(CUDA_CALL_NOCHECK): Define.
      	(cuda_error, fini_streams_for_device, select_stream_for_async,
      	nvptx_attach_host_thread_to_device, nvptx_open_device, link_ptx,
      	event_gc, nvptx_exec, nvptx_async_test, nvptx_async_test_all,
      	nvptx_wait_all, nvptx_set_clocktick, GOMP_OFFLOAD_unload_image,
      	nvptx_stacks_alloc, nvptx_stacks_free, GOMP_OFFLOAD_run): Use
      	CUDA_CALL_NOCHECK.
      	(nvptx_init): Call init_cuda_lib, if it fails, return false.  Use
      	CUDA_CALL_NOCHECK.
      	(nvptx_get_num_devices): Call init_cuda_lib, if it fails, return 0.
      	Use CUDA_CALL_NOCHECK.
      	* plugin/cuda/cuda.h: New file.
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      
      From-SVN: r244522
      Jakub Jelinek committed
    • re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) · 3c36aa6b
      	PR other/79046
      	* configure: Regenerated.
      config/
      	* acx.m4 (GCC_BASE_VER): New m4 function.
      	(ACX_TOOL_DIRS): Require GCC_BASE_VER, for
      	--with-gcc-major-version-only use just major number from BASE-VER.
      gcc/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
      	version from BASE-VER file.
      	(CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
      	(gcc.o): Depend on $(BASEVER).
      	* common.opt (dumpfullversion): New option.
      	* gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
      	* doc/invoke.texi: Document -dumpfullversion.
      	* doc/install.texi: Document --with-gcc-major-version-only.
      	* configure: Regenerated.
      libatomic/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* testsuite/Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libgomp/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* testsuite/Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libgcc/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
      	version from BASE-VER file.
      	* configure: Regenerated.
      libssp/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      liboffloadmic/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* aclocal.m4: Include ../config/acx.m4.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libquadmath/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libmpx/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libada/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
      	version from BASE-VER file.
      	* configure: Regenerated.
      lto-plugin/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libitm/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* testsuite/Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      fixincludes/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.in (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      libcilkrts/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* aclocal.m4: Include ../config/acx.m4.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libcc1/
      	* configure.ac: Add GCC_BASE_VER.  For --with-gcc-major-version-only
      	use just major number from BASE-VER.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libobjc/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.in (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      libstdc++-v3/
      	* configure.ac: Add GCC_BASE_VER.
      	* fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* po/Makefile.in: Regenerated.
      	* libsupc++/Makefile.in: Regenerated.
      	* testsuite/Makefile.in: Regenerated.
      	* src/Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      	* include/Makefile.in: Regenerated.
      	* doc/Makefile.in: Regenerated.
      	* python/Makefile.in: Regenerated.
      	* src/c++11/Makefile.in: Regenerated.
      	* src/c++98/Makefile.in: Regenerated.
      	* src/filesystem/Makefile.in: Regenerated.
      libvtv/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* testsuite/Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libsanitizer/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* libbacktrace/Makefile.in: Regenerated.
      	* interception/Makefile.in: Regenerated.
      	* asan/Makefile.in: Regenerated.
      	* ubsan/Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* sanitizer_common/Makefile.in: Regenerated.
      	* lsan/Makefile.in: Regenerated.
      	* Makefile.in: Regenerated.
      	* tsan/Makefile.in: Regenerated.
      libgfortran/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      
      From-SVN: r244521
      Jakub Jelinek committed
    • re PR tree-optimization/71433 (-Warray-bounds false positive with -O2) · 12314dc9
      2017-01-17  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/71433
      	* tree-vrp.c (register_new_assert_for): Merge same asserts
      	on all incoming edges.
      	(process_assert_insertions_for): Handle insertions at the
      	beginning of BBs.
      
      	* gcc.dg/Warray-bounds-20.c: New testcase.
      
      From-SVN: r244520
      Richard Biener committed
    • re PR testsuite/52563 (FAIL: gcc.dg/tree-ssa/scev-[3,4].c scan-tree-dump-times optimized "&a" 1) · a23e48df
      2017-01-17  Richard Biener  <rguenther@suse.de>
      
      	PR testsuite/52563
      	PR testsuite/71237
      	PR testsuite/77737
      	* gcc.dg/tree-ssa/scev-3.c: Re-write to a GIMPLE testcase for IVOPTs.
      	* gcc.dg/tree-ssa/scev-4.c: Likewise.
      	* gcc.dg/tree-ssa/scev-5.c: Likewise.
      
      From-SVN: r244519
      Richard Biener committed
    • gcc_update: Remove entries related to GCJ and libgcj. · b2bcb1b3
      	* gcc_update: Remove entries related to GCJ and libgcj.
      	Complete copyright years and adjust my e-mail address.
      
      From-SVN: r244518
      Gerald Pfeifer committed
    • cygwin.h (LIBGCJ_SONAME): Remove. · 4b1a89aa
      	* config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
      	* config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
      
      From-SVN: r244517
      Gerald Pfeifer committed
    • re PR target/78633 ([SH] libgcc/fp-bit.c:944:1: error: invalid rtl sharing found in the insn) · d27c8bec
      	PR target/78633
      	* config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
      	RTL sharing.
      
      From-SVN: r244516
      Kaz Kojima committed
    • PR79066, non-PIC code generated for powerpc glibc with -fpic · e6750e5c
      	PR target/79066
      	* config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
      	* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
      	symbolic stack limit when pic.
      testsuite/
      	* gcc.target/powerpc/pr79066.c: New.
      
      From-SVN: r244515
      Alan Modra committed
    • Daily bump. · 86b957ca
      From-SVN: r244514
      GCC Administrator committed
    • PR tree-optimization/78608 - gimple-ssa-sprintf.c:570:17: runtime error:… · 209042e6
      PR tree-optimization/78608 - gimple-ssa-sprintf.c:570:17: runtime error: negation of -9223372036854775808 cannot be represented in type 'long int'
      
      gcc/ChangeLog:
      	* gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
      
      From-SVN: r244511
      Martin Sebor committed