โŒ About FreshRSS

Normal view

There are new articles available, click to refresh the page.
Before yesterdaygcc/ada history

ada: Add typedefs to snames.h-tmpl

29 June 2023 at 14:52
ada: Add typedefs to snames.h-tmpl

A future patch will change sname.h-tmpl to use enums rather than
preprocessor defines.  In order to do this, first introduce some
typedefs that can be used in gcc-interface.

gcc/ada/

	* snames.h-tmpl (Name_Id, Attribute_Id, Convention_Id)
	(Pragma_Id): New typedefs.
	(Get_Attribute_Id, Get_Pragma_Id): Use typedef.
  • [DBH] gcc/ada/snames.h-tmpl
  • 29 June 2023 at 14:52

ada: Fix wrong resolution for hidden discriminant in predicate

2 July 2023 at 22:33
ada: Fix wrong resolution for hidden discriminant in predicate

The problem occurs for hidden discriminants of private discriminated types.

gcc/ada/

	* sem_ch13.adb (Replace_Type_References_Generic.Visible_Component):
	In the case of private discriminated types, return a discriminant
	only if it is listed in the discriminant part of the declaration.
  • [DBH] gcc/ada/sem_ch13.adb
  • 2 July 2023 at 22:33

ada: Avoid renaming_decl in case of constrained array

By: Bob Duff
3 July 2023 at 16:01
ada: Avoid renaming_decl in case of constrained array

This patch avoids rewriting "X: S := F(...);" as "X: S renames F(...);".
That rewrite is incorrect if S is a constrained array subtype,
because it changes the semantics. In the original, the
bounds of X are that of S. But constraints are ignored in
renamings, so the bounds of X would come from F'Result.
This can cause spurious Constraint_Errors in some obscure
cases. It causes unnecessary checks to be inserted, and even
when such checks pass (more common case), they might be less
efficient.

gcc/ada/

	* exp_ch3.adb (Expand_N_Object_Declaration): Avoid transforming to
	a renaming in case of constrained array that comes from source.
  • [DBH] gcc/ada/exp_ch3.adb
  • 3 July 2023 at 16:01

ada: Expose expected_throw attribute

28 June 2023 at 04:36
ada: Expose expected_throw attribute

Mark exception-raising subprograms with expected_throw attribute.

Document the use of the attribute in Control Flow Redundancy.

Enable marking subprograms as expected_throw with Machine_Attribute
pragmas.

gcc/ada/

	* libgnat/a-except.ads (Raise_Exception): Mark expected_throw.
	(Reraise_Occurrence): Likewise.
	(Raise_Exception_Always): Likewise.
	(Raise_From_Controlled_Operation): Likewise.
	(Reraise_Occurrence_Always): Likewise.
	(Reraise_Occurrence_No_Defer): Likewise.
	* libgnat/a-except.adb
	(Exception_Propagation.Propagate_Exception): Likewise.
	(Complete_And_Propagate_Occurrence): Likewise.
	(Raise_Exception_No_Defer): Likewise.
	(Raise_From_Signal_Handler): Likewise.
	(Raise_With_Msg): Likewise.
	(Raise_With_Location_And_Msg): Likewise.
	(Raise_Constraint_Error): Likewise.
	(Raise_Constraint_Error_Msg): Likewise.
	(Raise_Program_Error): Likewise.
	(Raise_Program_Error_Msg): Likewise.
	(Raise_Storage_Error): Likewise.
	(Raise_Storage_Error_Msg): Likewise.
	(Reraise, Rcheck_*): Likewise.
	* doc/gnat_rm/security_hardening_features.rst (Control Flow
	Hardening): Note the influence of expected_throw.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.
	* gcc-interface/utils.cc (handle_expected_throw_attribute): New.
	(gnat_internal_attribute_table): Add expected_throw.
  • [DBH] gcc/ada/doc/gnat_rm/security_hardening_features.rst
  • [DBH] gcc/ada/gcc-interface/utils.cc
  • [DBH] gcc/ada/gnat_rm.texi
  • [DBH] gcc/ada/gnat_ugn.texi
  • [DBH] gcc/ada/libgnat/a-except.adb
  • [DBH] gcc/ada/libgnat/a-except.ads
  • 28 June 2023 at 04:36

