Commit Graph

181595 Commits

Author SHA1 Message Date
Yannick Moy
a6fecb0671 [Ada] Minimize side-effect removal in GNATprove mode
gcc/ada/

	* exp_util.adb (Remove_Side_Effects): Only remove side-effects
	in GNATprove mode when this is useful.
	* sem_res.adb (Set_Slice_Subtype): Make sure in GNATprove mode
	to define the Itype when needed, so that run-time errors can be
	analyzed.
	* sem_util.adb (Enclosing_Declaration): Correctly take into
	account renaming declarations.
2020-11-25 08:22:29 -05:00
Eric Botcazou
9d41d78b05 [Ada] Adjust support for 128-bit integer types in System.Random_Numbers
gcc/ada/

	* libgnat/s-rannum.adb (Random_Discrete): Specifically deal with
	the case where the size of the base type is larger than 64 bits.
2020-11-25 08:22:28 -05:00
Yannick Moy
a8c229e14c [Ada] Fix internal compilation error on circular type in SPARK code
gcc/ada/

	* sem_ch3.adb (Access_Type_Declaration): Set Etype before
	checking for volatility compatibility.
2020-11-25 08:22:28 -05:00
Eric Botcazou
6d88dbdc5e [Ada] Add support for 128-bit integer types to GNAT.Random_Numbers
gcc/ada/

	* libgnat/g-rannum.ads (Random): New functions returning 128-bit.
	* libgnat/g-rannum.adb (Random): Implement them and alphabetize.
	(To_Signed): New unchecked conversion function for 128-bit.
2020-11-25 08:22:27 -05:00
Arnaud Charlet
bbf14e1350 [Ada] Allow debugging finalization-related expanded code
gcc/ada/

	* exp_ch7.adb (Build_Finalization_Master, Build_Finalizer,
	Build_Object_Declarations, Make_Deep_Array_Body,
	Wrap_Transient_Expression): Call Set_Debug_Info_Needed on
	temporaries when Debug_Generated_Code is True.
2020-11-25 08:22:26 -05:00
Liaiss Merzougue
cf4737dcec [Ada] Unrecursify Set_Digit/Set_Image_Unsigned procedure
gcc/ada/

	* libgnat/s-imagei.adb
	(Set_Digits): Rewrite the procedure to remove recursion.
	(Image_Integer, Set_Image_Integer): Update assertions and remove
	redundant ones.
	* libgnat/s-imageu.adb
	(Set_Image_Unsigned): Rewrite the procedure to remove recursion.
2020-11-25 08:22:25 -05:00
Piotr Trojanek
6b0c5c7227 [Ada] Remove repeated calls to Attribute_Name
gcc/ada/

	* exp_util.adb (Attribute_Constrained_Static_Value): Fix body
	box.
	* sem_attr.adb (Eval_Attribute): Replace repeated calls to
	Attribute_Name with a captured value of the Attribute_Id; also,
	remove extra parens around Is_Generic_Type.
2020-11-25 08:22:24 -05:00
Ghjuvan Lacambre
193040a071 [Ada] Fix crash on invalid pragma Profile
gcc/ada/

	* sem_prag.adb (Analyze_Pragma): Emit error on wrong argument
	nkind.
2020-11-25 08:22:24 -05:00
Piotr Trojanek
868268a8ec [Ada] Reuse Is_Named_Number where possible
gcc/ada/

	* sem_attr.adb, sem_prag.adb: Use Is_Named_Number.
2020-11-25 08:22:23 -05:00
Piotr Trojanek
90cb252f5f [Ada] Fix style and typos in code for expanding attribute references
gcc/ada/

	* exp_attr.adb, exp_util.adb: Fix style and typos in comments.
2020-11-25 08:22:22 -05:00
Piotr Trojanek
97a26d19d2 [Ada] Minor refine type of a counter variable
gcc/ada/

	* exp_attr.adb (Expand_N_Attribute_Reference): A variable that
	is only incremented in the code has now type Nat; conversion is
	now unnecessary.
2020-11-25 08:22:21 -05:00
Stam Markianos-Wright
bc771e6c3a arm: Add test that was missing from old commit [PR91816]
A while back I submitted GCC10 commit:

 44f77a6dea

for PR91816.

Turns out I was an idiot and forgot to include the test in the actual git commit.

Tested that the test still passes on a cross arm-none-eabi and also in a
Cortex A-15 bootstrap with no regressions.

gcc/testsuite/ChangeLog:
	PR target/91816
	* gcc.target/arm/pr91816.c: New test.
