Commit Graph

177536 Commits

Author SHA1 Message Date
Michael Meissner 2753f2f8b4 PowerPC: Add future hwcap2 bits
This patch adds support for the two new HWCAP2 fields used by the
__builtin_cpu_supports function.  It adds support in the target_clones
attribute for -mcpu=future.

The two new __builtin_cpu_supports tests are:
	__builtin_cpu_supports ("isa_3_1")
	__builtin_cpu_supports ("mma")

The bits used are the bits that the Linux kernel engineers will be using for
these new features.

testsuite/
2020-06-05  Michael Meissner  <meissner@linux.ibm.com>

	* gcc.target/powerpc/clone3.c: New test for using 'future' with
	the target_clones attribute.
2020-06-09 15:32:52 -05:00
Michael Meissner 7ba33e898f PowerPC: Add future hwcap2 bits
This patch adds support for the two new HWCAP2 fields used by the
__builtin_cpu_supports function.  It adds support in the target_clones
attribute for -mcpu=future.

The two new __builtin_cpu_supports tests are:
	__builtin_cpu_supports ("isa_3_1")
	__builtin_cpu_supports ("mma")

The bits used are the bits that the Linux kernel engineers will be using for
these new features.

gcc/
2020-06-05  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate
	'future' PowerPC platform.
	(PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1.
	(PPC_FEATURE2_MMA): New HWCAP2 bit for MMA.
	* config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and
	MMA HWCAP2 bits.
	* config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
	(rs6000_clone_map): Add 'future' system target_clones support.
2020-06-09 15:32:02 -05:00
Michael Meissner 243e5bbfef PowerPC: Add pcrel/prefixed target supports.
2020-06-09  Michael Meissner  <meissner@linux.ibm.com>

	* lib/target-supports.exp (check_effective_target_powerpc_pcrel):
	New.
	(check_effective_target_powerpc_prefixed_addr): New.
2020-06-09 15:17:12 -05:00
Michael Kuhn 776256757b When specifying a non-system prefix with --with-zstd, the build fails because the header and library cannot be found (see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95005).
The attached patch fixes the problem and is what we use in Spack to
make GCC build with zstd support.

gcc/
	* Makefile.in (ZSTD_INC): Define.
	(ZSTD_LIB): Include ZSTD_LDFLAGS.
	(CFLAGS-lto-compress.o): Add ZSTD_INC.
	* configure.ac (ZSTD_CPPFLAGS, ZSTD_LDFLAGS): New variables for
	AC_SUBST.
	* configure: Rebuilt.
2020-06-09 14:07:46 -06:00
Martin Liska 84fa38d20a
asan: fix wrong options for a test-case.
gcc/testsuite/ChangeLog:

	* c-c++-common/asan/inline-kernel.c: Add missing
	-fno-sanitize-address option.
2020-06-09 22:05:17 +02:00
Iain Sandoe 006f28aefe coroutines: Ensure distinct DTOR trees [PR95137].
Part of the PR notes that there are UBSAN fails for the coroutines
test suite.  These are primarily related to the use of the same DTOR
tree in the two edges from the await block.  Fixed by building a new
tree for each.

gcc/cp/ChangeLog:

	PR c++/95137
	* coroutines.cc (expand_one_await_expression): Build separate
	DTOR trees for the awaitable object on the destroy and resume
	paths.
2020-06-09 20:52:34 +01:00
Jonathan Wakely 62963c60fc gcc-changelog: Use non-zero exit status on error
Also add comment explaining what the script does.

contrib/ChangeLog:

	* gcc-changelog/git_email.py: Set exit status on error.
2020-06-09 20:40:44 +01:00
Jason Merrill 77103685ff tree-inline: Fix VLA handling [PR95552]
The problem in this testcase comes from cloning the constructor into
complete and base variants.  When we clone the body the first time,
walk_tree_1 calls copy_tree_body_r on the type of the artificial TYPE_DECL
we made for the VLA type without calling it on the decl itself, so we
overwrite the type of the TYPE_DECL without copying the decl first.

This has been broken since we started inserting a TYPE_DECL for anonymous
VLAs in r7-457.

This patch fixes walk_tree_1 to call the function on the TYPE_DECL, as we do
for other decls of a DECL_EXPR.

gcc/ChangeLog:

	PR c++/95552
	* tree.c (walk_tree_1): Call func on the TYPE_DECL of a DECL_EXPR.

gcc/testsuite/ChangeLog:

	PR c++/95552
	* g++.dg/ext/vla23.C: New test.
2020-06-09 15:31:51 -04:00
Marco Elver ab2789ec50
tsan: Add optional support for distinguishing volatiles
Add support to optionally emit different instrumentation for accesses to
volatile variables. While the default TSAN runtime likely will never
require this feature, other runtimes for different environments that
have subtly different memory models or assumptions may require
distinguishing volatiles.

One such environment are OS kernels, where volatile is still used in
various places, and often declare volatile to be appropriate even in
multi-threaded contexts. One such example is the Linux kernel, which
implements various synchronization primitives using volatile
(READ_ONCE(), WRITE_ONCE()).

Here the Kernel Concurrency Sanitizer (KCSAN), is a runtime that uses
TSAN instrumentation but otherwise implements a very different approach
to race detection from TSAN:

	https://github.com/google/ktsan/wiki/KCSAN

Due to recent changes in requirements by the Linux kernel, KCSAN
requires that the compiler supports tsan-distinguish-volatile (among
several new requirements):

	https://lore.kernel.org/lkml/20200521142047.169334-7-elver@google.com/

gcc/
	* params.opt: Define --param=tsan-distinguish-volatile=[0,1].
	* sanitizer.def (BUILT_IN_TSAN_VOLATILE_READ1): Define new
	builtin for volatile instrumentation of reads/writes.
	(BUILT_IN_TSAN_VOLATILE_READ2): Likewise.
	(BUILT_IN_TSAN_VOLATILE_READ4): Likewise.
	(BUILT_IN_TSAN_VOLATILE_READ8): Likewise.
	(BUILT_IN_TSAN_VOLATILE_READ16): Likewise.
	(BUILT_IN_TSAN_VOLATILE_WRITE1): Likewise.
	(BUILT_IN_TSAN_VOLATILE_WRITE2): Likewise.
	(BUILT_IN_TSAN_VOLATILE_WRITE4): Likewise.
	(BUILT_IN_TSAN_VOLATILE_WRITE8): Likewise.
	(BUILT_IN_TSAN_VOLATILE_WRITE16): Likewise.
	* tsan.c (get_memory_access_decl): Argument if access is
	volatile. If param tsan-distinguish-volatile is non-zero, and
	access if volatile, return volatile instrumentation decl.
	(instrument_expr): Check if access is volatile.

gcc/testsuite/
	* c-c++-common/tsan/volatile.c: New test.
2020-06-09 21:22:24 +02:00
Michael Meissner 6e52b2297e PowerPC: PowerPC tests: Add prefixed/pcrel tests.
testsuite/
2020-06-09  Michael Meissner  <meissner@linux.ibm.com>

	* lib/target-supports.exp (check_effective_target_powerpc_pcrel):
	New.
	(check_effective_target_powerpc_prefixed_addr): New.
2020-06-09 14:48:24 -04:00
Richard Biener ec34277611 Remove dead code
This removes dead code left over from the reduction vectorization
refactoring last year.

2020-06-09  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vectorizable_induction): Remove dead code.
2020-06-09 19:50:27 +02:00
Iain Buclaw 9886612009 d: Merge upstream dmd 13d67c575.
Reviewed-on: https://github.com/dlang/dmd/pull/11224

