Some error messages issued regarding limitations of the current
implementation of the GNAT extension for pattern matching are
missing space characters.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_case.adb: Fix error message.diff --git a/gcc/ada/sem_case.adb b/gcc/ada
Compiler aborts on a use of attribute 'Img on an object of a record
type, when the attribute reference occurs within a larger expression,
such as a string comparison.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_ch4.adb (Process_Transient_In_Expression): Ensure that
This patch corrects an issue in the compiler whereby initialization gets
incorrectly performed on element iterators in "for of" loops.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_ch5.adb (Expand_Formal_Container_Element_Loop): Remove
legacy expansion of eleme
The recently added extension of allowing prefixed-call notation for
primitives of untagged types doesn't handle certain cases of prefixed
calls where the prefix of the call is an overloaded function call.
Specifically, this can occur when the result of some overloadings of the
function have results
This patch fixes a bug in the compiler whereby the experimental "return
when" feature was not supported for return values which were not
identifiers.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* par-ch6.adb (Get_Return_Kind): Removed.
(Is_Extended): Created to ide
Fix a bug (which shows up as an assertion failure in gigi) having to
do with the tree generated by the FE for a record-valued case-statement
choice that has a subcomponent of an enumeration type.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_ch5.adb
(Expand_N_C
Code cleanup related to loading of compilation units; semantics is
unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* lib-writ.adb (Ensure_System_Dependency): Simplify by reusing a
constant name.diff --git a/gcc/ada/lib-writ.adb b/gcc/ada/lib-writ.adb
--- a/
Cleanup excessive whitespace and use membership tests in code related to
loading of compilation units; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* lib-load.adb (Load_Unit): Remove excessive whitespace.
* lib.adb (Is_Internal_Unit, Is_Pred
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_util.adb (Enclosing_Comp_Unit_Node): When the loop exits
the Current_Node is either an N_Compilation_Unit node or Empty,
so simply return it without redundant checks.di
Cleanup related to loading of compilation units.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* lib.adb (Remove_Unit): Replace defensive code with an
assertion.
* par-load.adb (Load): Address a question mark in the comment.diff --git a/gcc/ada/lib.adb b/gcc/
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* uname.adb (Add_Node_Name): Replace local constant whose
initial expression was evaluated even when unnecessary with just
that expression that is evaluated at most once and
In shells such as Win32 Cmd, malformed command line can be used to spawn
processes. As a consequence when parsing a quoted argument, the closing
double quote can be missing and a null character found instead. In that
case, behave as if the closing double quote is found with the exception
that trail
Before this commit, GNAT would not warn about empty loops caused by
constraints like in the following piece of code:
procedure tmp is
type T is mod 3;
begin
for I in T range -1..1 loop
null;
end loop;
end;
When the constrained type is modular, additional information about
computed
For a default (as opposed to user-defined) Read operation of a composite
type with a scalar component, the RM says that in some cases the
constraint check that is normally performed upon return from a
procedure with an out-mode scalar parameter (in particular, the call
to the procedure Scalar_Compo
Enable support for Ada 2020's Put_Image and Image attributes for
tagged types.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_put_image.adb: Eliminate references to
Debug_Flag_Underscore_Z. Change the meaning of the function
Enable_Put_Image. Previously
... because in case of compiler bugs, it can be accessed early, so it
needs to be initialized.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* atree.ads (Current_Error_Node): Initialize to Empty.diff --git a/gcc/ada/atree.ads b/gcc/ada/atree.ads
--- a/gcc/ada/atree.ads
+++ b
The Terminated flag for a task was being queried without first aquiring
the task lock. It is not clear that this unsychronized access has ever
caused a problem in practice, but the thread-sanitizer tool flags it.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* libgnarl/s-tas
Use Tbuild.Unchecked_Convert_To instead of
Nmake.Make_Unchecked_Type_Conversion. This leads to more readable source
code in the compiler, and also more readable .dg code, because it
removes redundant unchecked conversions.
There is only one remaining call to Make_Unchecked_Type_Conversion,
which i
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* inline.adb (Instantiate_Bodies): Fix white in declaration.
(Remove_Dead_Instance): Change iteration from WHILE to FOR.diff --git a/gcc/ada/inline.adb b/gcc/ada/inline.adb
--- a/gcc
When discovering violation of the No_Elaboration_Code restriction it is
enough to find one unit that violates it; we don't need to examine all
units.
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* lib-writ.adb (Write_ALI): Exit from l
This adds socket options that are needed to control the keepalive status
of TCP connections. The new options are Keep_Alive_Count,
Keep_Alive_Idle, and Keep_Alive_Interval.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* libgnat/g-socket.ads (Option_Name): Add Keep_Alive_Cou
There are three kinds of units that require code generation: the main
unit, its corresponding spec and generic instances needed by the main
unit.
Previously the main unit and its corresponding spec were flagged as
requiring code generation just before calling the backend, while
instance units were
Avoid local string copy with renaming, which both make the code shorter
to read and should be marginally faster to execute. Code cleanup only
related to loading of compilation units; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* par.adb (Par): A lo
The precondition of Cot in Ada.Numerics.Generic_Elementary_Functions is
not meant for execution (as enforced by the Assertion_Policy at the top
of the file) but for analysis only. A conjunct in the precondition of
Cot applied to two arguments (with a Cycle value) was incorrect, now
fixed.
Tested o
Remove Linker_Section_Pragma field from Record_Field_Kind.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* gen_il-gen-gen_entities.adb: Remove Linker_Section_Pragma
field from Record_Field_Kind. Minor comment improvement.diff --git a/gcc/ada/gen_il-gen-gen_entities.
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_ch3.adb, exp_ch6.adb, sem_ch6.adb: Replace Ekind
membership test in Private_Kind with a call to Is_Private_Type.diff --git a/gcc/ada/exp_ch3.adb b/gcc/ada/exp_ch3.adb
--- a/gcc
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_disp.adb (CPP_Num_Prims): Reuse List_Length.diff --git a/gcc/ada/exp_disp.adb b/gcc/ada/exp_disp.adb
--- a/gcc/ada/exp_disp.adb
+++ b/gcc/ada/exp_disp.adb
@@ -588,19 +588,7 @@ package
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch6.adb (Check_For_Primitive_Subprogram): Move
declarations of local variables after nested subprogram bodies.diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
--- a/gcc/a
In cases where it is known statically that an exception will be raised,
the frontend inserts a node of kind N_Raise_xxx_Error. This node kind
was previously not supported in GNATprove, which required special
handling for these cases in GNATprove mode. This is not needed anymore.
Tested on x86_64-p
A previous change to Unchecked_Convert_To removed the setting of the
Parent of the new node, because it was thought to be unnecessary.
However, in rare cases, it is necessary because for example
Remove_Side_Effects is called on the new node before attaching it
to the tree.
Tested on x86_64-pc-linu
The Set_Socket_Option shifts timeout for -500ms on old Windows versions,
but Get_Socket_Option did +500ms for timeouts on all Windows versions.
This commit fixes it and +500ms on Get_Socket_Option only for old
Windows versions.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
*
Back out of an overly aggressive workaround for compilation problems
associated with a Put_Image routine for a tagged type in a Remote_Types
package and try a different (hopefully better) approach that is more
consistent with how other predefined primitives are treated.
Tested on x86_64-pc-linux-g
Size and Value_Size clauses are documented to be the same, except that
Value_Size is allowed for nonfirst subtypes, and Size is allowed for
objects. This was far from true, which caused bugs such as ignoring
Value_Size for access types, in cases where a Size clause would trigger
the use of thin poi
Code cleanup related to loading of compilation units; behaviour is
unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* uname.adb (Get_Body_Name, Get_Parent_Body_Name,
Get_Parent_Spec_Name, Get_Spec_Name, Is_Child_Name,
Is_Body_Name, Is_Spec_Name, Name
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* uname.adb (Get_Unit_Name): Simplify with a bounded string
buffer; also, this addresses a ??? comment about the max length
being exceeded.diff --git a/gcc/ada/uname.adb b/gc
Ada 2022 errors about volatile compatibility between generic actual and
formal types were emitted on type declaration; now they are emitted at
the actual type within the generic instance.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch12.adb (Check_Shared_Variable_Con
Ada 2022, in AI12-0412, specifies that certain uses of primitives of an
abstract type that have Pre'Class or Post'Class aspect are illegal when
an aspect is given with a nonstatic expression. Specifically, if the
primitive is nonabstract and has such aspects, it's illegal to make a
nondispatching c
In particular, now that we are using Atomic_Unsigned which is marked
Atomic, we no longer need to mark Atomic_Counter.Value explicitly
atomic.
We can also get rid of all uses of 'Unrestricted_Access
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* libgnat/s-atocou.ads, libgn
To help codepeer analysis.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* libgnat/g-debpoo.adb (Code_Address_For_Allocate_End): Default
Initialize.diff --git a/gcc/ada/libgnat/g-debpoo.adb b/gcc/ada/libgnat/g-debpoo.adb
--- a/gcc/ada/libgnat/g-debpoo.adb
+++ b/gcc/a
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_prag.adb (Analyze_Pragma): Simplify processing of pragma
CPP_Constructor.diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_p
The body of every primitive subprogram contains an elaboration check, in
case a dispatching call is made. These checks happen even in the static
model. This patch removes the checks if pragma Pure or Preelaborate is
present, because they cannot fail in that case.
Tested on x86_64-pc-linux-gnu, com
Windows headers in GCC could miss some available constants. Hardcode
TCP_KEEPCNT, TCP_KEEPIDLE, and TCP_KEEPINTVL constants for such case.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* s-oscons-tmplt.c (TCP_KEEPCNT TCP_KEEPIDLE, TCP_KEEPINTVL):
Hardcode on Windows
A recent change exposed a latent bug where the Is_Intrinsic_Subprogram
flag was not propagated properly, leading to errors from the front-end
inlining of the form:
cannot inline "xxx" (nested function instantiation)
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch1
Ensure that Checking_For_Potentially_Static_Expression flag is
manipulated in a stack-like manner (with stack depth 1 at the most). The
previous assertion didn't prevent us from setting the flag to True or to
False twice in a row.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
When expansion is disabled (such as with -gnatc), there are cases where
uses of concurrent types can lead to an Assertion_Failure when
extensions are enabled (by use of -gnatX, or due to instantiation of a
predefined library generic, such as Unchecked_Conversion), because
Primitive_Operations can r
__MINWGW32__ is typo and was not working, but anyway the MSG_WAITALL
is defined on Windows.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* s-oscons-tmplt.c (MSG_WAITALL): Remove wrong #ifdef
__MINWGW32__.diff --git a/gcc/ada/s-oscons-tmplt.c b/gcc/ada/s-oscons-tmplt
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sinput-l.adb (Load_File): Simplify foreword manipulation with
concatenation; similar for filename with preprocessed output.diff --git a/gcc/ada/sinput-l.adb b/gcc/ada/sinput-l.adb
Replace a linear search with a hash table query.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* lib-writ.adb (Ensure_System_Dependency): Replace search in
Lib.Units with a search in Lib.Unit_Names.diff --git a/gcc/ada/lib-writ.adb b/gcc/ada/lib-writ.adb
--- a/gcc/ad
To help experiment with this new model.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* make.adb, osint.adb: Make code compatible with
No_Dynamic_Accessibility_Checks restriction.diff --git a/gcc/ada/make.adb b/gcc/ada/make.adb
--- a/gcc/ada/make.adb
+++ b/gcc/ada/ma
As part of experimenting with No_Dynamic_Accessibility_Checks, it seems
that reverting the meaning of -gnatd_b is a better default for this
experiment.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* debug.adb, sem_util.adb: Revert meaning of -gnatd_b.
* sem_res.adb:
Cursors for Hashed maps and hashed sets include a component that speeds
up iteration over these containers. However, in the presence of multiple
insertions into the corresponding hash-tables, this component may become
unreliable when a cursor obtained before an iteration is compared with a
cursor d
Make it explicit that tasking is not used in the compiler, which also
allows generating simpler and more efficient code.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* gcc-interface/system.ads: Add No_Tasking restriction.diff --git a/gcc/ada/gcc-interface/system.ads b/gcc/a
If an exception declaration occurs in a nonstatic scope (for example,
within the body of a task type),
System.Exception_Table.Register_Exception is to be called the first (and
*only* the first) time the declaration is elaborated. A library-level
"this exception has been registered" Boolean flag wa
For a packed constrained array type with a Component_Size clause, it
may be possible to compute both its RM_Size and Esize. Do this as it
benefits GNATprove for checking validity of overlays.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* layout.adb (Layout_Type): Special c
To help experiment with this new model.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb,
libgnat/a-cborma.adb, libgnat/a-cborse.adb,
libgnat/a-cobove.adb, libgnat/a
In case of compilation error, the low and high bounds of the array
type might have been replaced by an error node. Deal with this case
by checking that the bounds are known at compile time.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* layout.adb (Layout_Type): Add guard b
Before this patch, the following program would make GNAT crash:
procedure P is
Unused_Var : Integer with Shared => False;
pragma Inspection_Point;
begin
null;
end tmp;
This was because the Shared aspect resulted in a freeze node being
inserted after the Inspection_Point pragma. This m
After a syntax error, if the code is compiled with -gnatq, semantic
analysis should still proceed without internal errors if possible. Add
special case to recognize ill-formed array type.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* layout.adb (Layout_Type): Do not call N
Single question marks are deprecated.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_prag.adb (Expand_Pragma_Inspection_Point): Fix error
message.diff --git a/gcc/ada/exp_prag.adb b/gcc/ada/exp_prag.adb
--- a/gcc/ada/exp_prag.adb
+++ b/gcc/ada/exp_prag.adb
@@ -2
Only style fixes; comments and code themselves are unchanged.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* lib-load.adb (Load_Unit): Fix style in comment.
* par-load.adb (Load): Likewise.
* scng.adb (Initialize_Scanner): Fix whitespace.diff --git a/gcc/ada
The comment in Par.Load says "... or we are in big trouble, and abandon
the compilation", but the code merely emitted errors and kept going. Now
it emits errors, flags the problem in the unit table and gives up. Also,
it was wrong for this routine to remove the unit, because the callers
who add ent
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* lib-writ.adb (Ensure_System_Dependency): Simplify condition.diff --git a/gcc/ada/lib-writ.adb b/gcc/ada/lib-writ.adb
--- a/gcc/ada/lib-writ.adb
+++ b/gcc/ada/lib-writ.adb
@@ -147,7 +147,7
When loading of renamed child unit failed, we didn't properly restore
the value of a global Parsing_Main_Extended_Source variable.
This is primarily a cleanup change; behaviour is not affected (perhaps
except for errors reported on complicated code that is illegal anyway).
Tested on x86_64-pc-lin
There is only one call to Unit_Display and it is guarded by the
List_Units global variable. There is no need to retest this variable
inside the Unit_Display routine.
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* par-ch10.adb (Unit_Di
Simplify "Present (L) and then not Is_Empty_List (L)" into "not
Is_Empty_List (L)", since Is_Empty_List can be called on No_List
and returns True.
Code cleanup; semantics is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch12.adb, sem_ch6.adb, sem_ch9.adb,
The perfect hash function generated by the compiler to speed up the Value
attribute of an enumeration type contains an implicit loop and, therefore,
violates the No_Implicit_Loops restriction when it is active.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_imgv.adb: Ad
In the case of complex generic instantiations, the warning on component
not being present can be spurious (corresponding to dead code for the
given instance), so we disable it.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_util.ads, sem_util.adb
(Apply_Compile_
Add syntax and semantic support for this new Ada 2022 feature.
Support for proper accessibility levels to be investigated in a second step.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* par-ch5.adb (P_Iterator_Specification): Add support for access
definition in lo
In the presence of style switch -gnatyO, the compiler emits a spurious
style violation message naming an inherited operation that does not come
from an explicit subprogram declaration.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* style.adb (Missing_Overriding): Do not emi
GNATcoverage possibly relies on the presence of the duplicate D lines in ALI
files for its Source Coverage Obligation tables among different instantiations
of a same generic. Mention this in comments.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* lib-writ.ads: Mention SCOs
The .inc extension isn't recognized by gprconfig. The original
motivation for using this extension was to match the convention
of putting code in .inc ala unwind.inc. However it's easier in this
situation to just rename it to a .h file.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
Misc cleanups found while working on transient scopes.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* comperr.adb (Compiler_Abort): Call Sinput.Unlock, because if
this is called late, then Source_Dump would crash otherwise.
* debug.adb: Correct documentation
This disables the last special encoding done in Get_Encoded_Name, except
when -fgnat-encodings=all is passed on the command line.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_dbug.adb (Get_Encoded_Name): Do not encode names of discrete
types with custom bounds
Ada_2022 introduces the notion of Target_Name, written @, to be used in
assignment statements, where it denotes the value of the left-hand side
prior to the assignment. This patch diagnoses illegal uses of the target
name outside of its legal context.
Tested on x86_64-pc-linux-gnu, committed on tr
Prevent AST climbing from going outside of the current program unit;
tune style; add comments. Also, only set the Current_Assignment global
variable when needed and clear it once the analysis of an assignment
statement is done.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
*
Remove the Unknown_ type representation attribute predicates from
Einfo.Utils. "not Known_Alignment (...)" is at least as readable as
"Unknown_Alignment (...)" -- we don't need a bunch of functions that
just do a "not".
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* einfo-u
Cleanup related to preanalysis in GNATprove mode; behaviour is
unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_res.adb (Preanalyze_And_Resolve): Only call
Set_Must_Not_Freeze when it is necessary to restore the previous
value.diff --git a/gcc/
Code cleanup related to preanalysis in GNATprove mode; behaviour is
unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch6.adb (Analyze_Expression_Function): A local Expr
constant was shadowing a global constant with the same name and
the same va
Code cleanup related to handing of static expression functions in
GNATprove; behaviour is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch6.adb (Analyze_Expression_Function): Change types local
variables from Entity_Id to Node_Id.diff --git a/gcc/ad
Code cleanup related to handing of static expression functions in
GNATprove; behaviour is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch6.adb (Analyze_Expression_Function): Use Orig_N variable
instead of repeated calls to Original_Node.diff --git
Cleanup related to handing of static expression functions in GNATprove.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch6.adb (Analyze_Expression_Function): Fix comment.diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
--- a/gcc/ada/sem_ch6.adb
+++ b/gcc/ada/sem_c
Cleanup related to handing of static expression functions in GNATprove.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch6.adb (Analyze_Expression_Function): Add variable to
avoid repeated calls to Etype.diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb
---
Analysis of static expression functions happened inside an IF branch
guarded by GNATprove_Mode. Cleanup related to handling of static
expression functions in GNATprove mode; behaviour is unaffected.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch6.adb (Analyze_Express
Group two variants of preanalysis of expression functions. Code cleanup
related to handling of static expression functions in GNATprove.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch6.adb (Analyze_Expression_Function): Reorder code.diff --git a/gcc/ada/sem_ch6.adb b
This updates the documentation of the debugging information generated by
the compiler present in the spec of the Exp_Dbug unit.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_dbug.ads: Update documentation of various items.diff --git a/gcc/ada/exp_dbug.ads b/gcc/ada/exp
This patch corrects various issues discovered during testing of the
No_Dynamic_Accessibility_Checks restriction leading to level
miscalculation errors.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_util.ads (Type_Access_Level): Add new optional parameter
Assoc_
We need to declare a predicate function along with its type but can only
generate the body at freeze point which may be in a separate scope,
leading to inconsistencies. So fix this by deferring the generation of
the predicate function declaration and fix latent bugs uncovered along
the way.
While
Explicitly initialize local variables related to analysis of expression
functions to prevent spurious checks from static analysers.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch6.adb (Analyze_Expression_Function): Initialize Orig_N
and Typ variables.diff --g
Since newlib doesn't implement correctly long double, use the wraplf
variant for a-nallfl.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* Makefile.rtl (LIBGNAT_TARGET_PAIRS) : Use
the wraplf variant of Aux_Long_Long_Float.diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/
This in particular documents the new warning given on overlays.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* doc/gnat_rm/implementation_defined_attributes.rst
(Scalar_Storage_Order): Add paragraph about representation
changes.
* gnat_rm.texi: Regen
Minor typo; found while fixing handling of tagged types in GNATprove.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_util.ads (Map_Types): Fix typo.diff --git a/gcc/ada/exp_util.ads b/gcc/ada/exp_util.ads
--- a/gcc/ada/exp_util.ads
+++ b/gcc/ada/exp_util.ads
@@ -915,7 +
This prevents the output of -gnatRj from containing several "variant" fields
for an extension with a variant part of a tagged type with a variant part.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* repinfo.ads (JSON output format): Document adjusted key name.
* rep
Fix layout of contracts in libgnat/a-strunb.ads and
libgnat/a-strunb__shared.ads so that it is the same in both files.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Fix layout
in contracts.diff --git a/gcc/ada/lib
...in case Current_Error_Node is Empty, which will cause it to print "No
source file position information available". At least now we have the
file name being compiled.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* comperr.adb (Compiler_Abort): Print source file name.diff
The declaration of time_t is in flux based on it's overflow in Year
2038, so declare it uniformly based on System.Parameter.time_t_bits
to ease this transition and also enable VxWorks targets which allow
it to be parameterized, to be rebuilt more easily by one source change.
Two changes of note:
s
This patch fixes an issue in the compiler whereby a pragma Inline
appearing after a subprogram body stub to which it applies and where no
specification is present causes a compile time crash.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sem_ch6.adb (Check_Pragma_Inline):
Improve existing support for the Ada extension feature of casing on
composite values to handle casing on values that are discriminated or
have discriminated subcomponents.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_ch5.adb (Expand_General_Case_Statement): Add new fu
This patch fixes an issue in the compiler whereby an assignment to a
limited interface access type causes a crash when the right hand side
has an unresolvable function call in prefix notation and verbose errors
are enabled via (-gnatf).
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
The previous implementation could exhibit quadratic behavior in some
cases (e.g., if the input was already sorted or almost sorted). The
new implementation uses an N log N worst case algorithm.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* libgnat/a-cdlili.adb: Reimplement
Add IPV6_FLOWINFO and IF_NAMESIZE values into generated package
System.OS_Constants.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* gsocket.h: Include net/if.h to get IF_NAMESIZE constant.
* s-oscons-tmplt.c: Define IPV6_FLOWINFO for Linux.diff --git a/gcc/ada/gsock
201 - 300 of 3386 matches
Mail list logo