ada: Tweak CPU affinity handling on Linux

29 June 2023 at 08:00
ada: Tweak CPU affinity handling on Linux

Before this patch, the run-time assumed that not specifying a CPU
affinity mask when creating a thread was equivalent to specifying a
CPU affinity mask that included all CPUs.

As documented in the man pages for pthread_create and
pthread_setaffinity_np, this assumption is incorrect: a thread created
using pthread_create inherits the CPU affinity mask of the creating
thread by default. There was a comment in Set_Task_Affinity that
acknowledged this behavior, but the actual code made the erroneous
assumption mentioned above.

That assumption caused the run-time to behave incorrectly when tasks were
explicity assigned to Not_A_Specific_CPU: those tasks were assigned to
the same CPUs as their parents instead of being allowed to run on any
CPU. This patch fixes that behavior.

This patch has the negative effect of making the runtime issue
sched_setaffinity syscalls that are not necessary.

gcc/ada/

	* libgnarl/s-taprop__linux.adb (Set_Task_Affinity, Create_Task): Tweak
	handling of CPU affinities.
  • [DBH] gcc/ada/libgnarl/s-taprop__linux.adb
  • 29 June 2023 at 08:00

ada: Use new typedefs in gcc-interface

29 June 2023 at 15:56
ada: Use new typedefs in gcc-interface

This changes gcc-interface to use the typedefs that were recently
introduced in gnat.  This is another step toward switching the code
generator to emit enums rather than preprocessor defines.

In a couple of spots, a 'default' case is also added.  These avoid
warnings from -Wswitch when the typedefs are changed to be enums.

gcc/ada/

	* gcc-interface/decl.cc (check_ok_for_atomic_type): Use Pragma_Id.
	* gcc-interface/trans.cc (lvalue_required_p, Pragma_to_gnu): Use
	Pragma_Id.
	(get_type_length, Attribute_to_gnu, get_atomic_access): Use
	Attribute_Id.
  • [DBH] gcc/ada/gcc-interface/decl.cc
  • [DBH] gcc/ada/gcc-interface/trans.cc
  • 29 June 2023 at 15:56

ada: Refactor s-pack* units to remove multiple returns

30 June 2023 at 12:22
ada: Refactor s-pack* units to remove multiple returns

The aim of this refactoring is to replace multiple returns from
branches of case and if statements by a single return statement
with a conditional expression. This is more readable and
maintainable, and also conformant with a Highly Recommended
design principle of ISO 26262-6.