gcc/d/ChangeLog:

	* dmd/MERGE: Merge upstream dmd 13d67c575.
	* d-builtins.cc (build_frontend_type): Update call to
	TypeVector::create.
	* d-frontend.cc (Global::_init): Move setting of errorLimit to ...
	* d-lang.cc (d_init_options): ... here.  Update for new field
	location of errorLimit.
	(d_post_options): Likewise.
	* d-port.cc (Port::readwordLE): Update signature.
	(Port::readwordBE): Likewise.
	(Port::readlongLE): Likewise.
	(Port::readlongBE): Likewise.
	* decl.cc (get_symbol_decl): Update for new field types.
2020-06-09 19:00:35 +02:00
Jason Merrill ef41587df9 c++: Tweak predeclare_vla.
We only need to predeclare a VLA type if it's wrapped in a pointer type;
otherwise gimplify_type_sizes will handle it.

gcc/cp/ChangeLog:

	PR c++/95552
	* cp-gimplify.c (predeclare_vla): Only predeclare a VLA if it's
	wrapped in a pointer type.
2020-06-09 12:05:50 -04:00
Tobias Burnus bf4ab2689b openmp: ensure variables in offload table are streamed out (PRs 94848 + 95551)
gcc/ChangeLog:

	* omp-offload.c (add_decls_addresses_to_decl_constructor,
	omp_finish_file): With in_lto_p, stream out all offload-table
	items even if the symtab_node does not exist.