2020-11-25 12:59:19 +00:00
Jonathan Wakely
a5ccfd0460 libstdc++: Fix silly typos [PR 97936]
libstdc++-v3/ChangeLog:

	PR libstdc++/97936
	* include/bits/atomic_wait.h (__platform_wait): Check errno,
	not just the value of EAGAIN.
	(__waiters::__waiters()): Fix name of data member.
2020-11-25 12:16:07 +00:00
Jonathan Wakely
ad9cbcee54 libstdc++: Fix handling of futex wake [PR 97936]
The __platform_wait function is supposed to wait until *addr != old.
The futex syscall checks the initial value and returns EAGAIN if *addr
!= old is already true, which should cause __platform_wait to return.
Instead it loops and keeps doing a futex wait, which keeps returning
EAGAIN.

libstdc++-v3/ChangeLog:

	PR libstdc++/97936
	* include/bits/atomic_wait.h (__platform_wait): Return if futex
	sets EAGAIN.
	* testsuite/30_threads/latch/3.cc: Re-enable test.
	* testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
2020-11-25 10:31:55 +00:00
Jakub Jelinek
a7285c8659 middle-end: Reject flexible array members in __builtin_clear_padding [PR97943]
As mentioned in the PR, we currently ICE on flexible array members in
structs and unions during __builtin_clear_padding processing.

Jason said in the PR he'd prefer an error in these cases over forcefully
handling it as [0] arrays (everything is padding then) or consider the
arrays to have as many whole elements as would fit into the tail padding.

So, this patch implements that.

2020-11-25  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/97943
	* gimple-fold.c (clear_padding_union, clear_padding_type): Error on and
	ignore flexible array member fields.  Ignore fields with
	error_mark_node type.

	* c-c++-common/builtin-clear-padding-2.c: New test.
	* c-c++-common/builtin-clear-padding-3.c: New test.
	* g++.dg/ext/builtin-clear-padding-1.C: New test.
	* gcc.dg/builtin-clear-padding-2.c: New test.
2020-11-25 10:37:58 +01:00
GCC Administrator
1e2c9a2761 Daily bump. 2020-11-25 09:34:01 +00:00
Martin Liska
d3e763efcb changelog: fix parsing of a revert commit
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Use revert_regex instead
	of string prefix.  Convert sets to literals.
2020-11-25 07:56:57 +01:00
Jonathan Wakely
a3313a2214 libstdc++: Disable failing tests [PR 97936]
These tests are unstable and causing failures due to timeouts. Disable
them until the cause can be found, so that testing doesn't have to wait
for them to timeout.

libstdc++-v3/ChangeLog:

	PR libstdc++/97936
	PR libstdc++/97944
	* testsuite/29_atomics/atomic_integral/wait_notify.cc: Disable.
	Do not require pthreads, but add -pthread when appropriate.
	* testsuite/30_threads/jthread/95989.cc: Likewise.
	* testsuite/30_threads/latch/3.cc: Likewise.
	* testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
2020-11-24 23:41:28 +00:00
Martin Sebor
211d68dda1 PR c/97955 - ICE in build_array_type_1 on invalid redeclaration of function with VLA parameter
gcc/c-family/ChangeLog:

	* c-warn.c (warn_parm_array_mismatch): Avoid invalid redeclarations.

gcc/testsuite/ChangeLog:

	* gcc.dg/pr97955.c: New test.
2020-11-24 15:23:57 -07:00
Martin Sebor
f2a5cdff04 Add a note.
gcc/testsuite/ChangeLog:
	* gcc.dg/Wstringop-overflow-47.c: Add a note.
2020-11-24 13:31:42 -07:00
Jason Merrill
92a30040c8 c++: ICE with int{} in template. [PR97899]
split_nonconstant_init_1 was confused by a CONSTRUCTOR with non-aggregate
type, which (with COMPOUND_LITERAL_P set) we use in a template to represent
a braced functional cast.  It seems to me that there's no good reason to do
split_nonconstant_init at all in a template.

gcc/cp/ChangeLog:

	PR c++/97899
	* typeck2.c (store_init_value): Don't split_nonconstant_init in a
	template.

gcc/testsuite/ChangeLog:

	PR c++/97899
	* g++.dg/cpp0x/initlist-template3.C: New test.
2020-11-24 14:57:56 -05:00
Ulrich Weigand
ce2d9549f2 Revert: "Fix -ffast-math flags handling inconsistencies"
This reverts commit c4fa3728ab,
which caused a regression in the default for flag_excess_precision.