gcc/ada/

	* libgnat/s-pack03.adb: Update copyright year; refactor return statements.
	* libgnat/s-pack05.adb: Likewise.
	* libgnat/s-pack06.adb: Likewise.
	* libgnat/s-pack07.adb: Likewise.
	* libgnat/s-pack09.adb: Likewise.
	* libgnat/s-pack10.adb: Likewise.
	* libgnat/s-pack100.adb: Likewise.
	* libgnat/s-pack101.adb: Likewise.
	* libgnat/s-pack102.adb: Likewise.
	* libgnat/s-pack103.adb: Likewise.
	* libgnat/s-pack104.adb: Likewise.
	* libgnat/s-pack105.adb: Likewise.
	* libgnat/s-pack106.adb: Likewise.
	* libgnat/s-pack107.adb: Likewise.
	* libgnat/s-pack108.adb: Likewise.
	* libgnat/s-pack109.adb: Likewise.
	* libgnat/s-pack11.adb: Likewise.
	* libgnat/s-pack110.adb: Likewise.
	* libgnat/s-pack111.adb: Likewise.
	* libgnat/s-pack112.adb: Likewise.
	* libgnat/s-pack113.adb: Likewise.
	* libgnat/s-pack114.adb: Likewise.
	* libgnat/s-pack115.adb: Likewise.
	* libgnat/s-pack116.adb: Likewise.
	* libgnat/s-pack117.adb: Likewise.
	* libgnat/s-pack118.adb: Likewise.
	* libgnat/s-pack119.adb: Likewise.
	* libgnat/s-pack12.adb: Likewise.
	* libgnat/s-pack120.adb: Likewise.
	* libgnat/s-pack121.adb: Likewise.
	* libgnat/s-pack122.adb: Likewise.
	* libgnat/s-pack123.adb: Likewise.
	* libgnat/s-pack124.adb: Likewise.
	* libgnat/s-pack125.adb: Likewise.
	* libgnat/s-pack126.adb: Likewise.
	* libgnat/s-pack127.adb: Likewise.
	* libgnat/s-pack13.adb: Likewise.
	* libgnat/s-pack14.adb: Likewise.
	* libgnat/s-pack15.adb: Likewise.
	* libgnat/s-pack17.adb: Likewise.
	* libgnat/s-pack18.adb: Likewise.
	* libgnat/s-pack19.adb: Likewise.
	* libgnat/s-pack20.adb: Likewise.
	* libgnat/s-pack21.adb: Likewise.
	* libgnat/s-pack22.adb: Likewise.
	* libgnat/s-pack23.adb: Likewise.
	* libgnat/s-pack24.adb: Likewise.
	* libgnat/s-pack25.adb: Likewise.
	* libgnat/s-pack26.adb: Likewise.
	* libgnat/s-pack27.adb: Likewise.
	* libgnat/s-pack28.adb: Likewise.
	* libgnat/s-pack29.adb: Likewise.
	* libgnat/s-pack30.adb: Likewise.
	* libgnat/s-pack31.adb: Likewise.
	* libgnat/s-pack33.adb: Likewise.
	* libgnat/s-pack34.adb: Likewise.
	* libgnat/s-pack35.adb: Likewise.
	* libgnat/s-pack36.adb: Likewise.
	* libgnat/s-pack37.adb: Likewise.
	* libgnat/s-pack38.adb: Likewise.
	* libgnat/s-pack39.adb: Likewise.
	* libgnat/s-pack40.adb: Likewise.
	* libgnat/s-pack41.adb: Likewise.
	* libgnat/s-pack42.adb: Likewise.
	* libgnat/s-pack43.adb: Likewise.
	* libgnat/s-pack44.adb: Likewise.
	* libgnat/s-pack45.adb: Likewise.
	* libgnat/s-pack46.adb: Likewise.
	* libgnat/s-pack47.adb: Likewise.
	* libgnat/s-pack48.adb: Likewise.
	* libgnat/s-pack49.adb: Likewise.
	* libgnat/s-pack50.adb: Likewise.
	* libgnat/s-pack51.adb: Likewise.
	* libgnat/s-pack52.adb: Likewise.
	* libgnat/s-pack53.adb: Likewise.
	* libgnat/s-pack54.adb: Likewise.
	* libgnat/s-pack55.adb: Likewise.
	* libgnat/s-pack56.adb: Likewise.
	* libgnat/s-pack57.adb: Likewise.
	* libgnat/s-pack58.adb: Likewise.
	* libgnat/s-pack59.adb: Likewise.
	* libgnat/s-pack60.adb: Likewise.
	* libgnat/s-pack61.adb: Likewise.
	* libgnat/s-pack62.adb: Likewise.
	* libgnat/s-pack63.adb: Likewise.
	* libgnat/s-pack65.adb: Likewise.
	* libgnat/s-pack66.adb: Likewise.
	* libgnat/s-pack67.adb: Likewise.
	* libgnat/s-pack68.adb: Likewise.
	* libgnat/s-pack69.adb: Likewise.
	* libgnat/s-pack70.adb: Likewise.
	* libgnat/s-pack71.adb: Likewise.
	* libgnat/s-pack72.adb: Likewise.
	* libgnat/s-pack73.adb: Likewise.
	* libgnat/s-pack74.adb: Likewise.
	* libgnat/s-pack75.adb: Likewise.
	* libgnat/s-pack76.adb: Likewise.
	* libgnat/s-pack77.adb: Likewise.
	* libgnat/s-pack78.adb: Likewise.
	* libgnat/s-pack79.adb: Likewise.
	* libgnat/s-pack80.adb: Likewise.
	* libgnat/s-pack81.adb: Likewise.
	* libgnat/s-pack82.adb: Likewise.
	* libgnat/s-pack83.adb: Likewise.
	* libgnat/s-pack84.adb: Likewise.
	* libgnat/s-pack85.adb: Likewise.
	* libgnat/s-pack86.adb: Likewise.
	* libgnat/s-pack87.adb: Likewise.
	* libgnat/s-pack88.adb: Likewise.
	* libgnat/s-pack89.adb: Likewise.
	* libgnat/s-pack90.adb: Likewise.
	* libgnat/s-pack91.adb: Likewise.
	* libgnat/s-pack92.adb: Likewise.
	* libgnat/s-pack93.adb: Likewise.
	* libgnat/s-pack94.adb: Likewise.
	* libgnat/s-pack95.adb: Likewise.
	* libgnat/s-pack96.adb: Likewise.
	* libgnat/s-pack97.adb: Likewise.
	* libgnat/s-pack98.adb: Likewise.
	* libgnat/s-pack99.adb: Likewise.
  • [DBH] gcc/ada/libgnat/s-pack03.adb
  • [DBH] gcc/ada/libgnat/s-pack05.adb
  • [DBH] gcc/ada/libgnat/s-pack06.adb
  • [DBH] gcc/ada/libgnat/s-pack07.adb
  • [DBH] gcc/ada/libgnat/s-pack09.adb
  • [DBH] gcc/ada/libgnat/s-pack10.adb
  • [DBH] gcc/ada/libgnat/s-pack100.adb
  • [DBH] gcc/ada/libgnat/s-pack101.adb
  • [DBH] gcc/ada/libgnat/s-pack102.adb
  • [DBH] gcc/ada/libgnat/s-pack103.adb
  • [DBH] gcc/ada/libgnat/s-pack104.adb
  • [DBH] gcc/ada/libgnat/s-pack105.adb
  • [DBH] gcc/ada/libgnat/s-pack106.adb
  • [DBH] gcc/ada/libgnat/s-pack107.adb
  • [DBH] gcc/ada/libgnat/s-pack108.adb
  • [DBH] gcc/ada/libgnat/s-pack109.adb
  • [DBH] gcc/ada/libgnat/s-pack11.adb
  • [DBH] gcc/ada/libgnat/s-pack110.adb
  • [DBH] gcc/ada/libgnat/s-pack111.adb
  • [DBH] gcc/ada/libgnat/s-pack112.adb
  • [DBH] gcc/ada/libgnat/s-pack113.adb
  • [DBH] gcc/ada/libgnat/s-pack114.adb
  • [DBH] gcc/ada/libgnat/s-pack115.adb
  • [DBH] gcc/ada/libgnat/s-pack116.adb
  • [DBH] gcc/ada/libgnat/s-pack117.adb
  • [DBH] gcc/ada/libgnat/s-pack118.adb
  • [DBH] gcc/ada/libgnat/s-pack119.adb
  • [DBH] gcc/ada/libgnat/s-pack12.adb
  • [DBH] gcc/ada/libgnat/s-pack120.adb
  • [DBH] gcc/ada/libgnat/s-pack121.adb
  • [DBH] gcc/ada/libgnat/s-pack122.adb
  • [DBH] gcc/ada/libgnat/s-pack123.adb
  • [DBH] gcc/ada/libgnat/s-pack124.adb
  • [DBH] gcc/ada/libgnat/s-pack125.adb
  • [DBH] gcc/ada/libgnat/s-pack126.adb
  • [DBH] gcc/ada/libgnat/s-pack127.adb
  • [DBH] gcc/ada/libgnat/s-pack13.adb
  • [DBH] gcc/ada/libgnat/s-pack14.adb
  • [DBH] gcc/ada/libgnat/s-pack15.adb
  • [DBH] gcc/ada/libgnat/s-pack17.adb
  • [DBH] gcc/ada/libgnat/s-pack18.adb
  • [DBH] gcc/ada/libgnat/s-pack19.adb
  • [DBH] gcc/ada/libgnat/s-pack20.adb
  • [DBH] gcc/ada/libgnat/s-pack21.adb
  • [DBH] gcc/ada/libgnat/s-pack22.adb
  • [DBH] gcc/ada/libgnat/s-pack23.adb
  • [DBH] gcc/ada/libgnat/s-pack24.adb
  • [DBH] gcc/ada/libgnat/s-pack25.adb
  • [DBH] gcc/ada/libgnat/s-pack26.adb
  • [DBH] gcc/ada/libgnat/s-pack27.adb
  • [DBH] gcc/ada/libgnat/s-pack28.adb
  • [DBH] gcc/ada/libgnat/s-pack29.adb
  • [DBH] gcc/ada/libgnat/s-pack30.adb
  • [DBH] gcc/ada/libgnat/s-pack31.adb
  • [DBH] gcc/ada/libgnat/s-pack33.adb
  • [DBH] gcc/ada/libgnat/s-pack34.adb
  • [DBH] gcc/ada/libgnat/s-pack35.adb
  • [DBH] gcc/ada/libgnat/s-pack36.adb
  • [DBH] gcc/ada/libgnat/s-pack37.adb
  • [DBH] gcc/ada/libgnat/s-pack38.adb
  • [DBH] gcc/ada/libgnat/s-pack39.adb
  • [DBH] gcc/ada/libgnat/s-pack40.adb
  • [DBH] gcc/ada/libgnat/s-pack41.adb
  • [DBH] gcc/ada/libgnat/s-pack42.adb
  • [DBH] gcc/ada/libgnat/s-pack43.adb
  • [DBH] gcc/ada/libgnat/s-pack44.adb
  • [DBH] gcc/ada/libgnat/s-pack45.adb
  • [DBH] gcc/ada/libgnat/s-pack46.adb
  • [DBH] gcc/ada/libgnat/s-pack47.adb
  • [DBH] gcc/ada/libgnat/s-pack48.adb
  • [DBH] gcc/ada/libgnat/s-pack49.adb
  • [DBH] gcc/ada/libgnat/s-pack50.adb
  • [DBH] gcc/ada/libgnat/s-pack51.adb
  • [DBH] gcc/ada/libgnat/s-pack52.adb
  • [DBH] gcc/ada/libgnat/s-pack53.adb
  • [DBH] gcc/ada/libgnat/s-pack54.adb
  • [DBH] gcc/ada/libgnat/s-pack55.adb
  • [DBH] gcc/ada/libgnat/s-pack56.adb
  • [DBH] gcc/ada/libgnat/s-pack57.adb
  • [DBH] gcc/ada/libgnat/s-pack58.adb
  • [DBH] gcc/ada/libgnat/s-pack59.adb
  • [DBH] gcc/ada/libgnat/s-pack60.adb
  • [DBH] gcc/ada/libgnat/s-pack61.adb
  • [DBH] gcc/ada/libgnat/s-pack62.adb
  • [DBH] gcc/ada/libgnat/s-pack63.adb
  • [DBH] gcc/ada/libgnat/s-pack65.adb
  • [DBH] gcc/ada/libgnat/s-pack66.adb
  • [DBH] gcc/ada/libgnat/s-pack67.adb
  • [DBH] gcc/ada/libgnat/s-pack68.adb
  • [DBH] gcc/ada/libgnat/s-pack69.adb
  • [DBH] gcc/ada/libgnat/s-pack70.adb
  • [DBH] gcc/ada/libgnat/s-pack71.adb
  • [DBH] gcc/ada/libgnat/s-pack72.adb
  • [DBH] gcc/ada/libgnat/s-pack73.adb
  • [DBH] gcc/ada/libgnat/s-pack74.adb
  • [DBH] gcc/ada/libgnat/s-pack75.adb
  • [DBH] gcc/ada/libgnat/s-pack76.adb
  • [DBH] gcc/ada/libgnat/s-pack77.adb
  • [DBH] gcc/ada/libgnat/s-pack78.adb
  • [DBH] gcc/ada/libgnat/s-pack79.adb
  • [DBH] gcc/ada/libgnat/s-pack80.adb
  • [DBH] gcc/ada/libgnat/s-pack81.adb
  • [DBH] gcc/ada/libgnat/s-pack82.adb
  • [DBH] gcc/ada/libgnat/s-pack83.adb
  • [DBH] gcc/ada/libgnat/s-pack84.adb
  • [DBH] gcc/ada/libgnat/s-pack85.adb
  • [DBH] gcc/ada/libgnat/s-pack86.adb
  • [DBH] gcc/ada/libgnat/s-pack87.adb
  • [DBH] gcc/ada/libgnat/s-pack88.adb
  • [DBH] gcc/ada/libgnat/s-pack89.adb
  • [DBH] gcc/ada/libgnat/s-pack90.adb
  • [DBH] gcc/ada/libgnat/s-pack91.adb
  • [DBH] gcc/ada/libgnat/s-pack92.adb
  • [DBH] gcc/ada/libgnat/s-pack93.adb
  • [DBH] gcc/ada/libgnat/s-pack94.adb
  • [DBH] gcc/ada/libgnat/s-pack95.adb
  • [DBH] gcc/ada/libgnat/s-pack96.adb
  • [DBH] gcc/ada/libgnat/s-pack97.adb
  • [DBH] gcc/ada/libgnat/s-pack98.adb
  • [DBH] gcc/ada/libgnat/s-pack99.adb
  • 30 June 2023 at 12:22