2020-06-09 16:31:22 +02:00
Richard Biener ac22e651ef Remove dead code
This removes dead code that was left over from the reduction
vectorization refactoring last year.

2020-06-09  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vect_transform_stmt): Remove dead code.
2020-06-09 16:02:09 +02:00
Patrick Palka e12516e140 Fix some ChangeLog entries 2020-06-09 09:57:25 -04:00
Martin Liska f6ee4c4fe7
gcov-dump: fix --help spacing
Pushed to master.

gcc/ChangeLog:

	* gcov-dump.c (print_usage): Fix spacing for --raw option
	in --help.
2020-06-09 14:39:26 +02:00
Martin Liska 4089df8ef4
sanitizer: do not inline no-sanitize into sanitizer fn
gcc/ChangeLog:

	* cif-code.def (ATTRIBUTE_MISMATCH): Rename to...
	(SANITIZE_ATTRIBUTE_MISMATCH): ...this.
	* ipa-inline.c (sanitize_attrs_match_for_inline_p):
	Handle all sanitizer options.
	(can_inline_edge_p): Use renamed CIF_* enum value.

gcc/testsuite/ChangeLog:

	* c-c++-common/asan/inline.c: New test.
	* c-c++-common/asan/inline-kernel.c: New test.
	* c-c++-common/tsan/inline.c: New test.
	* c-c++-common/ubsan/inline.c: New test.
2020-06-09 14:35:43 +02:00
Joe Ramsay bb3ab62a8b AArch64+SVE: Add support for unpacked unary ops and BIC
MD patterns extended for unary ops ABS, CLS, CLZ, CNT, NEG and NOT
to support unpacked vectors. Also extended patterns for BIC to
support unpacked vectors where input elements are of the same width.

gcc/ChangeLog:

2020-06-09  Joe Ramsay  <joe.ramsay@arm.com>

	* config/aarch64/aarch64-sve.md (<optab><mode>2): Add support for
	unpacked vectors.
	(@aarch64_pred_<optab><mode>): Add support for unpacked vectors.
	(@aarch64_bic<mode>): Enable unpacked BIC.
	(*bic<mode>3): Enable unpacked BIC.

gcc/testsuite/ChangeLog:

2020-06-09  Joe Ramsay  <joe.ramsay@arm.com>

	* gcc.target/aarch64/sve/logical_unpacked_abs.c: New test.
	* gcc.target/aarch64/sve/logical_unpacked_bic_1.c: New test.
	* gcc.target/aarch64/sve/logical_unpacked_bic_2.c: New test.
	* gcc.target/aarch64/sve/logical_unpacked_bic_3.c: New test.
	* gcc.target/aarch64/sve/logical_unpacked_bic_4.c: New test.
	* gcc.target/aarch64/sve/logical_unpacked_neg.c: New test.
	* gcc.target/aarch64/sve/logical_unpacked_not.c: New test.
2020-06-09 12:23:56 +01:00
Martin Liska 452283bd06
gcov: improve --coverage small example
Pushed to master.

gcc/ChangeLog:

	PR gcov-profile/95365
	* doc/gcov.texi: Compile and link one example in 2 steps.
2020-06-09 13:16:09 +02:00
Martin Liska 862b9b225f
libgcov: fix TOPN type casting
The patch fixes tree-prof.exp tests on solaris11 and i686-linux-gnu,
problem was that sizeof of a pointer is different from sizeof gcov_type.

I'm going to install it if there are no objections.
Thanks,
Martin

