From: Ronan Desplanques
gcc/ada/
* sem_ch12.adb (Save_And_Reset): Fix value of low bound used to
reset table.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_ch12.adb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/ada/sem_ch12.adb b
From: Justin Squirek
This patch modifies the experimental 'Size'Class feature such that objects of
mutably tagged types can be assigned qualified expressions featuring a
definite type (e.g. Mutable_Obj := Root_Child_T'(Root_T with others => <>)).
gcc/ada/
* sem_ch5.adb:
(Analyze
From: Steve Baird
In some cases, a use clause (or a use type clause) occurring within a
protected operation is incorrectly ignored.
gcc/ada/
* exp_ch9.adb
(Expand_N_Protected_Body): Declare new procedure
Unanalyze_Use_Clauses and call it before analyzing the newly
From: Eric Botcazou
This lifts the limitation of the original implementation whereby the first
operand of the concatenation needs to have a length known at compiled time
in order for the static allocation to be used.
gcc/ada/
* exp_ch4.adb (Expand_Concatenate): In the case where an oper
From: Steve Baird
The compiler incorrectly accepts Some_Object'Unchecked_Access'Image.
gcc/ada/
* sem_attr.adb
(Analyze_Image_Attribute.Check_Image_Type): Check for
E_Access_Attribute_Type prefix type.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/se
From: Philippe Gil
The parameters should be swapped to fit Fileapi.h documentation.
BOOL LocalFileTimeToFileTime(
[in] const FILETIME *lpLocalFileTime,
[out] LPFILETIME lpFileTime
);
gcc/ada/
* libgnat/s-win32.ads (LocalFileTimeToFileTime): Swap parameters.
Tested o
From: Eric Botcazou
The profile of the procedure built for an allocation on the secondary stack
now includes the alignment parameter, so the parameter can just be forwarded
in the call to Allocate_Any_Controlled.
gcc/ada/
* exp_util.adb (Build_Allocate_Deallocate_Proc): Pass the alignme
From: Justin Squirek
This patch fixes an error in the compiler whereby a selected component on the
left hand side of an assignment statement may not get marked as referenced -
leading to spurious unreferenced warnings on such objects.
gcc/ada/
* sem_util.adb (Set_Referenced_Modified): U
From: Yannick Moy
The Ghost assertion policy relevant for analyzing a generic instantiation
is the Ghost policy at the point of instantiation, not the one applicable
for the generic itself.
gcc/ada/
* ghost.adb (Mark_And_Set_Ghost_Instantiation): Fix the current
Ghost policy for
From: Eric Botcazou
The call to Build_Allocate_Deallocate_Proc must occur before the special
accessibility check for class-wide allocation is generated, because this
check comes with cleanup code.
gcc/ada/
* exp_ch4.adb (Expand_Allocator_Expression): Move the first call to
Build
From: Javier Miranda
Add missing support for RM 10.2/5: the region for a pragma
Assertion_Policy given as a configuration pragma is the
declarative region for the entire compilation unit (or units)
to which it applies.
gcc/ada/
* sem_ch10.adb (Install_Inherited_Policy_Pragmas): New subp
From: Steve Baird
There was an earlier bug in determining the accumulator subtype for a
reduction expression in the case where the reducer subprogram is overloaded.
The fix for that bug introduced a recently-discovered
regression. Redo accumulator subtype computation in order to address
this regr
From: Gary Dismukes
The compiler may either crash or incorrectly report errors when
a component association in a container aggregate is an if_expression
with an elsif part whose dependent expression is a call to a function
returning a result that requires finalization. The compiler complains
that
From: Steve Baird
During analysis of an instantiation, Sem_Ch12 manages formal/actual binding
information in package state (see Sem_Ch12.Generic_Renamings_HTable).
A call to rtsfind can cause another unit to be loaded and compiled.
If this occurs during the analysis of an instantiation, and if th
From: Ronan Desplanques
This patch fixes a crash when the compiler emits a warning about
an unchecked conversion and -gnatdJ is enabled.
gcc/ada/
* sem_ch13.adb (Validate_Unchecked_Conversions): Add node
parameters to Error_Msg calls.
Tested on x86_64-pc-linux-gnu, committed on
From: Steve Baird
In the case of an untagged composite type, the compiler does not generate
streaming-related subprograms or a Put_Image procedure when the type is
declared. Instead, these subprograms are declared "on demand" when a
corresponding attribute reference is encountered. In this case,
From: Ronan Desplanques
Before this patch, some warnings about overlapping actuals were
emitted regardless of the Value of
Warnsw.Warnings_Package.Warn_On_Overlap. This patch fixes this.
gcc/ada/
* sem_warn.adb (Warn_On_Overlapping_Actuals): Stop ignoring
warning suppression set
From: Eric Botcazou
This eliminates a few oddities present in the expander for allocators and
aggregates present in allocators:
- Convert_Array_Aggr_In_Allocator takes both a Decl and Alloc parameters,
and inserts new code before Alloc for records and after Decl for arrays
through Conv
From: Steve Baird
If -gnatX0 is specified, we allow case statements with a selector
expression of a record or array type, but not of a private type.
If the selector expression is of a private type then we should generate
an appropriate error message instead of a bugbox.
gcc/ada/
* sem_c
From: Eric Botcazou
Now that Default_Initialize_Object honors the No_Initialization flag in all
cases, objects of an access type declared without initialization expression
can no longer be considered as being automatically initialized to null.
gcc/ada/
* exp_ch3.adb (Expand_N_Object_Dec
From: Eric Botcazou
The allocation strategy for objects of a discriminated type with defaulted
discriminants is not the same when the allocation is dynamic as when it is
static (i.e a declaration): in the former case, the compiler allocates the
default size whereas, in the latter case, it allocat
gcc/ada/
* sem_util.adb: Typo fix in comment.
* exp_aggr.adb: Likewise.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/exp_aggr.adb | 2 +-
gcc/ada/sem_util.adb | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcc/ada/exp_aggr.adb b/gcc/a
From: Ronan Desplanques
Before this patch, the default status of -gnatw.i and -gnatw.d are
reported incorrectly in the usage string used throughout GNAT tools.
This patch fixes this.
gcc/ada/
* usage.adb (Usage): Fix enabled-by-default indicators.
Tested on x86_64-pc-linux-gnu, committ
From: Steve Baird
Fix constructs that were flagged by CodePeer.
gcc/ada/
* exp_attr.adb: Replace 6 "not Present" tests with equivalent calls to
"No".
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/exp_attr.adb | 12 ++--
1 file changed, 6 insertions(+), 6 de
From: Ronan Desplanques
This patch tweaks the calls made to Errout subprograms to report
violations of dependence restrictions, in order fix a crash that
occurred with -gnatdJ and -fdiagnostics-format=json.
gcc/ada/
* restrict.adb (Violation_Of_No_Dependence): Tweak error
report
From: Ronan Desplanques
This patch makes it so the diagnostics coming from occurrences of
pragma Compile_Time_Error and Compile_Time_Warning are emitted with
a node parameter so they don't cause a crash when -gnatdJ is enabled.
gcc/ada/
* errout.ads (Error_Msg): Add node parameter.
From: Ronan Desplanques
This patch makes it so -gnatyz style checks reports specify a node
ID. That is required since those checks are sometimes made during
semantic analysis of short-circuit operators, where the Current_Node
mechanism that -gnatdJ uses is not operational.
Check_Xtra_Parens_Prec
From: Ronan Desplanques
A previous change introduced an error in the diagnostic message about
overlapping actuals. This commit fixes this.
gcc/ada/
* sem_warn.adb (Warn_On_Overlapping_Actuals): Fix typo.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_warn.adb | 2
From: Ronan Desplanques
A recent change broke pragma Warnings when -gnatD is enabled in some
cases. This patch fixes this by caching more slocs at times when it's
known that they haven't been modified by -gnatD.
gcc/ada/
* errout.adb (Validate_Specific_Warnings): Adapt to record
From: Eric Botcazou
This decouples the attachment to the appropriate finalization collection of
dynamically allocated objects that need finalization from their allocation.
The current implementation immediately attaches them after allocating them,
which means that they will be finalized even if
From: Ronan Desplanques
This patch fixes a crash when -gnatdJ is enabled and a warning
must be emitted about an ineffective pragma Warnings clause.
Some modifications are made to the specific warnings machinery so
that warnings carry the ID of the pragma node they're about, so the
-gnatdJ mechan
From: Steve Baird
A recent change to reduce duplication of compiler-generated Put_Image and
streaming subprograms introduced two regressions. One is yet another of the
many cases where generating these routines "on demand" (as opposed at the
point of the associated type declaration) requires loos
From: Eric Botcazou
gcc/ada/
* exp_ch7.adb (Finalization Management): Add a short description of
the implementation of finalization chains.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/exp_ch7.adb | 29 +
1 file changed, 29 insert
From: Piotr Trojanek
The implementation of User_Aspect_Definition uses subtype
Boolean_Aspects to decide which existing aspects can be used to define
old aspects. This subtype didn't include many of the SPARK aspects,
notably the Always_Terminates.
gcc/ada/
* aspects.ads (Aspect_Id, Boo
From: Piotr Trojanek
Error messages should not start with a capital letter.
gcc/ada/
* gnat_cuda.adb (Remove_CUDA_Device_Entities): Fix casing
(this primarily fixes a style, because the capitalization will
not be preserved by the error-reporting machinery anyway).
From: Piotr Trojanek
Fix various inconsistencies in documentation and comments of
Boolean-valued aspects.
gcc/ada/
* doc/gnat_rm/implementation_defined_pragmas.rst: Fix
documentation.
* sem_prag.adb: Fix comments.
* gnat_rm.texi: Regenerate.
Tested on x86_64-pc-
From: Piotr Trojanek
Code cleanup; semantics is unaffected.
gcc/ada/
* sem_ch13.adb (Analyze_Aspect_Specification): Consistently
reuse existing constant where possible.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_ch13.adb | 10 +-
1 file change
From: Piotr Trojanek
Code cleanup.
gcc/ada/
* aspects.ads (Aspect_Id): Fix ordering.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/aspects.ads | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/ada/aspects.ads b/gcc/ada/aspects.ads
index eb5
From: Steve Baird
Copying a node does not automatically propagate its associated dimension
information (if any). This must be done explicitly.
gcc/ada/
* sem_util.adb (Copy_Node_With_Replacement): Add call to
Copy_Dimensions so that any dimension information associated with
From: Piotr Trojanek
Code cleanup.
gcc/ada/
* sem_prag.adb (Analyze_Pragma): Move case alternative to match
to alphabetic order.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_prag.adb | 160 +--
1 file changed, 80
From: Eric Botcazou
This changes the implementation of finalization collections from using the
global task lock to using per-collection spinlocks. Spinlocks are a good
fit in this context because they are very cheap and therefore can be taken
with a fine granularity only around the portions of c
From: Piotr Trojanek
Fix typo in error message; semantics is unaffected.
gcc/ada/
* gnat_cuda.adb (Remove_CUDA_Device_Entities): Fix typo.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/gnat_cuda.adb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a
From: Piotr Trojanek
Error messages now capitalize CUDA.
gcc/ada/
* erroutc.adb (Set_Msg_Insertion_Reserved_Word): Fix casing for
CUDA appearing in error message strings.
(Set_Msg_Str): Likewise for CUDA being a part of a Name_Id.
Tested on x86_64-pc-linux-gnu, committe
From: Steve Baird
In deciding whether a Size attribute reference is static, the compiler could
get confused about whether an implicitly-declared subtype of a generic formal
type is itself a generic formal type, possibly resulting in an assertion
failure and then a bugbox.
gcc/ada/
* sem
From: Piotr Trojanek
Code cleanup; semantics is unaffected.
gcc/ada/
* sem_ch13.adb (Analyze_Aspect_Specification): Consistently
reuse existing constant where possible.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_ch13.adb | 10 +-
1 file change
From: Viljar Indus
In the Two_Pass_Aggregate_Expansion we were removing
all of the entity links in the Iterator_Specification
to avoid reusing the same Iterator_Definition in both
loops.
However this approach was also breaking the links to
calls with dot notation that had been transformed to
the
From: Piotr Trojanek
Fix assertion failure in developer builds which happened when the THEN
expression contains an illegal occurrence of 'Old and the type of the
THEN expression is left as Any_Type, but there is no ELSE expression.
gcc/ada/
* sem_ch4.adb (Analyze_If_Expression): Add gua
From: Ronan Desplanques
Checks.Get_Ranged_Checks was onced named Range_Check, and a few
comments referred to it by that name before this commit. To avoid
confusion with Types.Range_Check, this commits fixes those comments.
gcc/ada/
* checks.ads: Fix comments.
* checks.adb: Likew
From: Ronan Desplanques
This commit makes the emission of -gnatw_q warnings pass node information
so as to handle the enclosing subprogram display of -gnatdJ instead of
crashing.
gcc/ada/
* exp_ch4.adb (Expand_Composite_Equality): Call Error_Msg_N
instead of Error_Msg.
Tested o
From: Piotr Trojanek
Sync Has_Aspect_Specifications_Flag with the actual flags in the AST.
Code cleanup; behavior is unaffected.
gcc/ada/
* gen_il-gen-gen_nodes.adb (N_Procedure_Specification): Remove
Aspect_Specifications field.
Tested on x86_64-pc-linux-gnu, committed on mast
From: Piotr Trojanek
Fix a small glitch in routine Is_Known_On_Entry, which returned False
for all if_expressions, regardless whether their conditions or dependent
expressions are known on entry.
gcc/ada/
* sem_util.adb (Is_Known_On_Entry): Check whether condition and
dependent
From: Eric Botcazou
Dynamically-allocated controlled objects are attached to a finalization
collection by means of a hidden header placed right before the object,
which means that the size effectively allocated must naturally account
for the size of this header. But the allocation must also acco
From: Eric Botcazou
This occurs in the additional case of RM 3.9.3(10) in Ada 2012, that is to
say the access controlling result, because the implementation does not use
the same (correct) conditions as in the original case.
This factors out these conditions and uses them in both cases, as well
From: Steve Baird
A recent change to reduce duplication of compiler-generated Put_Image and
streaming subprograms introduced some regressions. The fix for one of them
was incomplete.
gcc/ada/
* exp_attr.adb (Build_And_Insert_Type_Attr_Subp): Further tweaking
of the point where a
From: Ronan Desplanques
This patch fixes the reason code used by Apply_Selected_Length_Checks,
which was wrong in some cases when the check could be determined to
always fail at compile time.
gcc/ada/
* checks.adb (Apply_Selected_Length_Checks): Fix reason code.
Tested on x86_64-pc-lin
From: Eric Botcazou
The values returned by Header_Alignment and Header_Size are known at compile
time and powers of two on almost all platforms, so inlining them by means of
an expression function improves the object code generated for alignment and
size calculations involving them.
gcc/ada/
From: Piotr Trojanek
When emitting call graph information, we already skipped calls to
ignored ghost entities, but this code was causing crashes (in production
builds) and assertion failures (in development builds), because the
ignored ghost entities are not fully decorated, e.g. when they come f
From: Viljar Indus
The compiler triggers warnings on generated protected procedures
if the procedure does not have an explicit spec. Instead check
if the body was created for a protected procedure if the spec
is not present.
gcc/ada/
* sem_ch6.adb (Analyze_Subprogram_Body_Helper):
When an array's initialization contains a `others =>` clause with an
expression that involves finalization, the resulting scope information
is incorrect and can cause crashes with backend (i.e. gnat-llvm) that
also use unnesting. The observable symptom is a nested object
declaration (created by the
From: Eric Botcazou
This aligns finalization collections with finalization masters when it comes
to propagating an exception raised by the finalization of a specific object,
by always propagating Program_Error instead of the aforementioned exception.
gcc/ada/
* libgnat/s-finpri.adb (Rai
From: Sebastian Poeplau
Define PATH_SEPARATOR and HOST_EXECUTABLE_SUFFIX in standalone MinGW
builds; the definitions normally come from GCC, and the defaults don't
work for native Windows.
gcc/ada/
* adaint.c: New defines for STANDALONE mode.
Tested on x86_64-pc-linux-gnu, committed on
From: Piotr Trojanek
Routine New_Occurrence_Of itself sets the Etype of its result; there is
no need to set it explicitly afterwards.
Code cleanup related to fix for attribute 'Old; semantics is unaffected.
gcc/ada/
* exp_ch13.adb (Expand_N_Free_Statement): After analysis, the
From: Ronan Desplanques
gcc/ada/
* sem_util.ads (Check_Function_Writable_Actuals): Fix comment.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_util.ads | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/ada/sem_util.ads b/gcc/ada/sem_util.ads
From: Ronan Desplanques
This fixes an issue where length checks were not generated when the
right-hand side of an assigment involved a case expression.
gcc/ada/
* sem_res.adb (Resolve_Case_Expression): Add length check
insertion.
* exp_ch4.adb (Expand_N_Case_Expression):
From: Gary Dismukes
Constraint_Error is raised on evaluation of a container aggregate with
a loop_parameter_specification for the type Indefinite_Vector. This
happens due to the Aggregate aspect for type Indefinite_Vector specifying
the Empty_Vector constant for the type's Empty operation rather
From: Steve Baird
In some cases with validity checking enabled via the -gnatVa option,
the compiler generates validity checks that can (obviously) never fail.
These include validity checks for (some) static expressions, and consecutive
identical checks generated for a single read of an object.
g
When unnesting, the compiler gathers elaboration code and wraps it with
a new dedicated procedure. While doing so, it resets the scopes of
entities that are wrapped to point to this new procedure. This change
also resets the scopes of N_Object_Declaration and
N_Object_Renaming_Declaration nodes onl
From: Eric Botcazou
gcc/ada/
* exp_ch7.adb (Attach_Object_To_Master_Node): Remove reference to a
transient object in comment.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/exp_ch7.adb | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a
From: Eric Botcazou
With the same level as for 'Size, that is to say, full evaluation of the
boolean expressions it may be contained in and handling of private types.
gcc/ada/
* sem_attr.adb (Analyze_Attribute) : Remove special
processing for pragma Compile_Time_{Warning,Error}.
From: Viljar Indus
Subtype indications were never analyzed if they were
within composite types. Analyze them explicitly within
Analyze_Component_Declaration.
gcc/ada/
* sem_ch3.adb (Analyze_Component_Declaration):
Add Range_Checks for Subtype_Indications
Tested on x86_64-pc-lin
From: Viljar Indus
gcc/ada/
* sem_ch3.adb (Analyze_Component_Declaration):
Apply range checks only for Scalar_Types to
ensure that they have the Scalar_Range attribute.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_ch3.adb | 5 +++--
1 file change
From: Piotr Trojanek
The Tagged/Array/Record/Private types are mutually exclusive, so they
can be examined like with a case statement (except for records with
private extensions, but their handling is not affected by this change).
gcc/ada/
* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item
From: Steve Baird
In the function Local_Restrict.Active_Restriction, we traverse enclosing
scopes looking for a relevant Local_Restrictions aspect specification.
Fix a bug in this traversal.
gcc/ada/
* local_restrict.adb (Active_Restriction): When traversing scopes,
do not skip
gcc/ada/
* doc/gnat_rm/implementation_defined_attributes.rst: Fix
copy/paste.
* gnat_rm.texi: Regenerate.
* gnat_ugn.texi: Regenerate.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst | 7 +++
g
From: Ronan Desplanques
This patch removes two calls to Relocate_Node that were not needed.
This does not affect the behavior of the compiler.
gcc/ada/
* exp_ch4.adb (Expand_N_Case_Expression): Remove call to
Relocate_Node.
* sem_attr.adb (Analyze_Attribute): Likewise.
From: Piotr Trojanek
Objects of private types with unknown discriminants are now allowed as
inputs in the Depends contracts.
gcc/ada/
* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Allow objects
of private types with unknown discriminants.
Tested on x86_64-pc-linux-gnu, comm
From: Bob Duff
For an assignment statement "X := Y;", where X is a formal parameter
of a "late overriding" subprogram (i.e. it has no spec, and the body
is overriding), and the subtype of X is an unconstrained record with
defaulted discriminants, if the actual parameter passed to X is
unconstrain
From: Eric Botcazou
The flag is also used by the semantic analyzer.
gcc/ada/
* einfo.ads (Materialize_Entity): Document secondary usage.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/einfo.ads | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/
From: Ronan Desplanques
This patch moves a statement outside of a loop because it didn't
need to be inside that loop. The behavior of the program is not
affected.
gcc/ada/
* exp_aggr.adb (Flatten): Small cleanup.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/exp_agg
From: Steve Baird
Fix memory leaks in containers' Reference_Preserving_Key functions
Make the same change in each of 3 Ada.Containers child units: Ordered_Sets,
Indefinite_Ordered_Sets, and Bounded_Ordered_Sets. The function
Reference_Preserving_Key evaluates an allocator of type Key_Access whos
From: Piotr Trojanek
Remove redundant condition for detecting unconstrained record types.
Code cleanup; behavior is unaffected.
gcc/ada/
* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Remove call
to Has_Discriminants; combine ELSIF branches.
Tested on x86_64-pc-linux-gnu, c
From: Eric Botcazou
The first adjustment is to the expansion of implementation types for array
types with peculiar index types, for which the aliased property set on the
component of the original type must be copied; the implicit base type also
needs to be properly marked if the implementation ty
From: Ronan Desplanques
Before this patch, the compiler refrained from rewriting aggregates
into purely positional form in some cases of one-component aggregates.
As explained in comments, this was because the back end could not
handle positional aggregates in those situations.
As the back end s
From: Piotr Trojanek
Private type entities have Is_Constrained set when they have no
discriminants and no unknown discriminants; it is now set slightly
later, but simpler (this change could only affect Process_Discriminants,
but this flag should not be needed there).
Also, we now reuse this flag
From: Sebastian Poeplau
The Morello variant of Clang doesn't have
__builtin_code_address_from_pointer; work around it where necessary.
gcc/ada/
* raise-gcc.c: Work around __builtin_code_address_from_pointer
if it is unavailable.
Tested on x86_64-pc-linux-gnu, committed on maste
From: Ronan Desplanques
The documentation comments for Sem_Aggr.Resolve_Null_Array_Aggregate
suggested that this subprogram created a subtype, which it didn't.
This patch replaces those comments with ones that better match the
behavior.
gcc/ada/
* sem_aggr.adb (Resolve_Null_Array_Aggreg
From: Eric Botcazou
This replaces spinlocks with fully-fledged locks in finalization collections
because the former are deemed problematic with tasks that can be preempted.
Because of the requirement to avoid dragging the tasking runtime when it is
not necessary, the implementation goes through
From: Bob Duff
Correction to previous change; Asserts had been moved to
before Buf was initialized.
gcc/ada/
* uname.adb (Get_Unit_Name_String): Move Asserts after
Buf is initialized.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/uname.adb | 5 ++---
1 file
Since a recent refactor ("Factor common processing in expansion of
aggregates") where Initialize_Array_Component and
Initialize_Record_Component are merged, the behavior has slightly
changed. In the case of the expansion of an aggregate initialization
where the number of 'others' components is <= 3
From: Bob Duff
If a subprogram spec S is present while compiling something that
says "with S;", but the spec is absent while compiling the body
of S, then gnatbind fails to detect the mismatch. The spec and
body of S might have different parameter and result types.
This patch fixes gnatbind to d
From: Bob Duff
This patch cleans up some things noticed while working on gnatbind.
No change in behavior yet.
gcc/ada/
* ali-util.adb (Read_Withed_ALIs): Minor reformatting.
* bindo-units.adb (Corresponding_Body): Add assert.
(Corresponding_Spec): Likewise.
* una
From: Piotr Trojanek
Routine Is_Unconstrained_Or_Tagged_Item is now used both in the GNAT
frontend (for checking legality of Depends clauses) and in the GNATprove
backend (for representing implicit inputs in flow graphs).
gcc/ada/
* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Move t
From: Steve Baird
In most paths, the function Build_Equivalent_Record_Aggregate was already
testing Has_Predicates for a given component type and conditionally returning
an Empty result. This is also needed in the case of a scalar component type.
Without it, we can build corrupt trees that fail u
From: Ronan Desplanques
This patch improves comments in code that emits warnings about
particular situations involving aggregates. It also removes a
conjunct in a condition that's useless because always true in the
context of the test.
gcc/ada/
* sem_aggr.adb (Resolve_Array_Aggregate):
From: Piotr Trojanek
Detection of expression that are "known on entry" (as defined in Ada
2022 RM 6.1.1(20/5)) was confused by validity checks when used from
within expansion of attribute 'Old.
gcc/ada/
* sem_util.adb (Is_Known_On_Entry): Handle constants introduced
by validity
From: Viljar Indus
Deriving the initial size of container aggregates is necessary
for deriving the correct capacity for bounded containers.
Add support for deriving the correct initial size
when the container aggregate is iterating over an array
object.
gcc/ada/
* exp_aggr.adb (Expand_
From: Ronan Desplanques
Before this patch, the compiler pointed at the wrong component
association when reporting an illegal occurrence of "others" in an
aggregate. This patch fixes this by keeping track of which choice
contains the occurrence of "others" when resolving array aggregates.
gcc/ada
From: Eric Botcazou
They are needed on 32-bit platforms because of different calling conventions
and again in the units implementing AltiVec and Streams support.
gcc/ada/
* libgnat/g-alvevi.ads: Add pragma Universal_Aliasing for all the
view types.
* libgnat/s-stratt.ads
From: Eric Botcazou
The dependency is relied upon by the binder to drag the tasking runtime.
gcc/ada/
* libgnarl/s-taspri__mingw.ads: Add clause for System.OS_Interface.
(Private_Data): Change type of Thread component.
Tested on x86_64-pc-linux-gnu, committed on master.
---
g
From: Eric Botcazou
The duplication is present in some POSIX-like implementations (POSIX
and RTEMS) while it has already been eliminated in others (Linux, QNX). The
latter implementations are also slightly modified for consistency's sake.
No functional changes.
gcc/ada/
* libgnarl/s-t
201 - 300 of 2281 matches
Mail list logo