ada: Allow warnings with explain code

30 June 2023 at 12:51
ada: Allow warnings with explain code

Change the way explain codes are handled to generate the command for the
user to get the explanations, as this was not working for warnings.

gcc/ada/

	* errout.adb (Error_Msg_Internal): Remove call to
	Prescan_Message on the special continuation for the explain code
	command, as this does not play well with the setting of global
	variables for the message (like its status as a warning or not).
	Instead, set directly the global variables regarding content of
	the message in terms of special characters.
  • [DBH] gcc/ada/errout.adb
  • 30 June 2023 at 12:51

ada: Fix Valid_Scalars attribute applied to types from limited with

2 July 2023 at 08:07
ada: Fix Valid_Scalars attribute applied to types from limited with

The attribute is wrongly computed as always True because, unlike for e.g.
private types, Validated_View does not look through the limited view.

gcc/ada/

	* sem_util.ads (Validated_View): Document enhanced behavior.
	* sem_util.adb (Validated_View): Return the nonlimited view, if any,
	of types coming from a limited with.
  • [DBH] gcc/ada/sem_util.adb
  • [DBH] gcc/ada/sem_util.ads
  • 2 July 2023 at 08:07

ada: Fix internal error on aggregates of self-referencing types

4 July 2023 at 17:24
ada: Fix internal error on aggregates of self-referencing types