libgcc/ChangeLog:

	PR gcov-profile/95494
	* libgcov-driver.c (write_top_counters): Cast first to
	intptr_t as sizeof(*) != sizeof(gcov_type).
	* libgcov.h (gcov_counter_set_if_null): Remove.
	(gcov_topn_add_value): Cast first to intptr_t and update
	linked list directly.
2020-06-09 13:07:41 +02:00
Javier Miranda 009668e31f [Ada] Missing check on private overriding of dispatching primitive
2020-06-09  Javier Miranda  <miranda@adacore.com>

gcc/ada/

	* sem_ch6.adb (New_Overloaded_Entity): Add missing call to check
	subtype conformance of overriding dispatching primitive.
	* sem_eval.adb (Subtypes_Statically_Match): Handle derivations
	of private subtypes.
	* libgnat/g-exptty.adb, libgnat/g-exptty.ads
	(Set_Up_Communications): Fix the profile since null-exclusion is
	missing in the access type formals.
	* sem_disp.ads (Check_Operation_From_Private_View): Adding
	documentation.
2020-06-09 04:09:07 -04:00
Eric Botcazou a2048d055b [Ada] Small enhancement in XEinfo utility
2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* einfo.ads (XEINFO section): Update format description.
	(Is_Subprogram_Or_Entry): Move pragma to regular section.
	(Is_Subprogram_Or_Generic_Subprogram): Likewise.
	* xeinfo.adb (Get_B4): Rename to...
	(Get_B0): ...this.
	(Translate_Expr): New procedure extracted from...
	(XEinfo): ...here.  Try to apply Get_B0 first and then
	call Translate_Expr to translate supported constructs.
2020-06-09 04:09:07 -04:00
Eric Botcazou fd66407104 [Ada] Implement AI12-0028: Import of variadic C functions
2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* exp_ch6.adb (Freeze_Subprogram): Deal with convention C_Family.
	* freeze.adb (Freeze_Profile): Likewise.  Add missing guard.
	* sem_mech.adb (Set_Mechanisms): Likewise.
	* lib-xref.adb (Output_Import_Export_Info): Ditto for C_Variadic.
	* repinfo.adb (List_Subprogram_Info): Likewise.
	* sem_prag.adb (Set_Convention_From_Pragma): Move main checks for
	Stdcall to...
	(Process_Convention): ...here.  Add checks for C_Variadic.
	* snames.ads-tmpl: Add Name_C_Variadic_0 .. Name_C_Variadic_16.
	Use consistent format for subtype declarations.
	(Convention_Id): Add Convention_C_Variadic_0 .. C_Variadic_16
	and move Convention_CPP up.
	(Convention_C_Family): New subtype of Convention_Id.
	(Convention_C_Variadic): Likewise.
	(Foreign_Convention): Use explicit upper bound.
	Add pragma Inline for Is_Configuration_Pragma_Name,
	Is_Function_Attribute_Name, Is_Internal_Attribute_Name
	and Is_Procedure_Attribute_Name.
	* snames.adb-tmpl (Get_Convention_Id): Deal with Name_Variadic_n.
	(Get_Convention_Name): Deal with Convention_Variadic_n.
	* types.h (Convention_Id): New typedef.
	* xsnamest.adb (Name2): New variable.
	(Is_Conv): New pattern.
	(Get_Subt1): Likewise.
	(Get_Subt2): Likewise.
	Output subtypes of Convention_Id into the C header file.
2020-06-09 04:09:06 -04:00
Arnaud Charlet 2d6f6e08e6 [Ada] Code clean ups and comments updates
2020-06-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch9.adb,
	exp_disp.adb, exp_util.adb: Add comments related to errors that
	should be moved to semantic analysis. Also replace "?" with "??"
	in warning messages.
2020-06-09 04:09:06 -04:00
Arnaud Charlet 3e6711046a [Ada] Improve handling of null unbounded strings
2020-06-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* libgnat/a-strunb__shared.ads, libgnat/a-strunb__shared.adb
	(Reference, Unreference): No-op for Empty_Shared_String.
	Remove unneeded calls to Reference.
