From: Viljar Indus
Previously in GNATProve_Mode the frontend would overwrite all of
the assertion policies to check in order to force the generation
of all of the assertions.
This however prevents GNATProve from performing policy related
checks in the tool. Since they are all artificially change
From: Viljar Indus
Simplify the storing process for ghost mode related variables and
make the process more extendable if new ghost mode related features
are added.
gcc/ada/ChangeLog:
* atree.adb: update references to Ghost_Mode.
* exp_ch3.adb: use a structure type to store all o
From: Viljar Indus
Simplify the creation of the control characters in
Validate_Compile_Time_Warning_Or_Error.
gcc/ada/ChangeLog:
* sem_prag.adb (Validate_Compile_Time_Warning_Or_Error):
simplify the implementation.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/a
From: Bob Duff
...which might make it easier to deal with incorrectly shared
subtrees created during parsing.
There were several Idents arrays, with duplicated code and commentary.
And the related code had somewhat diverged -- different comments,
different index subtypes (Pos vs. Int), etc.
DRY
From: Bob Duff
Print_Node_Ref, which is called by pp, sometimes calls
Compile_Time_Known_Value, which blows up if Entity (N)
is empty. Rearrange the tests here, and test for
Present (Entity (N)) before calling Compile_Time_Known_Value.
Remove test "Nkind (N) in N_Subexpr", which is redundant with
From: Viljar Indus
gcc/ada/ChangeLog:
* sem_prag.adb (Validate_Compile_Time_Warning_Errors):
Check if the original compile time pragma was replaced and
validate the original node instead.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_prag.adb | 8
From: Steve Baird
If a function result type has an access discriminant, then we already
generate a run-time accessibility check for a return statement. But if
we know statically that the check (if executed) is going to fail, then
that should be rejected at compile-time as a violation of RM 6.5(5.
From: Steve Baird
Do not generate a warning stating that the size of a formal parameter
is 8 bits unless the size of the formal parameter is 8 bits.
gcc/ada/ChangeLog:
* freeze.adb (Freeze_Profile): Do not emit a warning stating that
a formal parameter's size is 8 if the paramet
From: Viljar Indus
gcc/ada/ChangeLog:
* table.adb (Max): Move variable to the body and initialize
it with the same value as in the Init function.
* table.ads (Max): Likewise.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/table.adb | 3 +++
gcc/ada/tab
gcc/ada/ChangeLog:
* gcc-interface/trans.cc (gnat_to_gnu): Fix typo in comment.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/gcc-interface/trans.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/ada/gcc-interface/trans.cc b/gcc/ada/gcc-interfa
From: Alexandre Oliva
VxWorks 6 lacks pthread_condattr_setclock, so define CLOCK_RT_Ada to
CLOCK_REALTIME to use the dummy definition of
__gnat_pthread_condattr_setup in libgnarl/thread.c.
socket.c and sysdep.c use FD_ZERO, that relies on bzero on VxWorks 6.
We need to include strings.h to get a
From: Ronan Desplanques
A previous patch changed the mechanism of early usage detection for
discriminants but failed to update a couple of surrounding comments
accordingly. This patch fixes this omission.
gcc/ada/ChangeLog:
* sem_ch3.adb (Process_Discriminants): Update comments
Tested
Renamed local variables to make it easier to read.
gcc/ada/ChangeLog:
* gcc-interface/utils.cc (update_pointer_to): Renamed ptr/old_ptr,
ref/old_ref.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/gcc-interface/utils.cc | 31 ---
1 file cha
From: Bob Duff
Fix bug when an instance of Indefinite_Holders with a class-wide type is
passed as a generic formal package; Program_Error was raised when
dealing with the implicit "=" function.
The fix is to disable legality checks in formal packages when the
entity is an E_Subprogram_Body, beca
From: Eric Botcazou
The 3 units Ada.Calendar, GNAT.Calendar and GNAT.Sockets contain conversion
functions from the Duration fixed-point type that implement the same idiom
but with some inconsistencies:
* GNAT.Sockets only handles Timeval_Duration, i.e. positive Duration, and
is satisfactor
From: Steve Baird
Two follow-up fixes for the previous change for this issue.
gcc/ada/ChangeLog:
* exp_ch6.adb (Apply_Access_Discrims_Accessibility_Check): Do
nothing and simply return if either Ada_Version <= Ada_95 or if
the function being returned from lacks the extra
From: Ronan Desplanques
A recent patch introduced a new flag to mark the types for which looking
up finalization primitives needs special handling. But there was one
place in Build_Derived_Record_Type where the flag was not set when it
should, which introduced a regression in some cases.
This pa
From: Steve Baird
In some cases involving assigning an aggregate to a formal parameter of
an unconstrained discriminated subtype that has a Dynamic_Predicate, and where
the discriminated type also has a component of an unconstrained discriminated
subtype, the front end generates a malformed tree
From: Steve Baird
RM 6.5 defines static and dynamic checks to ensure that a function result
with one or more access discriminants will not outlive the entity
designated by a non-null access discriminant value (see paragraphs
5.9 and 21). Implement these checks. Also fix a bug in passing along
an
From: Tonu Naks
gcc/ada/ChangeLog:
* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
clarify parameter description.
* gnat_rm.texi: Regenerate.
Tested on x86_64-pc-linux-gnu, committed on master.
---
.../standard_and_implementation_defined_restriction
From: Gary Dismukes
The compiler mishandles nested use_type_clauses in the case where the
outer one is a normal use_type_clause and the inner one has "all".
Upon leaving the scope of the inner use_type_clause, the outer one
is effectively disabled, because it's not considered redundant (and
in fa
From: Piotr Trojanek
Fix missing checks for prefixes of array attributes in GNATprove mode.
gcc/ada/ChangeLog:
* sem_attr.adb (Eval_Attribute): Only fold array attributes when prefix
is static or at least safe to evaluate
Tested on x86_64-pc-linux-gnu, committed on master.
---
From: Ronan Desplanques
gcc/ada/ChangeLog:
* einfo.ads (Is_Controlled_Active): Fix pasto in comment.
* sem_util.ads (Propagate_Controlled_Flags): Update comment for
Destructor aspect.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/einfo.ads| 2 +-
From: Ronan Desplanques
Before this patch, Make_Init_Call and Make_Adjust_Call made the
assumption that if the type they were called with was untagged and a
derived type, it was the untagged private view of a tagged type. That
assumption made it possible to inspect the root type's primitives to
h
From: Denis Mazzucato
This patch makes sure that we return the same decision for all aliased
types when checking if the BIP task extra actuals are needed.
gcc/ada/ChangeLog:
* sem_ch6.adb (Might_Need_BIP_Task_Actuals): Before retrieving the
original corresponding
operation we r
From: Javier Miranda
The compiler generates wrong code in a dispatching call on result
when the call is performed under dependent conditional expressions
or case-expressions.
gcc/ada/ChangeLog:
* sinfo.ads (Is_Expanded_Dispatching_Call): New flag.
(Tag_Propagated): New flag.
From: Gary Dismukes
This change test an additional condition as part of the criteria used
for deciding whether to generate a call to a container type's Length
function (for passing to the Empty function) when determining the
size of the object to allocate for a bounded container aggregate
with a
From: Piotr Trojanek
When checking restriction No_Relative_Delay and detecting calls to
Ada.Real_Time.Timing_Events.Set_Handler with a Time_Span parameter,
we looked at the exact type of the actual parameter, while we should
look at its base type.
This patch looks at the type of actual parameter
From: Steve Baird
Fix bugs related to mutably tagged types in streaming operations, Put_Image
attributes, aggregates, composite equality comparisons with mutably-tagged
components, and other issues.
gcc/ada/ChangeLog:
* exp_aggr.adb (Build_Record_Aggr_Code.Gen_Assign): In the case of
From: Ronan Desplanques
This patch adds a GNAT-specific extension which enables "destructors".
Destructors are an optional replacement for Ada.Finalization where some
aspects of the interaction with type derivation are different.
gcc/ada/ChangeLog:
* doc/gnat_rm/gnat_language_extensions
From: Gary Dismukes
Minor change to satisfy GNAT SAS checker.
gcc/ada/ChangeLog:
* exp_aggr.adb (Build_Size_Expr): Change test of "not Present (...)"
to "No (...)".
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/exp_aggr.adb | 3 +--
1 file changed, 1 inserti
From: Eric Botcazou
The assertion is:
pragma Assert (Side_Effect_Free (L));
in Make_Tag_Ctrl_Assignment and demonstrates that the sequence:
Remove_Side_Effects (L);
pragma Assert (Side_Effect_Free (L));
does not hold in this case.
What happens is that Remove_Side_Effects uses a ren
From: Eric Botcazou
That's a kludge added to work around the limitations of the stack checking
mechanism used in the early days.
gcc/ada/ChangeLog:
* exp_util.ads (May_Generate_Large_Temp): Delete.
* exp_util.adb (May_Generate_Large_Temp): Likewise.
(Safe_Unchecked_Type_
From: Martin Clochard
Continue being a non-reserved keyword, occurrences of continue may
be resolved as procedure calls. Get that special case out of the
way for GNATprove, in anticipation of support for continue keyword.
gcc/ada/ChangeLog:
* exp_spark.adb (Expand_SPARK): Add expansion
From: Steve Baird
Define a new function which, initially, is never called.
It is intended to be called from CCG. If an Ada tagged record type
has a component named Foo, then the generated corresponding C struct
might have a component with the same name. This approach almost works,
but breaks down
From: Javier Miranda
Add support to create the extra formals when the underlying type
of some formal type or return type of a subprogram, subprogram type
or entry is not available when the entity is frozen. For example,
when a function that returns a private type is frozen before the
full-view of
From: Piotr Trojanek
When GNAT is operating in GNATprove_Mode the Expander_Active flag is disabled,
but we still must do things that ordinary backends expect.
gcc/ada/ChangeLog:
* sem_util.adb (Get_Actual_Subtype): Do the same for GCC and GNATprove
backends.
Tested on x86_64-pc
From: Denis Mazzucato
This patch checks the presence of No_Task_Parts on any ancestor or
inherited interface, not only its root type, since No_Task_Parts
prohibits tasking for any of its descendant. In case the current
subprogram is overridden/inherited, we need to return the same value
we would
From: Gary Dismukes
In the case of a container aggregate that has a container_element_association
given by an iterator_specification that iterates over a container object
(for example, "[for E of V => E]"), the compiler will now determine the
number of elements in the object and can use that in d
From: Viljar Indus
Some analysis requires going up the parent chain to get the
relevant context. Ensure that is done for the Expression_Copy
node which is not a syntactic node.
gcc/ada/ChangeLog:
* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations):
Ensure the Expression_Copy al
From: Ghjuvan Lacambre
A recent commit modified exp_util.adb in order to fix the selection of
Finalize subprograms in the case of untagged objects.
This introduced regressions for GNATSAS in fixedbugs by causing
GNAT2SCIL to loop over the same type over and over in case of broken
code.
We fix thi
From: Eric Botcazou
This comes from a missing expansion of the bit-packed array reference in
the loop, because the actual subtype created for the dereference lacks a
Packed_Array_Impl_Type as it is ultimately created by the Preanalyze_Range
call present in Analyze_Loop_Statement.
gcc/ada/ChangeL
On Mon Jul 21, 2025 at 6:27 PM CEST, Stefan Schulze Frielinghaus wrote:
> Bootstrapped successfully on s390x and tests dg.exp=asm-hard-reg-\*.c
> and s390.exp=asm-hard-reg-\*.c are successful, too. Ok for mainline?
FYI, I've created https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121201, you may
wan
From: Gary Dismukes
The compiler incorrectly treats an overriding private subprogram that
should not be visible outside a package (because it only overrides in
the private part) as a possible interpretation for a call using prefixed
notation outside of the package. This can result in an ambiguity
From: Javier Miranda
gcc/ada/ChangeLog:
* exp_aggr.adb (Gen_Assign): Code cleanup.
(Initialize_Component): Do not adjust the tag when the type of
the aggregate components is a mutably tagged type.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/exp_aggr
From: Steve Baird
In some cases involving a generic with two formal parameters, a formal package
and a formal derived type that is derived from an interface type declared in
the formal package, a legal instantiation of that generic is rejected with a
message incorrectly stating that the second ac
From: Bob Duff
...because it breaks one test that uses --RTS=light.
"Is_Composite_Type" is needed; "not Is_Scalar_Type"
was wrong.
gcc/ada/ChangeLog:
* tbuild.adb (Unchecked_Convert_To): Back out
change.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/tbuild.a
When inlining function calls that return on the secondary stack used as
function actual or in a return statement, the compiler creates an
invalid GNAT Tree with a variable of an unconstrained type without an
initializer.
Also add an extra assertion to catch problematic cases directly in
Expand_Inl
From: Piotr Trojanek
For non-instance units GNAT builds elaboration entities before the ghost mode
is inherited from those units. However, for generic instances GNAT was building
elaboration entities with ghost mode inherited from those instances, which
effectively caused elaboration entities to
From: Eric Botcazou
The second problem occurs on 64-bit platforms where there is a second Out
parameter that is smaller than the access parameter, creating a hole in the
return structure.
gcc/ada/ChangeLog:
* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): In the case of a
sub
From: Eric Botcazou
The debugger cannot correctly interpret the return value in this case.
gcc/ada/ChangeLog:
* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Only apply the
transformation to integer types.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/gc
From: Steve Baird
If -gnatwr is enabled, then in some cases a type conversion between two
different Boolean types incorrectly results in a warning that the conversion
is redundant.
gcc/ada/ChangeLog:
* sem_res.adb (Resolve_Type_Conversion): Replace code for
detecting a similar c
From: Eric Botcazou
Initialization procedures are turned into functions under the hood and, even
when they are null (empty), the compiler may generate a convoluted sequence
of instructions that return uninitialized data and, therefore, is useless.
gcc/ada/ChangeLog:
* gcc-interface/tran
From: Eric Botcazou
This happens when aggressive optimizations are enabled (i.e. -O2 and above)
because the ivopts pass fails to properly mark the new memory accesses it is
creating as misaligned by means of the build_aligned_type function.
gcc/ada/ChangeLog:
* gcc-interface/utils.cc (m
From: Eric Botcazou
We need to make sure that an integer type exists for the given size.
gcc/ada/ChangeLog:
* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Add guards.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/gcc-interface/decl.cc | 4
1 file changed,
From: Bob Duff
Improve documentation of pragma Short_Circuit_And_Or.
Also disallow renamings, because the semantics as currently
implemented is confusing.
gcc/ada/ChangeLog:
* doc/gnat_rm/implementation_defined_pragmas.rst
(Short_Circuit_And_Or): Add more documentation.
From: Eric Botcazou
We fail to use the implementation permission given by RM 13.9(12) because
the array type does not have the Size_Known_At_Compile_Time flag set.
gcc/ada/ChangeLog:
* freeze.adb (Check_Compile_Time_Size): Try harder to see whether
the bounds of array types are
From: Steve Baird
Improve the error message that is generated when the size of tagged type
exceeds a Size'Class limit specified for an ancestor type.
gcc/ada/ChangeLog:
* mutably_tagged.adb (Make_CW_Size_Compile_Check): Include the
value of the Size'Class limit in the message ge
From: Ronan Desplanques
The newly introduced Finalizable aspect makes it possible to derive from
a type that is not tagged but has a Finalize primitive. This patch fixes
problems where overridings of the Finalize primitive were ignored.
gcc/ada/ChangeLog:
* exp_ch7.adb (Make_Final_Call)
From: Piotr Trojanek
Cleanup; technical commit meant to trigger a GNAT continuous builder.
gcc/ada/ChangeLog:
* sem_aux.ads (First_Discriminant): Remove space before period.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_aux.ads | 2 +-
1 file changed, 1 insertio
From: Steve Baird
Even when -gnatw.c is enabled, no warning about a missing component clause
should be generated if the placement of a discriminant of an Unchecked_Union
type is left unspecified in a record representation clause (such a discriminant
occupies no storage). In determining whether to
From: Ronan Desplanques
The format string used for the error in that case requires setting the
Error_Msg_Name_1 global variable. This was not done so this patch adds
the missing assignment.
gcc/ada/ChangeLog:
* sem_ch13.adb (Analyze_Aspect_Specifications): Fix error emission.
Tested on
From: Ronan Desplanques
This patch removes some comments and object definitions that referred to
a hacky use of the Entity field that had been removed by the latest
rework of the internal representation of aspects.
gcc/ada/ChangeLog:
* sem_ch13.adb (Check_Aspect_At_Freeze_Point): Remove
From: Eric Botcazou
This implements the Is_Constr_Array_Subt_With_Bounds flag for allocators.
gcc/ada/ChangeLog:
* gcc-interface/trans.cc (gnat_to_gnu) : Allocate the
bounds alongside the data if the Is_Constr_Array_Subt_With_Bounds
flag is set on the designated type.
From: Eric Botcazou
This is a small regression introduced a few years ago.
gcc/ada/ChangeLog:
* gcc-interface/decl.cc (gnat_to_gnu_component_type): Validate the
Component_Size like the size of a type only if the component type
is actually packed.
Tested on x86_64-pc-lin
From: Piotr Trojanek
Ada RM 6.5(5.3/5) is about "result SUBTYPE of the function", while the error
message was saying "result TYPE of the function". Now use the exact RM wording
in the error message for this rule.
gcc/ada/ChangeLog:
* sem_ch3.adb (Check_Return_Subtype_Indication): Adjust
From: Eric Botcazou
The record type of the return object is unnecessarily given BLKmode.
gcc/ada/ChangeLog:
* gcc-interface/decl.cc (type_contains_only_integral_data): Do not
return false only because the type contains pointer data.
Tested on x86_64-pc-linux-gnu, committed on m
From: Eric Botcazou
The problem is that the sorting algorithm mixes components of variants.
gcc/ada/ChangeLog:
* repinfo.adb (First_Comp_Or_Discr.Is_Placed_Before): Return True
only if the components are in the same component list.
Tested on x86_64-pc-linux-gnu, committed on ma
From: Bob Duff
Remove "Nmake_Assert => ..." on N_Unchecked_Type_Conversion at
gen_il-gen-gen_nodes.adb:473 (was disabled).
This was left over from commit 82a794419a00ea98b68d69b64363ae6746710de9
"Tbuild cleanup".
In addition, the checks for "Is_Composite_Type" in
Tbuild.Unchecked_Convert_To are
From: Ronan Desplanques
gcc/ada/ChangeLog:
* exp_ch6.adb (Expand_Ctrl_Function_Call): Precisify comment.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/exp_ch6.adb | 9 +
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/gcc/ada/exp_ch6.adb b/gcc/a
From: Daniel King
This unit performed integer to address conversions to calculate stack addresses
which, on a CHERI target, result in an invalid capability that triggers a
capability tag fault when dereferenced during stack filling. This patch updates
the unit to preserve addresses (capabilities)
From: Eric Botcazou
Declarations of return objects are not (yet) distributed into the dependent
expressions of conditional expressions.
gcc/ada/ChangeLog:
* exp_ch6.adb (Expand_Ctrl_Function_Call): Do not bail out for the
declarations of return objects.
Tested on x86_64-pc-linu
From: Piotr Trojanek
When extended return statement declares object using an explicit subtype
indication, then it is better to recover the original unconstrained type using
the explicit subtype indication. This appears to be necessary for subtypes with
predicates.
gcc/ada/ChangeLog:
* s
From: Denis Mazzucato
When dispatching in a Default_Initial_Condition, copying the condition
node crashes if there is a, possibly nested, parameterless function as
actual parameter; there were two issues:
1. Subp_Entity in Check_Dispatching_call was uninitialized, a GNAT SAS
finding.
2. The co
From: Piotr Trojanek
A nested aggregate with a single "others => <>" clause is equivalent to a box
itself. Code cleanup; semantics is unaffected.
gcc/ada/ChangeLog:
* errid.ads (Diagnostic_Entries): Remove nested aggregate.
* errsw.adb (Switches): Likewise.
Tested on x86_64-pc-
From: Piotr Trojanek
Legality checks in extended return statements were (almost) literally
implementing the RM rules, but the when analyzing the return object declaration
we replace the nominal subtype of that object with its constrained subtype.
(It is a bit odd to have such an expansion activit
From: Eric Botcazou
This happens when the chain of initialization procedures is called on the
subcomponents and causes the creation of temporaries along the way out of
alignment considerations. Now these temporaries are not necessary in the
context and were not created until recently, so this ge
From: Eric Botcazou
The OK_Convert_To function already sets the Etype of its result.
gcc/ada/ChangeLog:
* exp_imgv.adb (Expand_Value_Attribute): Do not call Set_Etype on N
after rewriting it by means of OK_Convert_To.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gc
From: Eric Botcazou
The constraint is that the Object_Size must be a multiple of the alignment
in bits. But it's enforced only when the value of the clause is lower than
the Value_Size rounded up to the alignment in bits, not for larger values.
gcc/ada/ChangeLog:
* gcc-interface/decl.c
From: Piotr Trojanek
Diagnostic entries are not supposed to be modified while compiling the code.
Code cleanup; behavior is unaffected.
gcc/ada/ChangeLog:
* errid.ads (Diagnostic_Entries): Now a constant.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/errid.ads | 2 +
From: Ronan Desplanques
Insert_Actions performs a sanity check when it goes through an
expression with actions while going up the three. That check was not
perfectly right before this patch and spuriously failed when inserting
range checks in some situation. This patch makes the check more robust
From: Ronan Desplanques
gcc/ada/ChangeLog:
* exp_ch7.adb (Build_Record_Deep_Procs): Fix typo in comment.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/exp_ch7.adb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch
From: Ronan Desplanques
The Finalizable aspect introduced controlled types for which not all the
finalization primitives exist. This patch makes Make_Deep_Record_Body
handle this case correctly.
gcc/ada/ChangeLog:
* exp_ch7.adb (Make_Deep_Record_Body): Fix case of absent Initialize
From: Eric Botcazou
This happens for very large Smalls with regard to the size of the mantissa,
because the prerequisites of the implementation used in this case are not
met, although they are documented in the head comment of Integer_To_Fixed.
This change documents them at the beginning of the
From: Piotr Trojanek
Fix an assertion failure occurring when elaboration checks were applied to
subprogram with a separate body.
gcc/ada/ChangeLog:
* sem_elab.adb (Check_Overriding_Primitive): Find early call region
of the subprogram body declaration, not of the subprogram body
From: Piotr Trojanek
Code cleanup; semantics is unaffected.
gcc/ada/ChangeLog:
* exp_tss.adb (TSS): Refactor IF condition to make code smaller.
* lib.adb (Increment_Serial_Number, Synchronize_Serial_Number):
Use type of renamed object when creating renaming.
* li
From: Ronan Desplanques
This patch fixes a misnaming of Make_Predefined_Primitive_Specs in a
comment.
gcc/ada/ChangeLog:
* exp_ch3.adb (Predefined_Primitive_Bodies): Fix comment.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/exp_ch3.adb | 2 +-
1 file changed, 1 ins
From: Ronan Desplanques
Since the introduction of the Finalizable aspect, there can be types
for which Is_Controlled returns True but that don't have all three
finalization primitives. The Generate_Finalization_Actions raised an
exception in that case before this patch, which fixes the problem.
From: Piotr Trojanek
To reliably retrieve the nominal unconstrained type of object declared in
extended return statement we need to rely on the Original_Node.
gcc/ada/ChangeLog:
* sem_ch3.adb (Check_Return_Subtype_Indication): Use Original_Node.
Tested on x86_64-pc-linux-gnu, committed
From: Ronan Desplanques
This patch fixes a comment that wrongly stated that no dispatch entry
for deep finalize was created for limited tagged types.
gcc/ada/ChangeLog:
* exp_ch3.adb (Make_Predefined_Primitive_Specs): Fix comment.
Tested on x86_64-pc-linux-gnu, committed on master.
--
From: Bob Duff
Minor stylistic improvement: Remove Empty_Or_Error, and replace
comparisons with Empty_Or_Error with "[not] in Empty | Error".
(Found while working on VAST.)
gcc/ada/ChangeLog:
* types.ads (Empty_Or_Error): Remove.
* atree.adb: Remove reference to Empty_Or_Error.
From: Eric Botcazou
This adjusts the header of the renamed files and adds missing blank lines.
gcc/ada/ChangeLog:
* errid.ads: Adjust header to renaming and fix copyright line.
* errid.adb: Adjust header to renaming and add blank line.
* erroutc-pretty_emitter.ads: Adjus
From: Gary Dismukes
In cases involving instantiation of a generic child unit, the visibility
of the parent unit was mishandled, allowing the parent to be referenced
in another compilation unit that has visibility of the child instance
but no with_clause for the parent of the instance.
gcc/ada/Ch
From: Viljar Indus
Calling Semantics here will additionally update the reference to
Current_Sem_Unit the renamed unit so that we will not receive
bogus visibility errors when checking for self-referential with-s.
gcc/ada/ChangeLog:
* sem_ch10.adb(Analyze_With_Clause): Call Semantics ins
From: Ronan Desplanques
The Finalizable aspect makes it possible that
Insert_Actions_In_Scope_Around is entered with an empty list of after
actions. This patch fixes a condition that was not quite right in this
case.
gcc/ada/ChangeLog:
* exp_ch7.adb (Insert_Actions_In_Scope_Around): Fix
From: Bob Duff
A "return;" at the end of a procedure is unnecessary and
misleading. This patch removes them.
gcc/ada/ChangeLog:
* checks.adb: Remove unnecessary "return;" statements.
* eval_fat.adb: Likewise.
* exp_aggr.adb: Likewise.
* exp_attr.adb: Likewise.
From: Piotr Trojanek
Code cleanup; semantics is unaffected.
gcc/ada/ChangeLog:
* exp_ch3.adb (Count_Default_Sized_Task_Stacks): Refine subtypes of
parameters; same for callsites.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/exp_ch3.adb | 14 +++---
From: Aleksandra Pasek
gcc/ada/ChangeLog:
* libgnat/a-strsup.adb (Super_Delete): Fix index check.
* libgnat/a-stwisu.adb (Super_Delete): Likewise.
* libgnat/a-stzsup.adb (Super_Delete): Likewise.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/libgnat/a
From: Piotr Trojanek
When navigating the AST to find the enclosing subprogram we must traverse
from subunits to the corresponding stub.
gcc/ada/ChangeLog:
* lib-xref-spark_specific.adb
(Enclosing_Subprogram_Or_Library_Package): Traverse subunits and body
stubs.
Tested o
From: Eric Botcazou
The problem is that a temporary is created for the conversion because of the
representation change, and it is finalized without having been initialized.
gcc/ada/ChangeLog:
* exp_ch4.adb (Handle_Changed_Representation): Alphabetize local
variables. Set the No
1 - 100 of 2036 matches
Mail list logo