The front-end contains a specific mechanism to deal with aggregates of
self-referencing types by means of the Has_Self_Reference flag, which is
supposed to be set during semantic analysis and used during expansion.

The problem is that the first part overlooks aggregates of derived types
which implicitly contain references to an ancestor type (the second part
uses a broader condition but it is effectively guarded by the first one).

This changes both parts to use the same condition based on the Is_Ancestor
predicate, which seems to implement the expected semantic in this case.

gcc/ada/
	* sem_type.ads (Is_Ancestor): Remove mention of tagged type.
	* exp_aggr.adb: Add with and use clauses for Sem_Type.
	(Build_Record_Aggr_Code.Replace_Type): Call Is_Ancestor to spot
	self-references to the type of the aggregate.
	* sem_aggr.adb (Resolve_Record_Aggregate.Add_Discriminant_Values):
	Likewise.
  • [DBH] gcc/ada/exp_aggr.adb
  • [DBH] gcc/ada/sem_aggr.adb
  • [DBH] gcc/ada/sem_type.ads
  • 4 July 2023 at 17:24

ada: Fix expanding container aggregates with Iterator specification

5 July 2023 at 09:28
ada: Fix expanding container aggregates with Iterator specification

The compiler should use unnamed addition methods such as Append
when expanding a container aggregate with Iterator Specification.

