Commit Graph

180173 Commits

Author SHA1 Message Date
David Edelsohn 4e4d0f703d testsuite: remove explicit -m32/-m64 from testcases
Two tests in the powerpc-specific testsuite explicitly add the -m32
and -m64 commandline options, which only are valid for Linux.  And the
tests check for lp64 or ilp32, which is redundant.  This patch removes
the unnecessary commandline options.

gcc/testsuite/ChangeLog:

2020-10-16  David Edelsohn  <dje.gcc@gmail.com>

	* gcc.target/powerpc/pr96139-a.c: Remove -m32.
	* gcc.target/powerpc/pr96139-b.c: Remove -m64.
2020-10-16 20:11:26 -04:00
Harald Anlauf 02629b116e PR fortran/95979 - ICE in get_kind, at fortran/simplify.c:129
Simplification of the elemental intrinsic INDEX with constant array-valued
arguments failed with an ICE or did not reduce to a constant array, depending
also on the presence of the optional KIND argument.  Add a further attempt of
simplification in the case of elemental intrinsics, and make sure the KIND
argument is not removed prematurely during simplification of INDEX.

gcc/fortran/ChangeLog:

	PR fortran/95979
	* expr.c (gfc_check_init_expr): Fix check of return code from
	gfc_intrinsic_func_interface.
	* intrinsic.c (gfc_intrinsic_func_interface): Add further attempt
	of simplification of elemental intrinsics with array arguments.
	* iresolve.c (gfc_resolve_index_func): Keep optional KIND argument
	for simplification of elemental use of INDEX.

gcc/testsuite/ChangeLog:

	PR fortran/95979
	* gfortran.dg/index_4.f90: New test.
2020-10-16 22:17:46 +02:00
Andrew MacLeod 3e8d8f3b88 [PATCH] Don't display ranges for dead ssa-names.
Dont show names that have been removed.

	* vr-values.c (dump_all_value_ranges): Only dump names which are
	still active.
2020-10-16 15:13:24 -04:00
Andrew MacLeod 58492575a1 pointer_plus [0, 0] + const folding
Return a constant range if POINTER_PLUS is [0,0] plus a const.

	* range-op.cc (pointer_plus_operator::wi_fold): Make pointer_plus
	[0, 0] + const return a [const, const] range.
2020-10-16 15:10:17 -04:00
Andrew MacLeod aabc96c919 Don't invoke range_of_expr multiple times.
Call evrp_folder::range_of_expr directly so we dont end up calling
hybrid_folder::range_of_expr and doing double lookups/comparisons.

	* gimple-ssa-evrp.c (hybrid_folder::value_on_edge): Call
	evrp_folder::value_of_expr directly.
	(hybrid_folder::value_of_stmt): Ditto.
2020-10-16 15:06:44 -04:00
Andrew MacLeod 4a135bd987 Don't assert on a negative shift.
Don't assert, simply Return false for negative shifts as we can't tell
anything about the operand.

	PR tree-optimization/97462
	gcc/
	* range-op.cc (operator_lshift::op1_range): Don't trap on negative
	shifts.
	gcc/testsuite/
	* gcc.dg/pr97462.c: New file.