2020-11-24  Ulrich Weigand  <uweigand@de.ibm.com>

gcc/
	PR tree-optimization/97970
	* doc/invoke.texi (-ffast-math): Revert last change.
	* opts.c: Revert last change.
2020-11-24 19:30:01 +01:00
Martin Sebor
1805dbc58b Adjust regex pattern to expect an additional attribute and function return type
gcc/testsuite/ChangeLog:

	* gfortran.dg/gomp/declare-target-4.f90: Adjust pattern to expect
	an additional attribute and function return type.
2020-11-24 09:57:40 -07:00
Vladimir N. Makarov
bc8f0f1f88 [PR97933] LRA: find correctly last empty dest block.
gcc/

2020-11-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR bootstrap/97933
	* lra.c (lra_process_new_insns): Stop on the first real insn after
	head of e->dest.
2020-11-24 11:36:23 -05:00
Richard Earnshaw
f30a9a8d9e arm: correctly handle negating INT_MIN in arm_split_atomic_op [PR97534]
arm_split_atomic_op handles subtracting a constant by converting it
into addition of the negated constant.  But if the type of the operand
is int and the constant is -1 we currently end up generating invalid
RTL which can lead to an abort later on.

The problem is that in a HOST_WIDE_INT, INT_MIN is represented as
0xffffffff80000000 and the negation of this is 0x0000000080000000, but
that's not a valid constant for use in SImode operations.

The fix is straight-forward which is to use gen_int_mode rather than
simply GEN_INT.  This knows how to correctly sign-extend the negated
constant when this is needed.

gcc/
	PR target/97534
	* config/arm/arm.c (arm_split_atomic_op): Use gen_int_mode when
	negating a const_int.
gcc/testsuite
	* gcc.dg/pr97534.c: New test.
2020-11-24 16:35:11 +00:00
Nathan Sidwell
13f93cf533 preprocessor: Add deferred macros
Deferred macros are needed for C++ modules.  Header units may export
macro definitions and undefinitions.  These are resolved lazily at the
point of (potential) use.  (The language specifies that, it's not just
a useful optimization.)  Thus, identifier nodes grow a 'deferred'
field, which fortunately doesn't expand the structure on 64-bit
systems as there was padding there.  This is non-zero on NT_MACRO
nodes, if the macro is deferred.  When such an identifier is lexed, it
is resolved via a callback that I added recently.  That will either
provide the macro definition, or discover it there was an overriding
undef.  Either way the identifier is no longer a deferred macro.
Notice it is now possible for NT_MACRO nodes to have a NULL macro
expansion.

	libcpp/
	* include/cpplib.h (struct cpp_hashnode): Add deferred field.
	(cpp_set_deferred_macro): Define.
	(cpp_get_deferred_macro): Declare.
	(cpp_macro_definition): Reformat, add overload.
	(cpp_macro_definition_location): Deal with deferred macro.
	(cpp_alloc_token_string, cpp_compare_macro): Declare.
	* internal.h (_cpp_notify_macro_use): Return bool
	(_cpp_maybe_notify_macro_use): Likewise.
	* directives.c (do_undef): Check macro is not undef before
	warning.
	(do_ifdef, do_ifndef): Deal with deferred macro.
	* expr.c (parse_defined): Likewise.
	* lex.c (cpp_allocate_token_string): Break out of ...
	(create_literal): ... here.  Call it.
	(cpp_maybe_module_directive): Deal with deferred macro.
	* macro.c (cpp_get_token_1): Deal with deferred macro.
	(warn_of_redefinition): Deal with deferred macro.
	(compare_macros): Rename to ...
	(cpp_compare_macro): ... here.  Make extern.
	(cpp_get_deferred_macro): New.
	(_cpp_notify_macro_use): Deal with deferred macro, return bool
	indicating definedness.
	(cpp_macro_definition): Deal with deferred macro.
2020-11-24 08:31:03 -08:00
Richard Sandiford
489be3119e aarch64: Fix aapcs64 testsuite failures
Various aapcs64 tests were failing at -O1 and above because
the assignments to testfunc_ptr were being deleted as dead.
That in turn happened because FUNC_VAL_CHECK hid the tail call
to myfunc using an LR asm trick:

    asm volatile ("mov %0, x30" : "=r" (saved_return_address));
    asm volatile ("mov x30, %0" : : "r" ((unsigned long long) myfunc));

