1. 11 Oct, 2019 14 commits
    • re PR tree-optimization/92066 (Many vectorization tests FAIL) · 9d99596e
      2019-10-11  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92066
      	PR tree-optimization/92046
      	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
      	Fix bogus cost model check.
      
      From-SVN: r276876
      Richard Biener committed
    • [OpenMP,Fortran] Fix several OpenMP use_device_addr/map/update errors · 08c14aaa
      	gcc/fortran/
      	* f95-lang.c (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Re-define to
      	gfc_omp_is_allocatable_or_ptr.
      	* trans-decl.c (create_function_arglist): Set GFC_DECL_OPTIONAL_ARGUMENT
      	only if not passed by value.
      	* trans-openmp.c (gfc_omp_is_allocatable_or_ptr): New.
      	(gfc_trans_omp_clauses): For MAP, handle (present) optional arguments;
      	for target update, handle allocatable/pointer scalars.
      	* trans.h (gfc_omp_is_allocatable_or_ptr): Declare.
      
      	gcc/
      	* langhooks-def.h (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Define.
      	(LANG_HOOKS_DECLS): Add it.
      	* langhooks.h (lang_hooks_for_decls): Add omp_is_allocatable_or_ptr;
      	update comment for omp_is_optional_argument.
      	* omp-general.c (omp_is_allocatable_or_ptr): New.
      	* omp-general.h (omp_is_allocatable_or_ptr): Declare.
      	* omp-low.c (scan_sharing_clauses, lower_omp_target): Handle
      	Fortran's optional arguments and allocatable/pointer scalars
      	with use_device_addr.
      
      	libgomp/
      	* testsuite/libgomp.fortran/use_device_addr-1.f90: New.
      	* testsuite/libgomp.fortran/use_device_addr-2.f90: New.
      
      From-SVN: r276875
      Tobias Burnus committed
    • decl.c (elaborate_reference_1): Specifically deal with pointer displacement. · b67e2ad8
      	* gcc-interface/decl.c (elaborate_reference_1): Specifically deal with
      	pointer displacement.
      
      	* gcc-interface/decl.c (components_to_record): Use proper name.
      
      	* gcc-interface/trans.c (Sloc_to_locus): Use standard types.
      
      From-SVN: r276874
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_field): Adjust again the packing for a field without strict… · 75a582cd
      decl.c (gnat_to_gnu_field): Adjust again the packing for a field without strict alignment and with an...
      
      	* gcc-interface/decl.c (gnat_to_gnu_field): Adjust again the packing
      	for a field without strict alignment and with an oversized clause.
      
      From-SVN: r276873
      Eric Botcazou committed
    • S/390: Test signaling FP comparison instructions · 76dcb70d
      gcc/testsuite/ChangeLog:
      
      2019-10-11  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR target/77918
      	* gcc.target/s390/s390.exp: Enable Fortran tests.
      	* gcc.target/s390/zvector/autovec-double-quiet-eq.c: New test.
      	* gcc.target/s390/zvector/autovec-double-quiet-ge.c: New test.
      	* gcc.target/s390/zvector/autovec-double-quiet-gt.c: New test.
      	* gcc.target/s390/zvector/autovec-double-quiet-le.c: New test.
      	* gcc.target/s390/zvector/autovec-double-quiet-lt.c: New test.
      	* gcc.target/s390/zvector/autovec-double-quiet-ordered.c: New test.
      	* gcc.target/s390/zvector/autovec-double-quiet-uneq.c: New test.
      	* gcc.target/s390/zvector/autovec-double-quiet-unordered.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-eq-z13-finite.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-eq-z13.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-eq.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-ge-z13-finite.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-ge-z13.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-ge.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-gt-z13-finite.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-gt-z13.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-gt.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-le-z13-finite.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-le-z13.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-le.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-lt-z13-finite.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-lt-z13.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-lt.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-ltgt-z13-finite.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-ltgt-z13.c: New test.
      	* gcc.target/s390/zvector/autovec-double-signaling-ltgt.c: New test.
      	* gcc.target/s390/zvector/autovec-double-smax-z13.F90: New test.
      	* gcc.target/s390/zvector/autovec-double-smax.F90: New test.
      	* gcc.target/s390/zvector/autovec-double-smin-z13.F90: New test.
      	* gcc.target/s390/zvector/autovec-double-smin.F90: New test.
      	* gcc.target/s390/zvector/autovec-float-quiet-eq.c: New test.
      	* gcc.target/s390/zvector/autovec-float-quiet-ge.c: New test.
      	* gcc.target/s390/zvector/autovec-float-quiet-gt.c: New test.
      	* gcc.target/s390/zvector/autovec-float-quiet-le.c: New test.
      	* gcc.target/s390/zvector/autovec-float-quiet-lt.c: New test.
      	* gcc.target/s390/zvector/autovec-float-quiet-ordered.c: New test.
      	* gcc.target/s390/zvector/autovec-float-quiet-uneq.c: New test.
      	* gcc.target/s390/zvector/autovec-float-quiet-unordered.c: New test.
      	* gcc.target/s390/zvector/autovec-float-signaling-eq.c: New test.
      	* gcc.target/s390/zvector/autovec-float-signaling-ge.c: New test.
      	* gcc.target/s390/zvector/autovec-float-signaling-gt.c: New test.
      	* gcc.target/s390/zvector/autovec-float-signaling-le.c: New test.
      	* gcc.target/s390/zvector/autovec-float-signaling-lt.c: New test.
      	* gcc.target/s390/zvector/autovec-float-signaling-ltgt.c: New test.
      	* gcc.target/s390/zvector/autovec-fortran.h: New test.
      	* gcc.target/s390/zvector/autovec-long-double-signaling-ge.c: New test.
      	* gcc.target/s390/zvector/autovec-long-double-signaling-gt.c: New test.
      	* gcc.target/s390/zvector/autovec-long-double-signaling-le.c: New test.
      	* gcc.target/s390/zvector/autovec-long-double-signaling-lt.c: New test.
      	* gcc.target/s390/zvector/autovec.h: New test.
      
      From-SVN: r276872
      Ilya Leoshkevich committed
    • S/390: Use signaling FP comparison instructions · d0a0caca
      dg-torture.exp=inf-compare-1.c is failing, because (qNaN > +Inf)
      comparison is compiled to CDB instruction, which does not signal an
      invalid operation exception. KDB should have been used instead.
      
      This patch introduces a new CCmode and a new pattern in order to
      generate signaling instructions in this and similar cases.
      
      gcc/ChangeLog:
      
      2019-10-11  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR target/77918
      	* config/s390/2827.md: Add new opcodes.
      	* config/s390/2964.md: Likewise.
      	* config/s390/3906.md: Likewise.
      	* config/s390/8561.md: Likewise.
      	* config/s390/s390-builtins.def (s390_vfchesb): Use
      	the new vec_cmpgev4sf_quiet_nocc.
      	(s390_vfchedb): Use the new vec_cmpgev2df_quiet_nocc.
      	(s390_vfchsb): Use the new vec_cmpgtv4sf_quiet_nocc.
      	(s390_vfchdb): Use the new vec_cmpgtv2df_quiet_nocc.
      	(vec_cmplev4sf): Use the new vec_cmplev4sf_quiet_nocc.
      	(vec_cmplev2df): Use the new vec_cmplev2df_quiet_nocc.
      	(vec_cmpltv4sf): Use the new vec_cmpltv4sf_quiet_nocc.
      	(vec_cmpltv2df): Use the new vec_cmpltv2df_quiet_nocc.
      	* config/s390/s390-modes.def (CCSFPS): New mode.
      	* config/s390/s390.c (s390_match_ccmode_set): Support CCSFPS.
      	(s390_select_ccmode): Return CCSFPS for LT, LE, GT, GE and LTGT.
      	(s390_branch_condition_mask): Reuse CCS for CCSFPS.
      	(s390_expand_vec_compare): Use non-signaling patterns where
      	necessary.
      	(s390_reverse_condition): Support CCSFPS.
      	* config/s390/s390.md (*cmp<mode>_ccsfps): New pattern.
      	* config/s390/vector.md: (VFCMP_HW_OP): Remove.
      	(asm_fcmp_op): Likewise.
      	(*smaxv2df3_vx): Use pattern for quiet comparison.
      	(*sminv2df3_vx): Likewise.
      	(*vec_cmp<VFCMP_HW_OP:code><mode>_nocc): Remove.
      	(*vec_cmpeq<mode>_quiet_nocc): New pattern.
      	(vec_cmpgt<mode>_quiet_nocc): Likewise.
      	(vec_cmplt<mode>_quiet_nocc): New expander.
      	(vec_cmpge<mode>_quiet_nocc): New pattern.
      	(vec_cmple<mode>_quiet_nocc): New expander.
      	(*vec_cmpeq<mode>_signaling_nocc): New pattern.
      	(*vec_cmpgt<mode>_signaling_nocc): Likewise.
      	(*vec_cmpgt<mode>_signaling_finite_nocc): Likewise.
      	(*vec_cmpge<mode>_signaling_nocc): Likewise.
      	(*vec_cmpge<mode>_signaling_finite_nocc): Likewise.
      	(vec_cmpungt<mode>): New expander.
      	(vec_cmpunge<mode>): Likewise.
      	(vec_cmpuneq<mode>): Use quiet patterns.
      	(vec_cmpltgt<mode>): Allow only on z14+.
      	(vec_cmpordered<mode>): Use quiet patterns.
      	(vec_cmpunordered<mode>): Likewise.
      	(VEC_CMP_EXPAND): Add ungt and unge.
      
      gcc/testsuite/ChangeLog:
      
      2019-10-11  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* gcc.target/s390/vector/vec-scalar-cmp-1.c: Adjust
      	expectations.
      
      From-SVN: r276871
      Ilya Leoshkevich committed
    • Do not allocate ggc during streaming. · 1fcf52a6
      	* gimple-streamer-out.c (output_gimple_stmt): Add explicit function
      	parameter.
      	* lto-streamer-out.c: Include tree-dfa.h.
      	(output_cfg): Do not use cfun.
      	(lto_prepare_function_for_streaming): New.
      	(output_function): Do not push cfun; do not initialize loop optimizer.
      	* lto-streamer.h (lto_prepare_function_for_streaming): Declare.
      	* passes.c (ipa_write_summaries): Use it.
      	(ipa_write_optimization_summaries): Do not modify bodies.
      	* tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter.
      	* tree.dfa.h (renumber_gimple_stmt_uids): Update prototype.
      	* tree-ssa-dse.c (pass_dse::execute): Update use of
      	renumber_gimple_stmt_uids.
      	* tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise.
      
      	* lto.c (lto_wpa_write_files): Prepare all bodies for streaming.
      
      From-SVN: r276870
      Jan Hubicka committed
    • decl.c (annotate_value): Really test the sign of the value when deciding to build a NEGATE_EXPR. · 05626b02
      	* gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Really test the
      	sign of the value when deciding to build a NEGATE_EXPR.
      	<PLUS_EXPR>: Remove redundant line.
      	<BIT_AND_EXPR>: Do the negation here.
      
      From-SVN: r276866
      Eric Botcazou committed
    • decl.c (Gigi_Equivalent_Type): New case. · 43b60e57
      	* gcc-interface/decl.c (Gigi_Equivalent_Type) <E_Array_Subtype>: New
      	case.  Return the base type if the subtype is not constrained.
      
      From-SVN: r276865
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): New case to deal with the definition of named numbers. · 104099b8
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Named_{Integer|Real}>:
      	New case to deal with the definition of named numbers.
      	<E_Variable>: Minor tweaks.  Set DECL_IGNORED_P on the CONST_DECL
      	if a corresponding variable is built.
      	* gcc-interface/trans.c (gnat_to_gnu) <N_Integer_Literal>: Return
      	error_mark_node instead of aborting on overflow for named numbers.
      	<N_Number_Declaration>: Reuse the <N_Object_Declaration> case and
      	deal with error_mark_node specifically.
      	* gcc-interface/utils.c (create_var_decl): Do not set DECL_IGNORED_P
      	on CONST_DECLs.
      	(gnat_write_global_declarations): Output global constants.
      
      From-SVN: r276864
      Eric Botcazou committed
    • [Ada] Repair ChangeLog entries · 848830dc
      My scripts and I unexpectedly erased gcc/ada/ChangeLog yesterday. This
      commit restores the ChangeLog file to its previous state and adds the
      entries for my commits yesterday.
      
      From-SVN: r276861
      Pierre-Marie de Rodat committed
    • re PR c++/91987 (-fstrict-eval-order issues) · 1a37b6d9
      	PR c++/91987
      cp/
      	* decl2.c (grok_array_decl): For -fstrong-eval-order, when array ref
      	operands have been swapped and at least one operand has side-effects,
      	revert the swapping before calling build_array_ref.
      	* typeck.c (cp_build_array_ref): For non-ARRAY_TYPE array ref with
      	side-effects on the index operand, if -fstrong-eval-order use
      	save_expr around the array operand.
      	(cp_build_binary_op): For shifts with side-effects in the second
      	operand, wrap first operand into SAVE_EXPR and evaluate it before
      	the shift.
      	* semantics.c (handle_omp_array_sections_1): Temporarily disable
      	flag_strong_eval_order during OMP_CLAUSE_REDUCTION array section
      	processing.
      	* cp-gimplify.c (gimplify_to_rvalue): New function.
      	(cp_gimplify_expr): Use it.
      testsuite/
      	* g++.dg/cpp1z/eval-order6.C: New test.
      	* g++.dg/cpp1z/eval-order7.C: New test.
      	* g++.dg/cpp1z/eval-order8.C: New test.
      	* c-c++-common/gomp/pr91987.c: New test.
      
      From-SVN: r276860
      Jakub Jelinek committed
    • vec_promote_demote cost to 1 for non-Power7 VSX architectures · 1e99e6fe
      2019-10-11  Kewen Lin  <linkw@gcc.gnu.org>
      
          * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower
          vec_promote_demote cost to 1 for non-Power7 VSX architectures.
      
      From-SVN: r276859
      Kewen Lin committed
    • Daily bump. · 192eaafb
      From-SVN: r276858
      GCC Administrator committed
  2. 10 Oct, 2019 26 commits
    • Update DFP macros in float.h for C2x and TS 18661-2. · 27dfdc0f
      GCC's <float.h> includes various macros for decimal floating-point
      types, defined if __STDC_WANT_DEC_FP__, as defined in TS 24732.
      
      TS 18661-2 and C2X make some changes to those macros.  In TS 18661-2,
      they are to be defined if __STDC_WANT_IEC_60559_DFP_EXT__, and the
      *_SUBNORMAL_MIN macros are renamed to *_TRUE_MIN.  In C2X, the macros
      are to be defined whenever DFP is supported, without needing any
      feature test macro to be defined.
      
      This patch updates the header accordingly.  There is no existing
      predefined macro for whether the target supports DFP; rather than
      adding a new macro for that purpose, this patch changes the predefined
      macros used in <float.h> so that they are only defined when DFP is
      supported and thus can be used as conditionals; this is the same way
      predefined macros for _FloatN and _FloatNx types work.  Although
      formally TR 24732 and TS 18661-2 say nothing about implementations
      lacking DFP support, it seems appropriate to avoid defining the macros
      in <float.h>, in the absence of DFP support, even if the respective
      feature test macros are defined.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.  Also tested
      the c2x-float-no-dfp-* tests for aarch64-linux-gnu to make sure they
      do pass in a no-DFP configuration.
      
      gcc:
      	* ginclude/float.h [!__DEC32_MANT_DIG__]: Do not define DFP
      	macros.
      	[__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]:
      	Also define DFP macros for these conditions.
      	[!__STDC_WANT_DEC_FP__] (DEC32_SUBNORMAL_MIN, DEC64_SUBNORMAL_MIN,
      	DEC128_SUBNORMAL_MIN): Do not define.
      	[__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]
      	(DEC32_TRUE_MIN, DEC64_TRUE_MIN, DEC128_TRUE_MIN): New macros.
      
      gcc/c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Do not define macros for DFP
      	types if DFP not supported.
      
      gcc/testsuite:
      	* gcc.dg/c11-float-dfp-1.c, gcc.dg/c2x-float-no-dfp-1.c,
      	gcc.dg/c2x-float-no-dfp-2.c, gcc.dg/dfp/c2x-float-dfp-1.c,
      	gcc.dg/dfp/c2x-float-dfp-2.c, gcc.dg/dfp/c2x-float-dfp-3.c,
      	gcc.dg/dfp/tr24732-float-dfp-1.c,
      	gcc.dg/dfp/ts18661-2-float-dfp-1.c: New tests.
      
      From-SVN: r276854
      Joseph Myers committed
    • re PR middle-end/26241 (None of the IPA passes are documented in passes.texi) · 8faf3ed9
      2019-10-10  Xiong Hu Luo  <luoxhu@linux.ibm.com>
      	    Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      
      	PR middle-end/26241
      	* doc/lto.texi (IPA): Reference to the IPA passes.
      	* doc/passes.texi (Pass manager): Add node IPA passes and
      	  description for each IPA pass.
      
      Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>
      
      From-SVN: r276851
      Xiong Hu Luo committed
    • ipa-reference.c: Do not include splay-tree.h · 6488759f
      	* ipa-reference.c: Do not include splay-tree.h
      	(reference_vars_to_consider): Turn to hash map.
      	(get_static_name, ipa_init, analyze_function, propagate,
      	stream_out_bitmap, ipa_reference_write_optimization_summary,
      	ipa_reference_write_optimization_summary): Update.
      
      From-SVN: r276850
      Jan Hubicka committed
    • * ipa-reference.c (propagate): Fix releasing of IPA summaries. · cd8589ab
      From-SVN: r276849
      Jan Hubicka committed
    • [Darwin, machopic 4/n] Arrange to indirect IVARs when needed. · 3a73cd7c
      Objective C V2 (m64) IVAR offset refs from Apple GCC-4.x have an indirection
      for m64 code on PPC (which is the only 64b user for Mach-O PIC).  Apple GCC
      4.x places the indirections in the .data section, however this seems to have
      been unintentional - and we are placing the indirections in the non-lazy
      symbol pointers section.
      
      gcc/ChangeLog:
      
      2019-10-10  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin.c: Lookup Objective C metadata and force indirection
      	for IVAR refs.
      
      From-SVN: r276848
      Iain Sandoe committed
    • [Objective-C, NeXT ABI] Identify V2 IVAR refs by metadata. · eb870e5e
      For the NeXT 64b ABI, IVAR refs are supposed to be indirected for
      Mach-O PIC.  Identify them so that we can act as needed.
      
      gcc/objc/ChangeLog:
      
      2019-10-10  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* objc-next-metadata-tags.h (OCTI_RT_META_IVAR_REF): New.
      	(meta_ivar_ref): New.
      	* objc-next-runtime-abi-02.c
      	(next_runtime_abi_02_init_metadata_attributes): Create the
      	IVAR ref metadata identifier.
      	(ivar_offset_ref): Tag IVAR refs with specific metadata.
      
      From-SVN: r276847
      Iain Sandoe committed
    • Add check for prefixed addresses. · d102b039
      2019-10-10  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/rs6000.c (quad_address_p): Add check for prefixed
      	addresses.
      	(mem_operand_gpr): Add check for prefixed addresses.
      	(mem_operand_ds_form): Add check for prefixed addresses.
      	(rs6000_legitimate_offset_address_p): If we support prefixed
      	addresses, check for a 34-bit offset instead of 16-bit.
      	(rs6000_legitimate_address_p): Add check for prefixed addresses.
      	Do not allow load/store with update if the address is prefixed.
      	(rs6000_mode_dependent_address):  If we support prefixed
      	addresses, check for a 34-bit offset instead of 16-bit.
      
      From-SVN: r276846
      Michael Meissner committed
    • Documentation hyperlinks for [-Wname-of-option] (PR 87488) · b4c7ca2e
      This patch uses the support for pretty-printing escaped URLs added in
      the previous patch (PR 87488) so that in a sufficiently capable terminal
      the [-Wname-of-option] emitted at the end of each diagnostic becomes a
      hyperlink to the documentation for that option on the GCC website.
      
      I've tested it with Fedora 30's GNOME Terminal (3.32.2 with VTE 0.56.3);
      the option text is printed with a dotted underline, hovering shows the
      URL, and on right-clicking it offers menu items to visit/copy the URL.
      
      gcc/ChangeLog:
      	PR 87488
      	* Makefile.in (CFLAGS-opts.o): Pass in DOCUMENTATION_ROOT_URL via
      	-D.
      	* configure.ac (--with-documentation-root-url): New option.
      	* configure: Regenerate.
      	* diagnostic-format-json.cc (json_end_diagnostic): If there is an
      	option URL, add it as a new string field of the diagnostic option.
      	* diagnostic.c (diagnostic_initialize): Initialize get_option_url.
      	(print_option_information): If get_option_url is non-NULL, call
      	it, and if the result is non-NULL, potentially emit an escape
      	sequence to markup the option text with the resulting URL.
      	* diagnostic.h (diagnostic_context::get_option_url): New callback.
      	* doc/invoke.texi (-fdiagnostics-format=): Add "option_url" to
      	example of JSON output.
      	* opts-diagnostic.h (get_option_url): New decl.
      	* opts.c (get_option_url): New function.
      	* toplev.c (general_init): Initialize the get_option_url callback.
      
      gcc/testsuite/ChangeLog:
      	PR 87488
      	* c-c++-common/diagnostic-format-json-2.c: Expect an "option_url"
      	field.
      	* c-c++-common/diagnostic-format-json-3.c: Likewise.
      	* gfortran.dg/diagnostic-format-json-2.F90: Likewise.
      	* gfortran.dg/diagnostic-format-json-3.F90: Likewise.
      	* jit.dg/test-error-array-bounds.c (create_code): Ensure that
      	error messages don't contain escaped URLs.
      
      From-SVN: r276843
      David Malcolm committed
    • [PATCH 1/3] S/390: Do not use signaling vector comparisons on z13 · 3245582f
      z13 supports only non-signaling vector comparisons.  This means we
      cannot vectorize LT, LE, GT, GE and LTGT when compiling for z13.  Notify
      middle-end about this by using more restrictive operator predicate in
      vcond<V_HW:mode><V_HW2:mode>.
      
      gcc/ChangeLog:
      
      2019-10-10  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR target/77918
      	* config/s390/vector.md (vcond_comparison_operator): New
      	predicate.
      	(vcond<V_HW:mode><V_HW2:mode>): Use vcond_comparison_operator.
      
      From-SVN: r276842
      Ilya Leoshkevich committed
    • pretty-print: support URL escape sequences (PR 87488) · d2608235
      https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
      describes an emerging standard for embedding URLs in escape sequences
      for marking up text output.  This is supported e.g. by recent releases
      of GNOME Terminal.
      
      This patch adds support to our pretty-printing framework for emitting
      URLs.
      
      A followup patch uses this to add URLs to the pertinent documentation
      for the output of -fdiagnostics-show-option.
      
      gcc/ChangeLog:
      	PR 87488
      	* common.opt (fdiagnostics-urls=): New option.
      	(diagnostic-url.h): Add SourceInclude.
      	(diagnostic_url_rule): New enum.
      	* diagnostic-color.c: Include "diagnostic-url.h".
      	(diagnostic_urls_enabled_p): New function.
      	* diagnostic-url.h: New file.
      	* diagnostic.c: Include "diagnostic-url.h".
      	(diagnostic_urls_init): New function.
      	* diagnostic.h (diagnostic_urls_init): New decl.
      	* doc/invoke.texi (Diagnostic Message Formatting Options): Add
      	-fdiagnostics-urls to the list.
      	(-fdiagnostics-urls): New option.
      	* gcc.c (driver_handle_option): Handle OPT_fdiagnostics_urls_.
      	(driver::global_initializations): Call diagnostic_urls_init.
      	* opts-global.c (init_options_once): Likewise.
      	* opts.c (common_handle_option): Handle OPT_fdiagnostics_urls_.
      	* pretty-print.c (pretty_printer::pretty_printer): Initialize
      	show_urls.
      	(pp_begin_url): New function.
      	(pp_end_url): New function.
      	(selftest::test_urls): New selftest.
      	(selftest::pretty_print_c_tests): Call it.
      	* pretty-print.h (pretty_printer::show_urls): New field.
      	(pp_begin_url): New decl.
      	(pp_end_url): New decl.
      
      gcc/testsuite/ChangeLog:
      	PR 87488
      	* lib/prune.exp (TEST_ALWAYS_FLAGS): Add -fdiagnostics-urls=never.
      
      From-SVN: r276841
      David Malcolm committed
    • PR libstdc++/91057 fix bootstrap failure on powerpc · 9cfc400f
      	PR libstdc++/91057
      	* src/c++98/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]
      	(find_ldbl_sync_facet): Fix parameter type and missing return.
      
      From-SVN: r276840
      Jonathan Wakely committed
    • re PR target/92022 (ICE in alpha_handle_trap_shadows, at config/alpha/alpha.c:8847) · e5da0a1d
      	PR target/92022
      	* config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN.
      
      testsuite/ChangeLog:
      
      	PR target/92022
      	* g++.dg/pr92022.C: New test.
      
      From-SVN: r276839
      Uros Bizjak committed
    • [Ada] Handling up-level references in loops within library-level declarations · 7e536bfd
      2019-10-10  Gary Dismukes  <dismukes@adacore.com>
      
      gcc/ada/
      
      	* exp_ch7.adb (Check_Unnesting_In_Decls_Or_Stmts): When
      	encountering a loop at the top level of a package declaration
      	list (that is, within the declarations of a package spec or
      	body) that has nested subprograms, call Unnest_Loop to create a
      	new library-level procedure that will contain the loop, to allow
      	for proper handling of up-level references from within nested
      	subprograms, such as to loop parameters.
      	(Unnest_Loop): New procedure that takes a loop statement and
      	creates a new procedure body to enclose the loop statement,
      	along with generating a call to the procedure.
      
      From-SVN: r276836
      Gary Dismukes committed
    • [Ada] Ensure constructor is a C++ constructor · ebeabe04
      2019-10-10  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* freeze.adb (Freeze_Subprogram): Ensure constructor is a C++
      	constructor.
      
      From-SVN: r276835
      Arnaud Charlet committed
    • [Ada] Add pragma Preelaborable_Initialization to Stream_IO.File_Type · 96dd5bb6
      2019-10-10  Gary Dismukes  <dismukes@adacore.com>
      
      gcc/ada/
      
      	* libgnat/a-ststio.ads (File_Type): Apply pragma
      	Preelaborable_Initialization to the type.
      
      From-SVN: r276834
      Gary Dismukes committed
    • [Ada] Fix inlining of subprograms with deep param/result in GNATprove · 5913d1b7
      2019-10-10  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not peek
      	under private types whose completion is SPARK_Mode Off.
      
      From-SVN: r276833
      Yannick Moy committed
    • [Ada] Various minor typo fixes · 60f66f34
      2019-10-10  Gary Dismukes  <dismukes@adacore.com>
      
      gcc/ada/
      
      	* exp_ch4.adb, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
      	sem_ch6.adb, sem_prag.adb, sem_util.adb, sem_util.ads: Minor
      	typo fixes.
      
      From-SVN: r276832
      Gary Dismukes committed
    • [Ada] Spurious warning on call with out parameter in expression function · 4e866f08
      2019-10-10  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_warn.adb (Warn_On_Useless_Assignment): Do not warn if the
      	second assignment is at the same source position as the first.
      
      From-SVN: r276831
      Ed Schonberg committed
    • [Ada] Unnesting issues with entry families and accept statements · 6c142b14
      2019-10-10  Gary Dismukes  <dismukes@adacore.com>
      
      gcc/ada/
      
      	* sem_util.adb (Enclosing_Subprogram): Handle the case of
      	E_Entry_Family, returning the entry family's associated
      	Protected_Body_Subprogram (as was already done for E_Entry).
      	* exp_ch9.adb (Expand_N_Accept_Statement): Call Reset_Scopes_To
      	on the block created for an accept statement to reset the scopes
      	of any local entities to the block scope.
      
      From-SVN: r276830
      Gary Dismukes committed
    • [Ada] Spurious visibility error on formal package with Abstract_State · 55160f6c
      2019-10-10  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_ch12.adb (Analyze_Formal_Package_Declaration): Propagate
      	an aspect specification for Abstract_State from generic package
      	to formal package, so that it is available when analyzing the
      	constructed formal.
      
      From-SVN: r276829
      Ed Schonberg committed
    • [Ada] Fix awkward placement of freeze node for actual subtype · dfdd3de1
      2019-10-10  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* sem_ch6.adb (Set_Actual_Subtypes): Put the freeze node of the
      	actual subtype after its declaration when the type of the formal
      	has a predicate.
      
      From-SVN: r276828
      Eric Botcazou committed
    • [Ada] Get rid of spurious error for _Tag on extension with reverse bit order · ab9e2084
      2019-10-10  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Do not use
      	the Esize of the component to compute its layout, but only the
      	Component_Clause.  Do not issue a warning for the _Tag
      	component.  Also set the Esize of the component at the end of
      	the layout.
      	(Analyze_Record_Representation_Clause): Remove Hbit local
      	variable.  Lay out the Original_Record_Component only if it's
      	distinct from the component.
      	(Check_Record_Representation_Clause): Fix off-by-one bug for the
      	Last_Bit of the artificial clause built for the _Tag component.
      
      From-SVN: r276827
      Eric Botcazou committed
    • [Ada] Debug procedure for printing ancestors · a871b0aa
      2019-10-10  Bob Duff  <duff@adacore.com>
      
      gcc/ada/
      
      	* treepr.ads, treepr.adb (ppar): New procedure.
      
      From-SVN: r276826
      Bob Duff committed
    • [Ada] 'others' in conditional_expressions · f18344b7
      2019-10-10  Bob Duff  <duff@adacore.com>
      
      gcc/ada/
      
      	* sem_aggr.adb (Resolve_Aggregate): Add missing cases in the
      	Others_Allowed => True case -- N_Case_Expression_Alternative and
      	N_If_Expression.  Use Nkind_In.
      	* atree.adb, atree.ads, sinfo.adb, sinfo.ads (Nkind_In): New
      	16-parameter version.
      
      From-SVN: r276824
      Bob Duff committed
    • [Ada] Missing Predicated_Parent link on array Itype · a096f12e
      2019-10-10  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_aggr.adb (Resolve_Array_Aggregate): Set properly the
      	Predicated_Parent link of an itype created for an aggregate, so
      	that the predicate_function of the parent can support proofs on
      	the object that it initializes.
      
      From-SVN: r276823
      Ed Schonberg committed
    • [Ada] Plug minor loophole for integer named number · f200341c
      2019-10-10  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* sem_ch3.adb (Analyze_Number_Declaration): Set
      	Debug_Info_Needed in the case where the expression is an integer
      	literal.
      
      From-SVN: r276822
      Eric Botcazou committed