1. 23 Jul, 2019 23 commits
    • gdbinit.in: add reload-gdbhooks (rh) command · d894bafc
      gcc/ChangeLog:
      
      2019-07-23  Vladislav Ivanishin <vlad@ispras.ru>
      
      	* gdbinit.in (reload-gdbhooks): New command with an attached doc string.
      	(rh): New alias for it.
      
      From-SVN: r273738
      Vladislav Ivanishin committed
    • make gdbhooks.py idempotent with respect to reloading · e41dd068
      gcc/ChangeLog:
      
      2019-07-23  Vladislav Ivanishin <vlad@ispras.ru>
      
      	* gdbhooks.py: Pass replace=True to
      	gdb.printing.register_pretty_printer.
      
      From-SVN: r273737
      Vladislav Ivanishin committed
    • re PR debug/91231 (ICE in dwarf2out_inline_entry, at dwarf2out.c:27642) · 0bd65f4f
      2019-07-23  Richard Biener  <rguenther@suse.de>
      
      	PR debug/91231
      	* lto-streamer-in.c (input_function): Drop inline-entry markers
      	that ended up with an unknown location block.
      
      From-SVN: r273733
      Richard Biener committed
    • re PR tree-optimization/83518 (Missing optimization: useless instructions should be dropped) · 62e3e66f
      2019-07-23  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/83518
      	* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate
      	init from a constant even when partial defs are already recorded.
      
      	c/
      	* gimple-parser.c (c_parser_parse_gimple_body): When we have
      	a CFG also rebuild cgraph edges.
      
      	* gcc.dg/tree-ssa/ssa-fre-79.c: New testcase.
      
      From-SVN: r273732
      Richard Biener committed
    • i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2. · e1eb82f5
      	* i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
      	* config/i386/znver1.md: Enable patterns for znver2 and add store
      	variants which use extra AGU unit.
      
      From-SVN: r273731
      Jan Hubicka committed
    • i386-options.c (ix86_option_override_internal): Default PARAM_AVOID_FMA_MAX_BITS to 256 for znver2. · 105c2795
      	* config/i386/i386-options.c (ix86_option_override_internal): Default
      	PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
      
      From-SVN: r273730
      Jan Hubicka committed
    • x86-tune-costs.h (znver2_memcpy): Update. · 187dd65d
      	* config/i386/x86-tune-costs.h (znver2_memcpy): Update.
      	(znver2_costs): Update 256 bit SSE costs and multiplication.
      
      From-SVN: r273728
      Jan Hubicka committed
    • [Ada] Aspect CPU may depend on a discriminant of a task type · 4e2a1652
      2019-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations,
      	Freeze_Entity_Checks): Include Aspect_CPU with other aspects
      	whose expresssion may depend on a discriminant, and thus require
      	that components of the type be made visible.
      
      gcc/testsuite/
      
      	* gnat.dg/task4.adb: New testcase.
      
      From-SVN: r273726
      Ed Schonberg committed
    • [Ada] Plug small loophole in Generate_Range_Check · 67460d45
      The Generate_Range_Check routine is responsible for generating range
      checks in the scalar case.  It automatically deals with possible
      overflow in the process when the source and the target base types are
      different.
      
      However there is one case where overflow is not dealt with correctly,
      namely when the target base type is narrower than the source base type
      and both are floating-point types. In this case, the routine will
      convert the source type to the target base type without checking for
      overflow. In practice this does not matter much because the conversion
      would yield an infinity on overflow, which would then fail the
      subsequent range check. However it's more correct to have a proper
      overflow check with -gnateF than relying on the infinity.
      
      2019-07-23  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* checks.adb (Convert_And_Check_Range): Add Suppress parameter
      	and pass it in the call to Insert_Actions.  Rename local
      	variable.
      	(Generate_Range_Check): Minor comment fixes.  Pass Range_Check
      	in the first call to Convert_And_Check_Range and All_Checks in
      	the second call.
      	* exp_ch4.adb (Expand_N_Type_Conversion): Reset the
      	Do_Overflow_Check flag in the float-to-float case too if there
      	is also a range check.
      
      gcc/testsuite/
      
      	* gnat.dg/range_check5.adb: New testcase.
      
      From-SVN: r273725
      Eric Botcazou committed
    • [Ada] Eliminate redundant overflow checks for conversions from fixed-point · a7191e01
      This eliminates redundant overflow checks that are generated for
      conversions from fixed-point to integer types when range checks are also
      enabled (which is the default), as the former checks are subsumed into
      the latter checks.
      
      No functional changes.
      
      2019-07-23  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* checks.adb (Activate_Overflow_Check): Remove redundant
      	argument.
      	* exp_ch4.adb (Discrete_Range_Check): Reset the overflow flag.
      	(Expand_N_Type_Conversion): Do not reset it here.
      
      From-SVN: r273724
      Eric Botcazou committed
    • [Ada] Minor tweak to -gnatR output · f9534f4b
      This makes sure that the numbers present in the -gnatR output are
      printed in decimal format in all cases, since the hexadecimal format is
      not compatible with the JSON syntax.
      
      2019-07-23  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (List_Component_Layout): Pass Decimal to UI_Write.
      	(Write_Val): Likewise.
      
      From-SVN: r273723
      Eric Botcazou committed
    • [Ada] Iterators are view-specific · c910db71
      Operational aspects, such as Default_Iterator, are view-specific, and if
      such an aspect appears on the full view of a private type, an object of
      the type cannot be iterated upon if it is not in the scope of the full
      view, This patch diagnoses properly an attempt to iterate over such an
      object.
      
      2019-07-23  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* aspects.ads: New table Operational_Aspect, used to distinguish
      	between aspects that are view-specific, such as those related to
      	iterators, and representation aspects that apply to all views of
      	a type.
      	* aspects.adb (Find_Aspect): If the aspect being sought is
      	operational, do not ecamine the full view of a private type to
      	retrieve it.
      	* sem_ch5.adb (Analyze_Iterator_Specification): Improve error
      	message when the intended domain of iteration does not implement
      	the required iterator aspects.
      
      gcc/testsuite/
      
      	* gnat.dg/iter5.adb: Add an expected error.
      	* gnat.dg/iter6.adb: New testcase.
      
      From-SVN: r273722
      Ed Schonberg committed
    • [Ada] Issue error on SPARK ownership rule violation · 15e79d66
      A modified rule in SPARK RM specifies that object declarations of
      anonymous access type should only occur immediately in subprogram, entry
      or block. Now checked.
      
      There is no impact on compilation.
      
      2019-07-23  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* sem_spark.ads (Is_Local_Context): New function.
      	* sem_spark.adb (Check_Declaration): Issue errors on violations
      	of SPARK RM 3.10(4)
      	(Process_Path): Do not issue error on borrow/observe during
      	elaboration, as these are caught by the new rule.
      
      From-SVN: r273721
      Yannick Moy committed
    • [Ada] Fix binding of ghost units with finalizer · 39c20502
      Linking of an enabled ghost unit which requires a finalizer lead to an
      error, as the name generated by the binder for calling the finalizer was
      not the same as the name chosen by the compiler. Now fixed.
      
      2019-07-23  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* exp_ch7.adb (Create_Finalizer): Force finalizer not to be
      	Ghost enabled.
      	* exp_dbug.adb (Get_External_Name): Explain special case of
      	Ghost finalizer.
      
      gcc/testsuite/
      
      	* gnat.dg/ghost6.adb, gnat.dg/ghost6_pkg.ads: New testcase.
      
      From-SVN: r273720
      Yannick Moy committed
    • x86/AVX512: improve generated code for mask-to-vector-register conversions · 58b8c5a8
      Conversion of comparison results to full vectors does, when VPMOVM2* are
      unavailable, not require any intermediate VMOVDQ{A,U}*: Simply use
      embedded masking on VPTERNLOG* right away, which is available with
      AVX512F (while VPMOVM2{D,Q} are available only with AVX512DQ).
      
      Note that the chosen immediate is only one of many possible ones; I was
      trying to make the insn here distinguishable from the pre-existing uses
      of vpternlog.
      
      gcc/
      2019-07-23  Jan Beulich  <jbeulich@suse.com>
      
      	* config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>):
      	Require only AVX512F.
      	(*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise.  Add
      	alternative expanding to vpternlog.
      
      From-SVN: r273719
      Jan Beulich committed
    • libiberty: Check zero value shstrndx in simple-object-elf.c · b1bc0f50
      From-SVN: r273718
      Ren Kimura committed
    • Use -flto instead of -flto=N in DWARF producer string. · c0cdef59
      2019-07-23  Martin Liska  <mliska@suse.cz>
      
      	* dwarf2out.c (gen_producer_string): Canonize -flto=N
      	to -flto in dwarf producer string.
      
      From-SVN: r273717
      Martin Liska committed
    • tree-cfg.c (label_for_bb): Remove global var. · 9215b328
      2019-07-23  Richard Biener  <rguenther@suse.de>
      
      	* tree-cfg.c (label_for_bb): Remove global var.
      	(main_block_label): Take label_for_bb as argument.
      	(cleanup_dead_labels_eh): Likewise, adjust.
      	(cleanup_dead_labels): Adjust.
      
      From-SVN: r273716
      Richard Biener committed
    • [rs6000] Add documentation for __builtin_mtfsf · 0ac608a2
      2019-07-22  Paul A. Clarke  <pc@us.ibm.com>
      
      [gcc]
      
      	* doc/extend.texi (Basic PowerPC Built-in Functions Available on all
      	Configurations): Add documentation for __builtin_mtfsf.
      
      From-SVN: r273715
      Paul A. Clarke committed
    • RISC-V: Add -malign-data= option. · ffbb9818
      	gcc/
      	Ilia Diachkov  <ilia.diachkov@optimitech.com>
      	* config/riscv/riscv-opts.h (struct riscv_align_data): New.
      	* config/riscv/riscv.c (riscv_constant_alignment): Use
      	riscv_align_data_type.
      	* config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New.
      	(DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
      	(LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
      	* config/riscv/riscv.opt (malign-data): New.
      	* doc/invoke.texi (RISC-V Options): Document -malign-data=.
      
      From-SVN: r273714
      Ilia Diachkov committed
    • compiler: follow-on fix for finalizing imported methods · 1d46067b
          
          This patch is a revision to CL 185518, which added code to perform
          finalization of methods on types created by the importer and not
          directly reachable until inlining is done.
          
          The original fix invoked the finalization code at the end of
          Import::read_types(), but it turns out this doesn't handle the case
          where a type with methods is read in due to a reference from something
          later in the export data (a function or variable). The fix is to move
          the import finalization call to the end of Import::import().
          
          Testcase for this bug is in CL 187057.
          
          Fixes golang/go#33219.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/187058
      
      From-SVN: r273713
      Ian Lance Taylor committed
    • Daily bump. · 22e4efa1
      From-SVN: r273712
      GCC Administrator committed
  2. 22 Jul, 2019 17 commits
    • cgraph.c (dump_graphviz): New function. · 34e64622
      	* cgraph.c (dump_graphviz): New function.
      	* cgraph.h (dump_graphviz): New function.
      	* symtab.c (dump_graphviz): New function.
      
      	* lang.opt (flag_dump_callgraph): New flag.
      	* lto-dump.c (dump_symtab_graphviz): New function.
      	(dump_tool_help): New option.
      	(lto_main): Handle graphviz dumping.
      
      From-SVN: r273708
      Giuliano Belinassi committed
    • Rename testsuite directory to match P0553R4 stable names · 2ac8e322
      	* testsuite/26_numerics/bit/bitops.count/*: Rename to ...
      	* testsuite/26_numerics/bit/bit.count/*: Here.
      
      From-SVN: r273707
      Jonathan Wakely committed
    • Adjust std::rotl, std::rotr etc to match final P0553R4 proposal · f35da524
      This proposal has now been accepted for C++20, with a few changes. This
      patch adjusts std::rotl and std::rotr to match the final specification
      and declares the additions for C++2a mode even when __STRICT_ANSI__ is
      defined.
      
      	* include/std/bit (__rotl, __rotr): Change second parameter from
      	unsigned int to int and handle negative values.
      	(rotl, rotr): Remove check for __STRICT_ANSI__. Change second
      	parameter from unsigned int to int. Add nodiscard attribute.
      	* testsuite/26_numerics/bit/bitops.rot/rotl.cc: Rename to ...
      	* testsuite/26_numerics/bit/bit.rotate/rotl.cc: Here. Test negative
      	shifts.
      	* testsuite/26_numerics/bit/bitops.rot/rotr.cc: Rename to ...
      	* testsuite/26_numerics/bit/bit.rotate/rotr.cc: Here. Test negative
      	shifts.
      
      From-SVN: r273706
      Jonathan Wakely committed
    • Change std::ceil2 to be undefined if the result can't be represented · 281ab2fb
      	* include/std/bit (__ceil2): Make unrepresentable results undefined,
      	as per P1355R2. Add debug assertion. Perform one left shift, not two,
      	so that out of range values cause undefined behaviour. Ensure that
      	shift will still be undefined if left operand is promoted.
      	* testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Replace checks for
      	unrepresentable values with checks that they are not core constant
      	expressions.
      	* testsuite/26_numerics/bit/bit.pow.two/ceil2_neg.cc: New test.
      
      From-SVN: r273705
      Jonathan Wakely committed
    • [aarch64]: add usra and ssra combine patterns · 462e6f9a
      This patch adds support to combine:
      
      1) ushr and add into usra, example:
      
      ushr    v0.16b, v0.16b, 2
      add     v0.16b, v0.16b, v2.16b
      ---
      usra    v2.16b, v0.16b, 2
      
      2) sshr and add into ssra, example:
      
      sshr    v1.16b, v1.16b, 2
      add     v1.16b, v1.16b, v3.16b
      ---
      ssra    v3.16b, v1.16b, 2
      
      Committed on behalf of Sylvia Taylor <sylvia.taylor@arm.com>.
      Reviewed-by: <James.greenhalgh@arm.com>
      
      gcc/ChangeLog:
      
      
              * config/aarch64/aarch64-simd.md
              (*aarch64_simd_sra<mode>): New.
              * config/aarch64/iterators.md
              (SHIFTRT): New iterator.
              (sra_op): New attribute.
      
      gcc/testsuite/ChangeLog:
      
              * gcc.target/aarch64/simd/ssra.c: New test.
              * gcc.target/aarch64/simd/usra.c: New test.
      
      From-SVN: r273703
      Sylvia Taylor committed
    • MSP430: Don't save all callee-saved regs in non-leaf interrupt functions · 310b5fb7
      Previously, all callee-saved regs would unconditionally be saved
      in interrupt functions that call another function.
      
      2019-07-22  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config/msp430/msp430.c (msp430_preserve_reg_p): Don't save
      	callee-saved regs R4->R10 in an interrupt function that calls another
      	function.
      
      2019-07-22  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* gcc.target/msp430/isr-push-pop-main.c: New test.
      	* gcc.target/msp430/isr-push-pop-isr-430.c: Likewise.
      	* gcc.target/msp430/isr-push-pop-isr-430x.c: Likewise.
      	* gcc.target/msp430/isr-push-pop-leaf-isr-430.c: Likewise.
      	* gcc.target/msp430/isr-push-pop-leaf-isr-430x.c: Likewise.
      
      From-SVN: r273702
      Jozef Lawrynowicz committed
    • [jit] check result_type in gcc_jit_context_new_unary_op · 9afb91b2
      2019-07-22  Andrea Corallo <andrea.corallo@arm.com>
      
      	* jit-recording.c (unary_op_reproducer_strings): Make it extern.
      	(binary_op_reproducer_strings): Likewise.
      	* jit-recording.h (unary_op_reproducer_strings): Likewise.
      	(binary_op_reproducer_strings): Likewise.
      	* libgccjit.c (gcc_jit_context_new_unary_op): Check result_type to be a
      	numeric type.
      	* libgccjit.c (gcc_jit_context_new_binary_op): Improve error message.
      
      2019-07-22  Andrea Corallo <andrea.corallo@arm.com>
      
      	* jit.dg/test-error-gcc_jit_context_new_unary_op-bad-res-type.c:
      	New testcase.
      	* jit.dg/test-error-gcc_jit_context_new_binary_op-bad-res-type.c:
      	Adjust error message.
      
      From-SVN: r273700
      Andrea Corallo committed
    • [rs6000] Add _mm_blend_epi16 and _mm_blendv_epi8 · 1c4547f1
      Add compatibility implementations of _mm_blend_epi16 and _mm_blendv_epi8
      intrinsics.
      
      Respective test cases are copied almost verbatim (minor changes to
      the dejagnu head lines) from i386.
      
      2019-07-22  Paul A. Clarke  <pc@us.ibm.com>
      
      [gcc]
      
      	* config/rs6000/smmintrin.h (_mm_blend_epi16): New.
      	(_mm_blendv_epi8): New.
      
      [gcc/testsuite]
      
      	* gcc.target/powerpc/sse4_1-check.h: New.
      	* gcc.target/powerpc/sse4_1-pblendvb.c: New.
      	* gcc.target/powerpc/sse4_1-pblendw.c: New.
      	* gcc.target/powerpc/sse4_1-pblendw-2.c: New.
      
      From-SVN: r273698
      Paul A. Clarke committed
    • [Ada] More complete information level for -gnatR4 output · 46ebb491
      This instructs -gnatR4 to also list the Etype of user-declared objects
      if it is compiler-generated, for example in:
      
      package P2 is
      
        Arr_V : array (1 .. 5) of Integer;
      
      end P2;
      
      2019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (List_Entities): Also list compiled-generated
      	types present as Etype of objects.
      
      From-SVN: r273697
      Eric Botcazou committed
    • [Ada] Sinfo: update doc about Do_Division/Overlflow/Range_Check · ae3f6530
      2019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* sinfo.ads: Update the documentation about the
      	Do_Division_Check, Do_Overflow_Check and Do_Range_Check flags.
      
      From-SVN: r273696
      Eric Botcazou committed
    • [Ada] Fix missing check for no-op conversion to fixed-point type · 267c7ff6
      This plugs a small loophole in the compiler for the case of a
      multiplication or a division in a fixed-point type wrapped in a no-op
      conversion, e.g. to the same fixed-point type.
      
      The front-end fails to generate a range check for the operation.  This
      used to be caught by the back-end, which would generate the range check,
      but this is no longer the case because we now make sure to reset the
      Do_Range_Check flag in all cases before invoking the back-end.
      
      2019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* exp_ch4.adb (Expand_N_Type_Conversion): Beef up comment.
      	(Fixup_Universal_Fixed_Operation): Set the base type instead of
      	the type of the enclosing type conversion on the operation.
      
      gcc/testsuite/
      
      	* gnat.dg/fixedpnt6.adb: New testcase.
      
      From-SVN: r273695
      Eric Botcazou committed
    • [Ada] Remove misleading warning/suggestion in membership test · ad277369
      This patch removes a warning on a membership test whose right operand is
      given by a range. In many cases the check can be replaced by the use of
      attribute 'Valid, but if the bounds of range are type conversion this
      replacement would be invorrect and the warning and suggestion are
      misleading.
      
      2019-07-22  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_ch4.adb (Expand_N_In): Do not suggest the use of attribute
      	'Valid as a replacement for a range check on a discrete type
      	when the bounds of the range are given by type conversions,
      	because in such a case there are distinct types involved and the
      	subbested attribute replacement would be misplaced.
      
      gcc/testsuite/
      
      	* gnat.dg/warn26.adb: New testcase.
      
      From-SVN: r273694
      Ed Schonberg committed
    • [Ada] Adapt ownership checking in SPARK to traversal functions · a2119175
      A traversal function, especially when implemented as an expression
      function, may need to return an if-expression or case-expression, while
      still respecting Legality Rule SPARK RM 3.10(5). This case is now
      allowed in GNATprove.
      
      There is no impact on compilation.
      
      2019-07-22  Yannick Moy  <moy@adacore.com>
      
      gcc/ada/
      
      	* sem_spark.adb (Get_Root_Object, Is_Path_Expression,
      	Is_Subpath_Expression): Add parameter Is_Traversal to adapt
      	these functions to the case of paths returned from a traversal
      	function.
      	(Read_Indexes): Handle the case of an if-expression or
      	case-expression.
      	(Check_Statement): Check Emit_Messages only when issuing an
      	error message. This is important as Emit_Messages may store the
      	information that an error was detected.
      
      From-SVN: r273693
      Yannick Moy committed
    • [Ada] Overhaul code implementing conversions involving fixed-point types · 8113b0c7
      This ovehauls the code implementing conversions involving fixed-point
      types in the front-end because it leaks the Do_Range_Check flag in
      several places to the back-end, which is a violation of the documented
      interface between front-end and back-end.
      
      This also does a bit of housekeeping work throughout it in the process.
      
      There should be essentially no functional changes.
      
      2019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* checks.adb (Apply_Type_Conversion_Checks): Do not set
      	Do_Range_Check flag on conversions from fixed-point types
      	either.
      	* exp_attr.adb: Add use and with clause for Expander.
      	(Expand_N_Attribute_Reference) <Fixed_Value, Integer_Value>: Set
      	the Conversion_OK flag and do not generate overflow/range checks
      	manually.
      	* exp_ch4.adb (Expand_N_Qualified_Expression): Remove
      	superfluous clearing of Do_Range_Check flag.
      	(Discrete_Range_Check): New procedure to generate a range check
      	for discrete types.
      	(Real_Range_Check): Remove redundant local variable and adjust.
      	Remove useless shortcut.  Clear Do_Range_Check flag on all
      	paths.
      	(Expand_N_Type_Conversion): Remove redundant test on
      	Conversion_OK.  Call Discrete_Range_Check to generate range
      	checks on discrete types.  Remove obsolete code for
      	float-to-integer conversions.  Add code to generate range checks
      	for conversions involving fixed-point types.
      
      From-SVN: r273692
      Eric Botcazou committed
    • [Ada] Sprint: fix pasto in comment · c936411f
      2019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* sprint.ads: Fix pasto in comment.
      
      From-SVN: r273691
      Eric Botcazou committed
    • [Ada] Spurious error passing access to class-wide interface type · 137dabdd
      The compiler reports an spurious error when the formal parameter of a
      subprogram is an access to a class wide interface type and the actual
      parameter is an allocator of an object covering such interface type.
      
      2019-07-22  Javier Miranda  <miranda@adacore.com>
      
      gcc/ada/
      
      	* sem_res.adb (Resolve_Actuals): Replace code that displaces the
      	pointer to an allocated object to reference its secondary
      	dispatch table by a type conversion (which takes care of
      	handling all cases).
      
      gcc/testsuite/
      
      	* gnat.dg/class_wide5.adb: New testcase.
      
      From-SVN: r273690
      Javier Miranda committed
    • [Ada] Small enhancement to the -gnatD/-gnatG output for fixed-point types · 2f8313ce
      This is a small enhancement to the -gnatD/-gnatG output: the base type
      of fixed-point types, which is usually an itype, used to be printed as
      ??? in this case.  It is now printed in a similar fashion as the first
      subtype.
      
      For the following package:
      
      package P is
      
        type D is delta 128.0 / (2 ** 15) range 0.0 .. 256.0;
      
      end P;
      
      the  -gnatD/-gnatG must now be:
      
      Source recreated from tree for P (spec)
      ---------------------------------------
      
      p_E : short_integer := 0;
      
      package p is
         type p__d is delta [1.0/256.0] range 0.0 .. 256.0;
         [type p__TdB is delta [1.0/256.0] range -[2147483648.0*2**(-8)] ..
           [2147483647.0*2**(-8)]]
         freeze p__TdB []
      end p;
      
      2019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* sprint.adb (Sprint_Node_Actual)
      	<N_Decimal_Fixed_Point_Definition>: Swap a couple of spaces.
      	(Write_Itype): Minor consistency fixes throughout.  Add support
      	for printing ordinary and decimal fixed-point types and
      	subtypes.
      
      From-SVN: r273689
      Eric Botcazou committed