and so the compiler couldn't see any calls that might read
testfunc_ptr.

That in itself could be fixed by adding a memory clobber to the
second asm above, forcing the compiler to keep both the testfunc_ptr
and the saved_return_address assignments.  But since this is an ABI
test, it seems better to make sure that we don't do any IPA at all.
The fact that doing IPA caused a problem was kind-of helpful and
so it might be better to avoid making the test “work” in the
presence of IPA.

The patch therefore just replaced “noinline” with “noipa”.

gcc/testsuite/
	* gcc.target/aarch64/aapcs64/abitest.h (FUNC_VAL_CHECK): Use
	noipa rather than noinline.
	* gcc.target/aarch64/aapcs64/abitest-2.h (FUNC_VAL_CHECK): Likewise.
2020-11-24 15:01:45 +00:00
Jonathan Wakely
7e0078f864 libstdc++: Run all tests in file
libstdc++-v3/ChangeLog:

	* testsuite/30_threads/jthread/95989.cc: Run all three test
	functions, not just the first one twice.
2020-11-24 14:59:41 +00:00
Jonathan Wakely
4bbd5d0c5f libstdc++: Throw instead of segfaulting in std::thread constructor [PR 67791]
This turns a mysterious segfault into an exception with a more useful
message. If the exception isn't caught, the user sees this instead of
just a segfault:

terminate called after throwing an instance of 'std::system_error'
  what():  Enable multithreading to use std:🧵 Operation not permitted
Aborted (core dumped)

libstdc++-v3/ChangeLog:

	PR libstdc++/67791
	* src/c++11/thread.cc (thread::_M_start_thread(_State_ptr, void (*)())):
	Check that gthreads is available before calling __gthread_create.
2020-11-24 14:59:40 +00:00
Jonathan Wakely
e253d36214 libstdc++: Use __libc_single_threaded for locale initialization
Most initialization of locales and facets happens before main() during
startup, when the program is likely to only have one thread. By using
the new __gnu_cxx::__is_single_threaded() function instead of checking
__gthread_active_p() we can avoid using pthread_once or atomics for the
common case.

That said, I'm not sure why we don't just use a local static variable
instead, as __cxa_guard_acquire() already optimizes for the
single-threaded case:

  static const bool init = (_S_initialize_once(), true);

I'll revisit that for GCC 12.

libstdc++-v3/ChangeLog:

	* src/c++98/locale.cc (locale::facet::_S_get_c_locale())
	(locale:🆔:_M_id() const): Use __is_single_threaded.
	* src/c++98/locale_init.cc (locale::_S_initialize()):
	Likewise.
2020-11-24 14:59:40 +00:00
Andrew Stubbs
97981e13b7 Tweak plugin-gcn.c defines
Ensure the code will continue to compile when elf.h gets these definitions.

libgomp/ChangeLog:

	* plugin/plugin-gcn.c: Don't redefine relocations if elf.h has them.
	(reserved): Delete unused define.