2020-10-16 15:05:11 -04:00
Nathan Sidwell ccb4f20cbe c++: Fix nullptr deref [pr97460[
My changes to friend handling meant that there are now cases where a
friend doesn't get a lang-specific object.  So we need to check there
is one before looking inside it.

	PR c++/97460
	gcc/cp/
	* pt.c (push_template_decl): Check DECL_LANG_SPECIFIC in friend
	case.
	gcc/testsuite/
	* g++.dg/template/pr97460.C: New.
2020-10-16 10:22:16 -07:00
Nathan Sidwell a16da48bf1 c++: Fix null deref at EOF [PR96258]
cp_parser_declaration peeks at 1 or 2 tokens, when I changed it not to
peek past EOF, I set the second token to NULL.  But there are paths
through the function that just look at the second token.  Fixed by
setting that token to EOF rather than NULL in this case.

	PR c++/96258
	gcc/cp/
	* parser.c (cp_parser_declaration): Make token2 point to EOF if
	token1 was EOF.
	gcc/testsuite/
	* g++.dg/parse/pr96258.C: New.
2020-10-16 09:25:47 -07:00
Rasmus Villemoes a6590686f7 Inhibit support for C++0x threads on VxWorks < 6
As for condition variables, the C++0x threads support relies on
VxWorks entry points not available in VxWorks versions prior to 6.

We just expose absence of support for C++0x threads on such systems.

2020-10-15  Rasmus Villemoes  <rv@rasmusvillemoes.dk>

libgcc/
	* config/gthr-vxworks.h: Condition the ___GTHREADS_CXX0X
	section on VxWorks >= 6.
	* config/gthr-vxworks-thread.c: Condition the entire
	implementation on __GTHREAD_CXX0X.
2020-10-16 16:16:17 +00:00
Rasmus Villemoes e94d5836e5 Inhibit support for gthread condvars on VxWorks < 6
The condition variables support relies on kernel entry points
to enforce critical aspects of it's expected behavior.

Some of these entry points are not available prior to VxWorks 6,
so we just expose absence of support for condition variables on
such systems.

2020-10-15  Rasmus Villemoes  <rv@rasmusvillemoes.dk>

libgcc/
	* config/gthr-vxworks.h: Condition the __GTHREAD_HAS_COND
	section on VxWorks >= 6.
	* config/gthr-vxworks-cond.c: Condition the entire
	implementation on __GTHREAD_HAS_COND.
2020-10-16 16:14:52 +00:00
Rasmus Villemoes 0aeeda8fc2 Add missing #include <taskLib.h> in gthr-vxworks.c
This fixes an oversight and addresses a few build time warnings.

2020-10-15  Rasmus Villemoes  <rv@rasmusvillemoes.dk>

libgcc/
	* config/gthr-vxworks.c: #include <taskLib.h>.
2020-10-16 16:14:52 +00:00
Rasmus Villemoes 21295f44f3 Fix leftover _VXW_PRE_69 in gthr-vxworks.h
2020-10-15  Rasmus Villemoes  <rv@rasmusvillemoes.dk>

libgcc/
	* config/gthr-vxworks.h: Rewrite remaining occurrence
	of _VXW_PRE_69 as _VXWORKS_PRE(6,9).
2020-10-16 16:14:52 +00:00
Rasmus Villemoes 4cde835fd7 Stub out VX_ENTER_TLS_DTOR for VxWorks != 6
As of today, the __gthread_enter/leave entry points are
only meaningful on VxWorks 6. Refactor the VX_ENTER_TLS_DTOR
macros accordingly.

2020-10-15  Rasmus Villemoes  <rv@rasmusvillemoes.dk>

libgcc/
	* config/gthr-vxworks-tls.c (VX_ENTER_TLS_DTOR): Nil
	except on VxWorks 6.

Co-authored-by:  Olivier Hainque  <hainque@adacore.com>
2020-10-16 16:14:52 +00:00
Olivier Hainque 2d23fd23bb Fix the vxworks crtstuff handling of kernel/rtp variations
The ports that support RTPs achieve the kernel/rtp compilation
and link distinction through the multilib mechanism.

This patch just removes the bogus explicit extraneous
materialization of this distinction in the common VxWorks
configuration files and leaves the rtp specialization all
to the multilib machinery.

2020-10-15  Olivier Hainque  <hainque@adacore.com>

libgcc/
	* config/t-vxcrtstuff: Remove the -kernel/-rtp specialization.

gcc/
	* config/vxworks.h (VX_CRTBEGIN_SPEC): Likewise.
2020-10-16 15:33:35 +00:00
Olivier Hainque 57dd4e7bb7 Allow self configured definition of _WRS_VXWORKS_MAJOR
This conditions the use of system headers to fetch a
_WRS_VXWORKS_MAJOR macro on the non definition of that
macro. This allows builds where a specific value is
predefined, e.g. with a self spec, useful in environments
where the system headers don't actually define that macro
(e.g. vxworks 5 or 653).

In addition, _WRS_VXWORKS_MINOR is only provided by the
system headers when really meaningful, e.g. from 6.4 to 6.9.

We just pick a conservative default to 0 for all the cases
where it is not exposed by the system headers or otherwise.

2020-10-15  Olivier Hainque  <hainque@adacore.com>

gcc/
	* config/vxworks/_vxworks-versions.h: Only include
	version.h if _WRS_VXWORKS_MAJOR is not defined.
	Provide a default _WRS_VXWORKS_MINOR (0).
2020-10-16 15:33:35 +00:00
Srinath Parvathaneni 90042c43a9 arm: Fix the warning -mcpu=cortex-m55 conflicting with -march=armv8.1-m.main (pr97327).
This patch fixes (PR97327) the warning -mcpu=cortex-m55 conflicts with -march=armv8.1-m.main
for -mfloat-abi=soft by adding the isa_bit_mve_float to clearing FP bit list.

The following combination are fixed with this patch:
$ cat bug.c
int main(){
return 0;
}

$ arm-none-eabi-gcc -mcpu=cortex-m55 -mfloat-abi=soft bug.c -c
$ arm-none-eabi-gcc -mcpu=cortex-m55 -mfloat-abi=soft -march=armv8.1-m.main+mve bug.c -c

Before this patch for above combinations:
cc1: warning: switch '-mcpu=cortex-m55' conflicts with '-march=armv8.1-m.main' switch

After this patch for above combinations no warning/errors.

gcc/ChangeLog:

2020-10-16  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>

	PR target/97327
	* config/arm/arm.c (fp_bitlist): Add isa_bit_mve_float to FP bits array.

gcc/testsuite/ChangeLog:

	PR target/97327
	* gcc.target/arm/mve/intrinsics/pr97327.c: New test.
2020-10-16 14:53:40 +01:00
Richard Biener 6c6e0cafa3 Adjust BB vectorization SLP build heuristics
This changes SLP def gathering to not fail due to mismatched
def type but instead demote the def to external.  This allows the
new testcase to be vectorized in full (with GCC 10 it is not
vectorized at all and with current trunk we vectorize only the
store).  This is important since with BB vectorization being
applied to bigger pieces of code the chance that we mix
internal and external defs for an operand that should end up
treated as external (built from scalars) increases.

2020-10-16  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_get_and_check_slp_defs): For BB
	vectorization swap operands only if it helps, demote mismatches to
	external.

	* gcc.dg/vect/bb-slp-53.c: New testcase.
2020-10-16 13:44:37 +02:00
Srinath Parvathaneni 3775358811 arm: Fix wrong code generated for mve scatter store with writeback intrinsics with -O2 (PR97271).
This patch fixes (PR97271) the wrong code-gen for mve scatter store with writeback intrinsics with -O2.

$cat bug.c
void
foo (uint32x4_t * addr, const int offset, int32x4_t value)
{
  vstrwq_scatter_base_wb_s32 (addr, 8, value);
}

$ arm-none-eabi-gcc  bug.c -S -O2 -march=armv8.1-m.main+mve -mfloat-abi=hard -o -
Without this patch:
...
foo:
	vldrw.32	q3, [r0]
	vstrw.u32       q0, [q3, #8]!  ---> (A)
	vldr.64 d4, .L3
	vldr.64 d5, .L3+8
	vldrw.32	q3, [r0]
	vstrw.u32       q2, [q3, #8]!  ---> (B)
	bx      lr
...

With this patch:
...
foo:
	vldrw.32	q3, [r0]
	vstrw.u32       q0, [q3, #8]!  --> (C)
	vstrw.32	q3, [r0]
	bx      lr
...

Without this patch 2 vstrw assembly instructions (A and B) are generated for vstrwq_scatter_base_wb_s32
intrinsic where as fix generates only one vstrw assembly instruction (C).

gcc/ChangeLog:

2020-10-06  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>

	PR target/97291
	* config/arm/arm-builtins.c (arm_strsbwbs_qualifiers): Modify array.
	(arm_strsbwbu_qualifiers): Likewise.
	(arm_strsbwbs_p_qualifiers): Likewise.
	(arm_strsbwbu_p_qualifiers): Likewise.
	* config/arm/arm_mve.h (__arm_vstrdq_scatter_base_wb_s64): Modify
	function definition.
	(__arm_vstrdq_scatter_base_wb_u64): Likewise.
	(__arm_vstrdq_scatter_base_wb_p_s64): Likewise.
	(__arm_vstrdq_scatter_base_wb_p_u64): Likewise.
	(__arm_vstrwq_scatter_base_wb_p_s32): Likewise.
	(__arm_vstrwq_scatter_base_wb_p_u32): Likewise.
	(__arm_vstrwq_scatter_base_wb_s32): Likewise.
	(__arm_vstrwq_scatter_base_wb_u32): Likewise.
	(__arm_vstrwq_scatter_base_wb_f32): Likewise.
	(__arm_vstrwq_scatter_base_wb_p_f32): Likewise.
	* config/arm/arm_mve_builtins.def (vstrwq_scatter_base_wb_add_u): Remove
	expansion for the builtin.
	(vstrwq_scatter_base_wb_add_s): Likewise.
	(vstrwq_scatter_base_wb_add_f): Likewise.
	(vstrdq_scatter_base_wb_add_u): Likewise.
	(vstrdq_scatter_base_wb_add_s): Likewise.
	(vstrwq_scatter_base_wb_p_add_u): Likewise.
	(vstrwq_scatter_base_wb_p_add_s): Likewise.
	(vstrwq_scatter_base_wb_p_add_f): Likewise.
	(vstrdq_scatter_base_wb_p_add_u): Likewise.
	(vstrdq_scatter_base_wb_p_add_s): Likewise.
	* config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Remove
	expand.
	(mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise.
	(mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Rename pattern to ...
	(mve_vstrwq_scatter_base_wb_<supf>v4si): This.
	(mve_vstrwq_scatter_base_wb_p_<supf>v4si): Remove expand.
	(mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise.
	(mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Rename pattern to ...
	(mve_vstrwq_scatter_base_wb_p_<supf>v4si): This.
	(mve_vstrwq_scatter_base_wb_fv4sf): Remove expand.
	(mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise.
	(mve_vstrwq_scatter_base_wb_fv4sf_insn): Rename pattern to ...
	(mve_vstrwq_scatter_base_wb_fv4sf): This.
	(mve_vstrwq_scatter_base_wb_p_fv4sf): Remove expand.
	(mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise.
	(mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Rename pattern to ...
	(mve_vstrwq_scatter_base_wb_p_fv4sf): This.
	(mve_vstrdq_scatter_base_wb_<supf>v2di): Remove expand.
	(mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise.
	(mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Rename pattern to ...
	(mve_vstrdq_scatter_base_wb_<supf>v2di): This.
	(mve_vstrdq_scatter_base_wb_p_<supf>v2di): Remove expand.
	(mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise.
	(mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Rename pattern to ...
	(mve_vstrdq_scatter_base_wb_p_<supf>v2di): This.

gcc/testsuite/ChangeLog:

	PR target/97291
	* gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_wb_p_s64.c: Modify.
	* gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_wb_p_u64.c:
	Likewise.
	* gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_wb_s64.c: Likewise.
	* gcc.target/arm/mve/intrinsics/vstrdq_scatter_base_wb_u64.c: Likewise.
	* gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_f32.c: Likewise.
	* gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_p_f32.c:
	Likewise.
	* gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_p_s32.c:
	Likewise.
	* gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_p_u32.c:
	Likewise.
	* gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_s32.c: Likewise.
	* gcc.target/arm/mve/intrinsics/vstrwq_scatter_base_wb_u32.c: Likewise.
2020-10-16 11:40:31 +01:00
Jan Hubicka e27c8cc931 Fix modref-4.c testcase
PR testsuite/97426
	* gcc.dg/tree-ssa/modref-4.c: Fix return test.
2020-10-16 12:24:16 +02:00
Martin Liska 9791b4bb4b libsanitizer: update locale patches
libsanitizer/ChangeLog:

	* LOCAL_PATCHES: Update revision.
2020-10-16 10:58:03 +02:00
Martin Liska b040b1ce1f Reapply all revisions mentioned in LOCAL_PATCHES.
(cherry picked from commit 21bb1625bd)
2020-10-16 10:57:16 +02:00
Martin Liska 0b997f6e07 libsanitizer: merge from master 2020-10-16 10:57:03 +02:00
Kito Cheng 4a70aa7a62 RISC-V: Handle implied extension in multilib-generator
- -march has handle implied extension for a while, so I think
   multilib-generator should handle this well too.

 - Currently only add rule for D imply F.

gcc/ChangeLog:

	* config/riscv/multilib-generator (IMPLIED_EXT): New.
	(arch_canonicalize): Update comment and handle implied extensions.
2020-10-16 16:52:13 +08:00
Richard Biener 540d5f4f02 Refactor vect_get_and_check_slp_defs some more
This refactors vect_get_and_check_slp_defs so that the ops and def_stmts
arrays are filled for all stmts and operands even when we signal failure.
This allows later changes for BB vectorization SLP discovery heuristics.

2020-10-16  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_get_and_check_slp_defs): First analyze
	all operands and fill in the def_stmts and ops entries.
	(vect_def_types_match): New helper.
2020-10-16 10:24:17 +02:00
Martin Liska a866239027 IPA: compare VRP types.
gcc/ChangeLog:

	PR ipa/97404
	* ipa-prop.c (struct ipa_vr_ggc_hash_traits):
	Compare types of VRP as we can merge ranges of different types.

gcc/testsuite/ChangeLog:

	PR ipa/97404
	* gcc.c-torture/execute/pr97404.c: New test.
2020-10-16 09:42:40 +02:00
Piotr Trojanek 23a9215f3e [Ada] Assorted style cleanups
gcc/ada/

	* checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch6.adb,
	freeze.adb, sem_aggr.adb, sem_attr.adb, sem_ch13.adb,
	sem_ch13.ads, sem_ch6.adb, sem_eval.adb, sem_util.adb: Fix style
	and typos.
2020-10-16 03:34:55 -04:00
Arnaud Charlet 4b97cbeed9 [Ada] Preelaborate rules not fully enforced
gcc/ada/

	* sem_cat.adb (Is_Primary): Handle N_Range properly.
2020-10-16 03:34:54 -04:00
Ghjuvan Lacambre 524301457d [Ada] Implement expansion of CUDA_Execute pragma
gcc/ada/

	* elists.ads (New_Elmt_List): New functions.
	* elists.adb (New_Elmt_List): New functions.
	* exp_prag.adb: Add dependency on Elists.
	(Expand_Pragma_CUDA_Execute): New function.
	(Expand_N_Pragma): Add call to Expand_Pragma_CUDA_Execute.
	* rtsfind.ads: Add CUDA.Internal, CUDA.Runtime, System.C
	packages and RE_Push_Call_Configuration,
	RE_Pop_Call_Configuration, RE_Launch_Kernel, RO_IC_Unsigned,
	RO_IC_Unsigned_Long_Long entities.
	* rtsfind.adb: Extend Interfaces_Descendant to include
	Interfaces_C.
2020-10-16 03:34:54 -04:00
Bob Duff 54690b9871 [Ada] Ada2020: parsing of qualified exprs with new agg syntax
gcc/ada/

	* par-ch4.adb (P_Name): Allow Tok_Left_Bracket in two places to
	call P_Qualified_Expression. We don't need to modify other
	places that call P_Qualified_Expression, because a
	qualified_expression is a name in Ada 2012 and higher, so P_Name
	is the right place.  The parser already parses aggregates with
	brackets; we just need to allow that in qualified expressions.
2020-10-16 03:34:53 -04:00
Javier Miranda 2357b2948d [Ada] Crash in generic renaming declaration of child unit
gcc/ada/

	* sem_ch12.adb (Check_Generic_Child_Unit): When the child unit
	is a renaming of a generic child unit then traverse the scope
	containing the renaming declaration to locate the instance of
	its parent.  Otherwise the parent is not installed and the
	frontend cannot process the instantiation.
2020-10-16 03:34:52 -04:00
Bob Duff 8dfdfd4048 [Ada] Remove non-ASCII character
gcc/ada/

	* libgnat/a-numeri.ads: Remove the greek letter.
2020-10-16 03:34:52 -04:00
Ed Schonberg 853f7f8ba8 [Ada] Attribute Img on derived types
gcc/ada/

	* exp_imgv.adb (Expand_Image_Attribute): Refine previous patch
	to use root type (and not base type) on enumeration types.
2020-10-16 03:34:43 -04:00
Ed Schonberg 5742eed7a6 [Ada] Attribute Img on derived types
gcc/ada/

	* exp_imgv.adb (Expand_Image_Attribute): Use the base type
	instead of the root type when type of object is private. Remove
	Ada_2020 guard, because it has been checked during prior
	analysis. Use Underlying_Type in all cases, as it is a no-op on
	types that are not private.
2020-10-16 03:33:21 -04:00
Arnaud Charlet d22f3eabf1 [Ada] Ada2020: AI12-0129 Make protected objects more protecting
gcc/ada/

	* aspects.ads, snames.ads-tmpl: Add support for
	Exclusive_Functions aspect.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Ditto.
	* exp_ch9.adb (Build_Protected_Subprogram_Body): Take aspect
	Exclusive_Functions into account.
2020-10-16 03:31:36 -04:00
Arnaud Charlet a900519495 [Ada] Clean up in system.ads dependencies during compiler build
gcc/ada/

	* gcc-interface/Make-lang.in: Update dependencies on system.ads,
	add gnatbind switch -t to avoid timestamp inconsistencies during
	build.
	* libgnat/system.ads: Move...
	* gcc-interface/system.ads: ... here.
2020-10-16 03:31:35 -04:00
Gary Dismukes f6fd9533f5 [Ada] Legal actual type with inherited discriminants rejected in instantiation
gcc/ada/

	* sem_eval.adb (Subtypes_Statically_Match): Retrieve
	discriminant constraints from the two types via new function
	Original_Discriminant_Constraint rather than
	Discriminant_Constraint.
	(Original_Discriminant_Constraint): New function to locate the
	nearest explicit discriminant constraint associated with a type
	that may possibly have inherited a constraint from an ancestor
	type.
2020-10-16 03:31:34 -04:00
Bob Duff 7e1ccdbb51 [Ada] Remove obsolete workaround regarding array returns
gcc/ada/

	* exp_ch6.adb (Expand_Simple_Function_Return): Remove obsolete
	comment and code.
2020-10-16 03:31:33 -04:00
Arnaud Charlet cfe989ca49 [Ada] Convert from UTF_16 to UTF_8 fails for large values
gcc/ada/

	PR ada/95953
	* libgnat/a-suenco.adb (Convert): Fix handling of third UTF-8
	byte.
2020-10-16 03:31:32 -04:00
Steve Baird 56bedb147e [Ada] Avoid premature finalization of a function result
gcc/ada/

	* exp_util.adb (Is_Related_To_Func_Return): Cope with the case
	where the FE introduces a type conversion.
2020-10-16 03:31:31 -04:00
Chris Martin d931c94ea2 [Ada] Constants no longer synchronised if they are access-to-variable
gcc/ada/

	* sem_util.ads, sem_util.adb (Is_Access_Variable): New function.
	(Is_Synchronized_Object): Call new function when determining if
	a constant can be regarded as synchronized.
2020-10-16 03:31:30 -04:00
Arnaud Charlet 7e8e3cb479 [Ada] Finalization of uninitialized object with build in place call
gcc/ada/

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
	Call Set_BIP_Initialization_Call systematically.
	* exp_ch7.adb (Process_Transient_In_Scope): Take
	BIP_Initialization_Call into account to decide where to insert
	the Hook.
2020-10-16 03:31:29 -04:00
Piotr Trojanek b87042ccc5 [Ada] Detect qualified type names for AI12-0027
gcc/ada/

	* sem_util.adb (Is_View_Conversion): Detect qualified types.
	* sem_util.ads (Is_Actual_In_Out_Parameter): Fix style in
	comment.
2020-10-16 03:31:28 -04:00
Arnaud Charlet 3d5f1f27a7 [Ada] Relax too strong assertions
gcc/ada/

	* scil_ll.adb, sem_scil.adb: Update assertions.
2020-10-16 03:31:27 -04:00
Ed Schonberg 6d0dedfa0b [Ada] Improvements to implementation of Ada_2020 attribute Reduce
gcc/ada/

	* sem_attr.adb (Min_Max): Handle the case where attribute
	name (qualified by required type) appears as the reducer of a
	'Reduce attribute reference.
	(Resolve_Attribute) <Reduce>: Handle properly the presence of a
	procedure or an attribute reference Min/Max as a reducer.
	* exp_attr.adb (Expand_Attribute_Reference) <Reduce>: New
	subprogram Build_Stat, to construct the combining statement
	which appears in the generated loop for Reduce, and which is
	either a function call when the reducer is a function or an
	attribute, or a procedure call when reducer is an appropriate
	procedure.  BuilD_Stat is used both when the prefix of 'Reduce
	is a value sequence and when it is an object
2020-10-16 03:31:26 -04:00
Arnaud Charlet 263bb39332 [Ada] Reduce use of primary stack on string concatenation
gcc/ada/

	* exp_ch4.adb (Expand_Concatenate): Allocate result of string
	concatenation on secondary stack when relevant.
2020-10-16 03:31:26 -04:00
Ed Schonberg a121d54f7b [Ada] Spurious visibility error on Declare_Expression with renames
gcc/ada/

	* sem_res.adb (Resolve_Declare_Expression): Retrieve the created
	block entity that is the scope of the local declarations, from
	either a local object declaration or an object renaming
	declaration. The block entity does not have an explicit
	declaration, but appears as the scope of all locally declared
	objects.
2020-10-16 03:31:25 -04:00
Eric Botcazou f54147fcfd [Ada] Use new Max_Integer_Size attribute in system.ads files
gcc/ada/

	* libgnat/system-aix.ads: Likewise.
	* libgnat/system-darwin-arm.ads: Likewise.
	* libgnat/system-darwin-ppc.ads: Likewise.
	* libgnat/system-darwin-x86.ads: Likewise.
	* libgnat/system-djgpp.ads: Likewise.
	* libgnat/system-dragonfly-x86_64.ads: Likewise.
	* libgnat/system-freebsd.ads: Likewise.
	* libgnat/system-hpux-ia64.ads: Likewise.
	* libgnat/system-hpux.ads: Likewise.
	* libgnat/system-linux-alpha.ads: Likewise.
	* libgnat/system-linux-arm.ads: Likewise.
	* libgnat/system-linux-hppa.ads: Likewise.
	* libgnat/system-linux-ia64.ads: Likewise.
	* libgnat/system-linux-m68k.ads: Likewise.
	* libgnat/system-linux-mips.ads: Likewise.
	* libgnat/system-linux-ppc.ads: Likewise.
	* libgnat/system-linux-riscv.ads: Likewise.
	* libgnat/system-linux-s390.ads: Likewise.
	* libgnat/system-linux-sh4.ads: Likewise.
	* libgnat/system-linux-sparc.ads: Likewise.
	* libgnat/system-linux-x86.ads: Likewise.
	* libgnat/system-lynxos178-ppc.ads: Likewise.
	* libgnat/system-lynxos178-x86.ads: Likewise.
	* libgnat/system-mingw.ads: Likewise.
	* libgnat/system-qnx-aarch64.ads: Likewise.
	* libgnat/system-rtems.ads: Likewise.
	* libgnat/system-solaris-sparc.ads: Likewise.
	* libgnat/system-solaris-x86.ads: Likewise.
	* libgnat/system-vxworks-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-arm-rtp.ads: Likewise.
	* libgnat/system-vxworks-arm.ads: Likewise.
	* libgnat/system-vxworks-e500-kernel.ads: Likewise.
	* libgnat/system-vxworks-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-e500-rtp.ads: Likewise.
	* libgnat/system-vxworks-e500-vthread.ads: Likewise.
	* libgnat/system-vxworks-ppc-kernel.ads: Likewise.
	* libgnat/system-vxworks-ppc-ravenscar.ads: Likewise.
	* libgnat/system-vxworks-ppc-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-ppc-rtp.ads: Likewise.
	* libgnat/system-vxworks-ppc-vthread.ads: Likewise.
	* libgnat/system-vxworks-ppc.ads: Likewise.
	* libgnat/system-vxworks-x86-kernel.ads: Likewise.
	* libgnat/system-vxworks-x86-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks-x86-rtp.ads: Likewise.
	* libgnat/system-vxworks-x86-vthread.ads: Likewise.
	* libgnat/system-vxworks-x86.ads: Likewise.
	* libgnat/system-vxworks7-aarch64-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-aarch64.ads: Likewise.
	* libgnat/system-vxworks7-arm-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-arm.ads: Likewise.
	* libgnat/system-vxworks7-e500-kernel.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-e500-rtp.ads: Likewise.
	* libgnat/system-vxworks7-ppc-kernel.ads: Likewise.
	* libgnat/system-vxworks7-ppc-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-ppc-rtp.ads: Likewise.
	* libgnat/system-vxworks7-ppc64-kernel.ads: Likewise.
	* libgnat/system-vxworks7-ppc64-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-x86-kernel.ads: Likewise.
	* libgnat/system-vxworks7-x86-rtp-smp.ads: Likewise.
	* libgnat/system-vxworks7-x86-rtp.ads: Likewise.
	* libgnat/system-vxworks7-x86_64-kernel.ads: Likewise.
	* libgnat/system-vxworks7-x86_64-rtp-smp.ads: Likewise.
2020-10-16 03:31:24 -04:00
Arnaud Charlet 2341c8a96d [Ada] Remove support for -gnatP and pragma Polling
gcc/ada/

	* Makefile.rtl, gnat1drv.adb, expander.adb
	doc/gnat_rm/implementation_defined_pragmas.rst,
	doc/gnat_ugn/building_executable_programs_with_gnat.rst,
	doc/gnat_ugn/the_gnat_compilation_model.rst, exp_ch5.ads,
	exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
	exp_util.ads, libgnarl/s-osinte__aix.adb,
	libgnarl/s-osinte__android.adb, libgnarl/s-osinte__darwin.adb,
	libgnarl/s-osinte__gnu.adb, libgnarl/s-osinte__hpux-dce.adb,
	libgnarl/s-osinte__lynxos178.adb, libgnarl/s-osinte__posix.adb,
	libgnarl/s-osinte__qnx.adb, libgnarl/s-osinte__rtems.adb,
	libgnarl/s-osinte__solaris.adb, libgnarl/s-osinte__vxworks.adb,
	libgnarl/s-osinte__x32.adb, libgnarl/s-solita.adb,
	libgnarl/s-taasde.adb, libgnarl/s-taprob.adb,
	libgnarl/s-taprop__dummy.adb, libgnarl/s-taprop__hpux-dce.adb,
	libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb,
	libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__qnx.adb,
	libgnarl/s-taprop__solaris.adb, libgnarl/s-taprop__vxworks.adb,
	libgnarl/s-tarest.adb, libgnarl/s-tasini.adb,
	libgnarl/s-taskin.adb, libgnarl/s-taspri__dummy.ads,
	libgnarl/s-taspri__hpux-dce.ads, libgnarl/s-taspri__lynxos.ads,
	libgnarl/s-taspri__mingw.ads,
	libgnarl/s-taspri__posix-noaltstack.ads,
	libgnarl/s-taspri__posix.ads, libgnarl/s-taspri__solaris.ads,
	libgnarl/s-taspri__vxworks.ads, libgnarl/s-tassta.adb,
	libgnarl/s-tasuti.adb, libgnarl/s-tposen.adb,
	libgnat/a-except.adb, libgnat/a-except.ads,
	libgnat/s-dwalin.adb, libgnat/s-dwalin.ads,
	libgnat/s-mastop.ads, libgnat/s-soflin.adb,
	libgnat/s-stalib.adb, libgnat/s-stalib.ads,
	libgnat/s-stchop.adb, libgnat/s-stchop.ads,
	libgnat/s-stchop__limit.ads, libgnat/s-traceb.ads,
	libgnat/s-traent.adb, libgnat/s-traent.ads,
	libgnat/s-trasym.adb, libgnat/s-trasym.ads,
	libgnat/s-trasym__dwarf.adb, opt.adb, opt.ads, par-prag.adb,
	sem_prag.adb, snames.ads-tmpl, switch-c.adb, targparm.adb,
	targparm.ads, usage.adb: Remove support for -gnatP and pragma
	Polling.
	* gnat_ugn.texi: Regenerate.
	* libgnat/a-excpol.adb, libgnat/a-excpol__abort.adb: Removed.
2020-10-16 03:31:23 -04:00
Piotr Trojanek 5540812a4d [Ada] Unique itypes names for unconstrained array object declaration
gcc/ada/

	* sem_ch3.adb (Array_Type_Declaration): Create itype with unique
	name.
2020-10-16 03:31:21 -04:00
Piotr Trojanek 2c06148312 [Ada] Cleanup related to itypes for unconstrained object declaration
gcc/ada/

	* sem_ch3.adb (Analyze_Object_Declaration): Limit scope of a
	local object by hiding it from local subprograms; simplify
	nested if-then-if-then condition for an Ada 83 restriction.
	(Array_Type_Declaration): Confirm with assertion when the else
	branch is executed.
	(Find_Type_Of_Object): Simplify membership test with a subtype
	range.
2020-10-16 03:31:20 -04:00