2020-06-09 04:09:06 -04:00
Arnaud Charlet 1a7748ad4c [Ada] Remove kludge for AI05-0087
2020-06-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* exp_ch5.adb (Expand_N_Assignment): Remove kludge for
	AI05-0087.
	* sem_ch12.adb (Validate_Derived_Type_Instance): Implement
	AI05-0087 retroactively since it's a binding interpretation.
2020-06-09 04:09:06 -04:00
Eric Botcazou 148c86d1ab [Ada] Small cleanup in Einfo unit
2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* einfo.ads (Has_Foreign_Convention): Fix description.
	(Component_Alignment): Move around.
	(Has_DIC): Likewise.
	(Has_Interrupt_Handler): Likewise.
	(Has_Invariants): Likewise.
	(Is_Atomic_Or_VFA): Likewise.
	(Next_Index): Likewise.
	(Scope_Depth): Likewise.
	(Init_Component_Size): Likewise.
	(Init_Component_Location): Likewise.
	(Init_Size): Likewise.
	(Inline Pragmas for functions): Add Corresponding_Function,
	Corresponding_Procedure, Entry_Max_Queue_Lengths_Array,
	Finalize_Storage_Only, Has_DIC, Has_Invariants,
	Initialization_Statements, Is_Anonymous_Access_Type,
	Next_Stored_Discriminant, Address_Clause, Alignment_Clause,
	Float_Rep, Has_Foreign_Convention, Has_Non_Limited_View,
	Is_Constant_Object, Is_Discriminal, Is_Finalizer, Is_Null_State,
	Is_Prival, Is_Protected_Component, Is_Protected_Record_Type,
	Is_Subprogram_Or_Entry, Is_Task_Record_Type, Size_Clause,
	Stream_Size_Clause, Type_High_Bound, Type_Low_Bound, Known_*,
	Unknown_*.
	(Inline Pragmas for procedures): Add Set_Corresponding_Function,
	Set_Corresponding_Procedure, Set_Finalize_Storage_Only,
	Set_Float_Rep, Set_Initialization_Statements,
	Init_Normalized_First_Bit, Init_Normalized_Position,
	Init_Normalized_Position_Max.
	* einfo.adb (Was_Hidden): Move around.
	(Is_Packed_Array): Likewise.
	(Model_Emin_Value): Likewise.
	(Model_Epsilon_Value): Likewise.
	(Model_Mantissa_Value): Likewise.
	(Model_Small_Value): Likewise.
2020-06-09 04:09:05 -04:00
Ed Schonberg 4e510a0a2b [Ada] Ada2020 AI12-0282: Shared variable control aspects in generics
2020-06-09  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
	exact match between formal and actual for aspects Atomic and
	Volatile only for formal derived types.
2020-06-09 04:09:05 -04:00
Arnaud Charlet c4609e75ef [Ada] Improve handling of aggregates in Side_Effect_Free
2020-06-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* exp_util.adb (Side_Effect_Free): Improve handling of
	N_Aggregate.
2020-06-09 04:09:05 -04:00
Ghjuvan Lacambre 10212bd8f0 [Ada] Fix wrong type being used for range check generation
2020-06-09  Ghjuvan Lacambre  <lacambre@adacore.com>

gcc/ada/

	* sem_res.adb (Resolve_Qualified_Expression): Use Subtype_Mark
	type.
2020-06-09 04:09:04 -04:00
Arnaud Charlet c42006e91e [Ada] Expand more others aggregates statically
2020-06-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* exp_aggr.adb (Max_Aggregate_Size): New function to factorize
	code.
	(Convert_To_Positional, Aggr_Size_OK): Use Max_Aggregate_Size.
2020-06-09 04:09:04 -04:00
Arnaud Charlet 4228c32ab0 [Ada] Code refactoring on calls to Set_Debug_Info_Needed
2020-06-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* sem_util.ads, sem_util.adb (Set_Debug_Info_Defining_Id): New.
	* exp_ch3.adb, exp_ch8.adb: Call Set_Debug_Info_Defining_Id when
	relevant.
2020-06-09 04:09:04 -04:00
Justin Squirek 7d4d54aa7c [Ada] Missing documentation for Returns_By_Ref
2020-06-09  Justin Squirek  <squirek@adacore.com>