2020-11-24 14:56:38 +00:00
Ilya Leoshkevich
4acba48590 IBM Z: Restrict vec_cmp<m><n> on z13
Commit 5d9ade39b8 ("IBM Z: Fix PR97326: Enable fp compares in
vec_cmp") made it possible to create rtxes that describe signaling
comparisons on z13, which are not supported by the hardware.  Restrict
this by using vcond_comparison_operator predicate.

gcc/ChangeLog:

2020-11-24  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/vector.md: Use vcond_comparison_operator
	predicate.
2020-11-24 13:31:16 +01:00
Ilya Leoshkevich
fbd4553d99 IBM Z: Update autovec-*-quiet-uneq expectations
Commit 229752afe3 ("VEC_COND_EXPR optimizations") has improved code
generation: we no longer need "vx x,x,-1", which turned out to be
superfluous.  Instead, we simply swap 0 and -1 arguments of the
preceding "vsel".

gcc/testsuite/ChangeLog:

2020-11-23  Ilya Leoshkevich  <iii@linux.ibm.com>

	* gcc.target/s390/zvector/autovec-double-quiet-uneq.c: Expect
	that "vx" is not emitted.
	* gcc.target/s390/zvector/autovec-float-quiet-uneq.c: Likewise.
2020-11-24 12:20:54 +01:00
Ulrich Weigand
c4fa3728ab Fix -ffast-math flags handling inconsistencies
This patch implements the following set of changes:

1. If a component flag of -ffast-math (or -funsafe-math-optimizations)
   is explicitly set (or reset) on the command line, this should override
   any implicit change due to -f(no-)fast-math, no matter in which order
   the flags come on the command line.  This change affects all flags.

2. Any component flag modified from its default by -ffast-math should
   be reset to the default by -fno-fast-math.  This was previously
   not done for the following flags:
      -fcx-limited-range
      -fexcess-precision=

3. Once -ffinite-math-only is true, the -f(no-)signaling-nans flag has
   no meaning (if we have no NaNs at all, it does not matter whether
   there is a difference between quiet and signaling NaNs).  Therefore,
   it does not make sense for -ffast-math to imply -fno-signaling-nans.
   (This is also a documentation change.)

4. -ffast-math is documented to imply -fno-rounding-math, however the
   latter setting is the default anyway; therefore it does not make
   sense to try to modify it from its default setting.

5. The __FAST_MATH__ preprocessor macro should be defined if and only
   if all the component flags of -ffast-math are set to the value that
   is documented as the effect of -ffast-math.  The following flags
   were currently *not* so tested:
     -fcx-limited-range
     -fassociative-math
     -freciprocal-math
     -frounding-math
   (Note that we should still *test* for -fno-rounding-math here even
   though it is not set as to 4.  -ffast-math -frounding-math should
   not set the __FAST_MATH__ macro.)
   This is also a documentation change.

2020-11-24  Ulrich Weigand  <uweigand@de.ibm.com>

gcc/

	* doc/invoke.texi (-ffast-math): Remove mention of -fno-signaling-nans.
	Clarify conditions when __FAST_MATH__ preprocessor macro is defined.

	* opts.c (common_handle_option): Pass OPTS_SET to set_fast_math_flags
	and set_unsafe_math_optimizations_flags.
	(set_fast_math_flags): Add OPTS_SET argument, and use it to avoid
	setting flags already explicitly set on the command line.  In the !set
	case, also reset x_flag_cx_limited_range and x_flag_excess_precision.
	Never reset x_flag_signaling_nans or x_flag_rounding_math.
	(set_unsafe_math_optimizations_flags): Add OPTS_SET argument, and use
	it to avoid setting flags already explicitly set on the command line.
	(fast_math_flags_set_p): Also test x_flag_cx_limited_range,
	x_flag_associative_math, x_flag_reciprocal_math, and
	x_flag_rounding_math.
2020-11-24 11:50:10 +01:00
Piotr Trojanek
607695354a [Ada] Fix inconsistent parameter of SPARK_Msg_NE
gcc/ada/

	* sem_prag.adb (Analyze_Global_Item): Call SPARK_Msg_NE with the
	entity, not with its identifier.
2020-11-24 05:16:07 -05:00
Arnaud Charlet
eafca96ffb [Ada] Cannot process -S -o with GNAT LLVM
gcc/ada/

	* opt.ads (Generate_Asm): New flag.
	* osint-c.adb (Set_Output_Object_File_Name): Accept any
	extension when generating assembly.
	* adabkend.adb (Scan_Compiler_Args): Recognize -S.
2020-11-24 05:16:07 -05:00
Piotr Trojanek
bfe5f951ce [Ada] Reuse Is_Packed_Array where possible
gcc/ada/

	* exp_attr.adb, exp_ch4.adb, exp_intr.adb, sem_ch8.adb,
	sem_res.adb, sem_type.adb, sem_util.adb: Reuse Is_Packed_Array.
2020-11-24 05:16:07 -05:00
Piotr Trojanek
cb9d41eb25 [Ada] Fix minor typos in comments
gcc/ada/

	* checks.adb (Apply_Access_Check): Remove unbalanced paren.
	* exp_attr.adb (Expand_N_Attribute_Reference): Fix typo in
	comment.
2020-11-24 05:16:06 -05:00
Justin Squirek
78004c41f7 [Ada] Compiler crash on assertion pragma in ghost region
gcc/ada/

	* sem_prag.adb (Analyze_Pragma): Mark relevant pragmas as ghost
	when they are within a ghost region.
2020-11-24 05:16:06 -05:00
Piotr Trojanek
42b91d9a74 [Ada] Reuse In_Same_List where possible
gcc/ada/

	* contracts.adb, freeze.adb, sem_ch12.adb, sem_prag.adb: Reuse
	In_Same_List.
2020-11-24 05:16:05 -05:00
Piotr Trojanek
45ce230785 [Ada] Simplify Is_Loop_Pragma
gcc/ada/

	* sem_prag.adb (Is_Loop_Pragma): Avoid repeated calls to
	Original_Node; remove unnecessary IF statement.
2020-11-24 05:16:05 -05:00
Piotr Trojanek
428b1317a5 [Ada] Replace chained if-then-elsif with case stmt for attribute ids
gcc/ada/

	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Rewrite
	with a CASE statement.
2020-11-24 05:16:05 -05:00
Piotr Trojanek
3a6fa9a81b [Ada] Cleanup expansion of attribute Constrained
gcc/ada/

	* exp_attr.adb (Expand_N_Attribute_Reference): Replace calls to
	Sloc with a local constant Loc; remove call to
	Analyze_And_Resolve and return, which is exactly what happens
	anyway (and other branches in the Constrained declare block
	appear to rely on analysis, resolution and returning happening
	in all cases).
	* sem_util.adb: Remove useless parens.
2020-11-24 05:16:04 -05:00
Piotr Trojanek
1b55b8d70f [Ada] Recognize delta and extension aggregates as objects
gcc/ada/

	* sem_util.adb (Is_Object_Reference): Delta and extension
	aggregates are objects.
2020-11-24 05:16:04 -05:00
Ghjuvan Lacambre
7883a61044 [Ada] Implement No_Unrecognized_{Aspects,Pragmas} restrictions
gcc/ada/

	* libgnat/s-rident.ads (System.Rident): Register new restriction
	IDs.
	* par-ch13.adb (Get_Aspect_Specifications): Add restriction check.
	* par-prag.adb (Process_Restrictions_Or_Restriction_Warnings):
	Register No_Unrecognized_Aspects restriction.
	* sem_prag.adb (Analyze_Pragma): Add restriction check.
	* snames.ads-tmpl: Create restriction names.
2020-11-24 05:16:04 -05:00
Piotr Trojanek
218079efc5 [Ada] Accept local objects in the prefix of attribute Loop_Entry
gcc/ada/

	* sem_attr.adb (Declared_Within): Return True for objects
	declared within the attribute Loop_Entry prefix itself.
2020-11-24 05:16:04 -05:00
Yannick Moy
4f94320340 [Ada] Fix crash in GNATprove on inlined subprogram in default expression
gcc/ada/

	* sem_ch3.adb (Process_Discriminants): Correctly set right
	context for analyzing default value of discriminant.
2020-11-24 05:16:03 -05:00
Arnaud Charlet
fa65696761 [Ada] Wrong resolution of universal_access = operators
gcc/ada/

	* sem_type.adb (Add_One_Interp.Is_Universal_Operation): Account
	for universal_access = operator.
	(Disambiguate): Take into account preference on universal_access
	= operator when relevant.
	(Disambiguate.Is_User_Defined_Anonymous_Access_Equality): New.
2020-11-24 05:16:03 -05:00
Arnaud Charlet
13209acd64 [Ada] Premature finalization on build in place return and case expression
gcc/ada/

	* exp_util.adb (Is_Finalizable_Transient): Take into account return
	statements containing N_Expression_With_Actions. Also clean up a
	condition to make it more readable.
	* exp_ch6.adb: Fix typo.
2020-11-24 05:16:03 -05:00
Eric Botcazou
2afd55a57d [Ada] Small cleanup in the Ada.Text_IO hierarchy
gcc/ada/

	* libgnat/a-wtdeio.adb (TFT): Delete and adjust throughout.
	* libgnat/a-wtenau.adb (TFT): Likewise.
	* libgnat/a-wtfiio.adb (TFT): Likewise.
	* libgnat/a-wtflio.adb (TFT): Likewise.
	* libgnat/a-wtinio.adb (TFT): Likewise.
	* libgnat/a-wtinio__128.adb (TFT): Likewise.
	* libgnat/a-wtmoio.adb (TFT): Likewise.
	* libgnat/a-wtmoio__128.adb (TFT): Likewise.
	* libgnat/a-ztdeio.adb (TFT): Likewise.
	* libgnat/a-ztenau.adb (TFT): Likewise.
	* libgnat/a-ztfiio.adb (TFT): Likewise.
	* libgnat/a-ztflio.adb (TFT): Likewise.
	* libgnat/a-ztinio.adb (TFT): Likewise.
	* libgnat/a-ztinio__128.adb (TFT): Likewise.
	* libgnat/a-ztmoio.adb (TFT): Likewise.
	* libgnat/a-ztmoio__128.adb (TFT): Likewise.
2020-11-24 05:16:02 -05:00