gcc/ada/

	* exp_aggr.adb (Expand_Container_Aggregate): Use the positional
	addition method only when dealing with a container aggregate
	without an Iterator Specification e.g. with a loop parameter
	specification
  • [DBH] gcc/ada/exp_aggr.adb
  • 5 July 2023 at 09:28

ada: Apply correct element type for container aggregates

5 July 2023 at 11:21
ada: Apply correct element type for container aggregates

When dealing with a container aggregate with an iterator
specification the iterator should take the value of the
element of the container instead of the key.

gcc/ada/

	* sem_aggr.adb (Resolve_Iterated_Association): Use the element
	type for the iterator in a container aggregate with an iterator
	specification.
  • [DBH] gcc/ada/sem_aggr.adb
  • 5 July 2023 at 11:21

ada: Constraint_Error caused by interface conversion

5 July 2023 at 17:27
ada: Constraint_Error caused by interface conversion

When the sources have a type conversion from an interface type
T2 to some ancestor interface type T1 (that is, T2 extends T1)
the tag check added by the compiler may fail at runtime.

gcc/ada/

	* exp_disp.adb (Has_Dispatching_Constructor_Call): Removed.
	(Expand_Interface_Conversion): Reverse patch.
  • [DBH] gcc/ada/exp_disp.adb
  • 5 July 2023 at 17:27