gcc/ada/

	* einfo.ads (Returns_By_Ref): Modify documentation to reflect
	that Returns_By_Ref can be applied to E_Subprogram_Type
	entities.
2020-06-09 04:09:04 -04:00
Justin Squirek d4fd46371a [Ada] Spurious overlap error on zero-sized arrays with -gnateV
2020-06-09  Justin Squirek  <squirek@adacore.com>

gcc/ada/

	* exp_attr.adb (Expand_N_Attribute_Reference): Modify expansion
	of 'Overlaps_Storage to take into account zero sized arrays.
2020-06-09 04:09:03 -04:00
Bob Duff 7bf5f4d985 [Ada] Write_Invocation_Graph_Vertex: include lib item name
2020-06-09  Bob Duff  <duff@adacore.com>

gcc/ada/

	* bindo-graphs.adb, bindo-graphs.ads: For each invocation graph,
	record the corresponding library graph.
	* bindo-writers.adb (Write_Invocation_Graph_Vertex): Print the
	lib item name. Remove library graph parameters.
	* bindo-augmentors.adb, bindo-augmentors.ads,
	bindo-builders.adb, bindo-diagnostics.adb,
	bindo-diagnostics.ads, bindo-elaborators.adb: Remove library
	graph parameters.
2020-06-09 04:09:03 -04:00
Eric Botcazou b97813ab96 [Ada] Propagate DIC, Invariant and Predicate attributes to views
2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* checks.adb (Apply_Predicate_Check): Extend trick used for
	aggregates to qualified aggregates and object declarations
	* einfo.ads (Has_Own_DIC): Mention the underlying full view.
	(Has_Own_Invariants): Likewise.
	(Has_Predicates): Likewise.
	* exp_util.adb (Build_DIC_Procedure_Declaration): Do not deal
	with base types explicitly but with underlying full views.
	(Build_Invariant_Procedure_Declaration): Likewise.
	* sem_ch13.adb (Build_Predicate_Functions): Do not deal with
	the full view manually but call Propagate_Predicate_Attributes
	to propagate attributes to views.
	(Build_Predicate_Function_Declaration): Likewise.
	* sem_ch3.adb (Build_Assertion_Bodies_For_Type): Build bodies
	for private full views with an underlying full view.
	(Build_Derived_Private_Type): Small comment tweak.
	(Complete_Private_Subtype): Call Propagate_Predicate_Attributes.
	(Process_Full_View): Do not deal with base types explicitly for
	DIC and Invariant attributes.  Deal with underlying full views
	for them.  Call Propagate_Predicate_Attributes and deal with
	underlying full views for them.
	* sem_ch7.adb (Preserve_Full_Attributes): Do not cross propagate
	DIC and Invariant attributes between full type and its base type.
	Propagate Predicate attributes from the full to the private view.
	* sem_ch9.adb (Analyze_Protected_Type_Declaration): Likewise.
	(Analyze_Task_Type_Declaration): Likewise.
	* sem_util.ads (Get_Views): Remove Full_Base parameter and add
	UFull_Typ parameter.
	(Propagate_Predicate_Attributes): New procedure.
	* sem_util.adb (Get_Views): Remove Full_Base parameter and add
	UFull_Typ parameter.  Retrieve the Corresponding_Record_Type
	from the underlying full view, if any.
	(Propagate_DIC_Attributes): Remove useless tests.
	(Propagate_Invariant_Attributes): Likewise.
	(Propagate_Predicate_Attributes): New procedure.
2020-06-09 04:09:03 -04:00
Justin Squirek bf2480e2fb [Ada] Crash on exit statement within predicated loop
2020-06-09  Justin Squirek  <squirek@adacore.com>

gcc/ada/

	* exp_ch5.adb (Expand_Predicated_Loop): Perserve the original
	loop identifier within the expansion.
2020-06-09 04:09:02 -04:00
Bob Duff 059a704a41 [Ada] gnatbind: Correct assertions in Add_Edge_Kind_Check
2020-06-09  Bob Duff  <duff@adacore.com>

gcc/ada/

	* bindo-graphs.ads (Library_Graph_Edge_Kind): Reorder enumerals
	to reflect the order of adding edges. Clarify comments.
	* bindo-graphs.adb (Add_Edge_Kind_Check): Correct the
	assertions.  Reorder the "when"s to match the order of adding
	edges, and therefore the order of enumerals in type
	Library_Graph_Edge_Kind.  Change names to "Old_" and "New_" to
	clarify what's what.  Combine Invocation_Edge into the "<="
	test.  Fix the "raise Program_Error" message, which was
	backwards.
2020-06-09 04:09:02 -04:00
Bob Duff 338c32f137 [Ada] Add debugging message
2020-06-09  Bob Duff  <duff@adacore.com>

gcc/ada/

	* bindo-graphs.adb (Add_Edge_Kind_Check): Add the Image of the
	old and new Kinds to the raise Program_Error message.
2020-06-09 04:09:02 -04:00
Eric Botcazou dc8adf598f [Ada] Remove bypass for instance bodies from Is_Visible_Component
2020-06-09  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* sem_ch3.adb (Is_Visible_Component): Do not special-case
	bodies of instances.
2020-06-09 04:09:02 -04:00
Arnaud Charlet 11381028a6 [Ada] Membership test against a non-excluding subtype
2020-06-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* exp_ch4.adb (Expand_N_In): Fix handling of null exclusion.
2020-06-09 04:09:01 -04:00
Ed Schonberg 8e6ca7a87b [Ada] Ada2020 AI12-0282: Shared variable control aspects in generics
2020-06-09  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* sem_ch12.adb (Check_Shared_Variable_Control_Aspects): Require
	exact match between formal and actual for aspects Atomic,
	Atomic_Component, Volatile, and Volatile_Components.
2020-06-09 04:09:01 -04:00
Bob Duff 05cb816ba5 [Ada] gnatpp: documentation for --no-separate-return switch
2020-06-09  Bob Duff  <duff@adacore.com>

gcc/ada/

	* doc/gnat_ugn/gnat_utility_programs.rst: Add documentation for
	the --no-separate-return switch of gnatpp.
2020-06-09 04:09:01 -04:00
Arnaud Charlet 881d7a9f46 [Ada] Add missing tag with -gnatw.d
2020-06-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* sem_warn.adb (Warn_On_Constant_Valid_Condition): Add proper
	warning tag.
2020-06-09 04:09:01 -04:00
Arnaud Charlet 742048af50 [Ada] Refine implementation of AI05-0149 missing conversion checks
2020-06-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* sem_type.adb (Covers): Fix implementation of AI05-0149.
	* sem_res.adb: Fix typo.
2020-06-09 04:09:00 -04:00
Ed Schonberg 54025948c0 [Ada] Spurious error on instantiations with Taft_Amendment types and tasks
2020-06-09  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* exp_ch9.adb (Build_Master_Renaming): Make name in renaming
	declaration unique by adding a numeric suffix, to prevent
	accidental name conflict when several instantiations of a
	package containing an access_to_incomplete type that designate
	tasks appear in the same scope.
2020-06-09 04:09:00 -04:00
Piotr Trojanek 6859ef4893 [Ada] Annotate Ada.Synchronous_Barriers with SPARK_Mode => Off
2020-06-09  Piotr Trojanek  <trojanek@adacore.com>

gcc/ada/

	* libgnarl/a-synbar.ads, libgnarl/a-synbar.adb,
	libgnarl/a-synbar__posix.ads, libgnarl/a-synbar__posix.adb
	(Ada.Synchronous_Barriers): Annotate with SPARK_Mode => Off.
2020-06-09 04:09:00 -04:00
Arnaud Charlet 3795dac6fa [Ada] AI1-0201 Relational operators of static string types are now static
2020-06-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* sem_eval.adb (Eval_Relational_Op, Eval_String_Literal,
	Eval_Type_Conversion): Relax rules on relational operators and
	type conversions of static string types.
2020-06-09 04:09:00 -04:00
Arnaud Charlet c68d70e8bd [Ada] Ada2020: AI12-0301 Predicates and Default_Value
2020-06-09  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

	* sem_util.ads, sem_util.adb (Is_Partially_Initialized_Type):
	Take Default_Value and Default_Component_Value into account.
	* sem_ch3.adb (Analyze_Object_Declaration): Update comment.
2020-06-09 04:09:00 -04:00