ada: Fix assertion failure introduced by latest change

5 July 2023 at 17:49
ada: Fix assertion failure introduced by latest change

The new processing is not properly guarded.

gcc/ada/

	* sem_ch13.adb (Replace_Type_References_Generic.Visible_Component):
	In the case of private discriminated types, explicitly check that we
	have a private declaration before examining its discriminant part.
  • [DBH] gcc/ada/sem_ch13.adb
  • 5 July 2023 at 17:49

ada: Improve error message for ambiguous subprogram call

5 July 2023 at 20:04
ada: Improve error message for ambiguous subprogram call

This restores the full listing of the types for the interpretations.

gcc/ada/

	* sem_util.ads (Wrong_Type): Add Multiple parameter defaulting to
	False and document it.
	* sem_util.adb (Wrong_Type): Do not return early if an error has
	already been posted on Expr and Multiple is True.
	* sem_ch4.adb (Analyze_One_Call): Pass All_Errors_Mode as the
	actual parameter for Multiple to Wrong_Type.
  • [DBH] gcc/ada/sem_ch4.adb
  • [DBH] gcc/ada/sem_util.adb
  • [DBH] gcc/ada/sem_util.ads
  • 5 July 2023 at 20:04

ada: Avoid iterator conflicts in container aggregates

6 July 2023 at 13:02
ada: Avoid iterator conflicts in container aggregates

Create temporary scope for the iterators defined in a
container aggregate so that it would not be put to the
same scope where the expression was used. This would
otherwise lead to multiple aggregates with iterators that have
the same name leading to a name conflict.

gcc/ada/

	* sem_aggr.adb (Resolve_Iterated_Association): Add temporary scope
	when analyzing the Iterator Specification. Use preanalysis instead
	of Analysis to avoid polluting the tree.
  • [DBH] gcc/ada/sem_aggr.adb
  • 6 July 2023 at 13:02
โŒ
โŒ