[COMMITTED] ada: Crash processing pragmas Compile_Time_Error and Compile_Time_Warning

2023-10-10 Thread Marc Poulhiès
From: Javier Miranda gcc/ada/ * sem_attr.adb (Analyze_Attribute): Protect the frontend against replacing 'Size by its static value if 'Size is not known at compile time and we are processing pragmas Compile_Time_Warning or Compile_Time_Errors. Tested on x86_64-pc

[COMMITTED] ada: Tweak documentation comments

2023-10-10 Thread Marc Poulhiès
From: Ronan Desplanques The concept of extended nodes was retired at the same time Gen_IL was introduced, but there was a reference to that concept left over in a comment. This patch removes that reference. Also, the description of the field Comes_From_Check_Or_Contract was incorrectly placed in

[COMMITTED] ada: Fix bad finalization of limited aggregate in conditional expression

2023-10-10 Thread Marc Poulhiès
From: Eric Botcazou This happens when the conditional expression is immediately returned, for example in an expression function. gcc/ada/ * exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): Return true if the aggregate is a dependent expression of a conditional expressi

[COMMITTED] ada: Remove superfluous setter procedure

2023-10-10 Thread Marc Poulhiès
From: Eric Botcazou It is only called once. gcc/ada/ * sem_util.ads (Set_Scope_Is_Transient): Delete. * sem_util.adb (Set_Scope_Is_Transient): Likewise. * exp_ch7.adb (Create_Transient_Scope): Set Is_Transient directly. Tested on x86_64-pc-linux-gnu, committed on master

[COMMITTED] ada: Tweak internal subprogram in Ada.Directories

2023-10-10 Thread Marc Poulhiès
From: Ronan Desplanques The purpose of this patch is to work around false-positive warnings emitted by GNAT SAS (also known as CodePeer). It does not change the behavior of the modified subprogram. gcc/ada/ * libgnat/a-direct.adb (Start_Search_Internal): Tweak subprogram body.

[COMMITTED] ada: Fix infinite loop with multiple limited with clauses

2023-10-10 Thread Marc Poulhiès
From: Eric Botcazou This occurs when one of the types has an incomplete declaration in addition to its full declaration in its package. In this case AI05-129 says that the incomplete type is not part of the limited view of the package, i.e. only the full view is. Now, in the GNAT implementation,

[COMMITTED] ada: Fix internal error on too large representation clause for small component

2023-10-10 Thread Marc Poulhiès
From: Eric Botcazou This is a small bug present on strict-alignment platforms for questionable representation clauses. gcc/ada/ * gcc-interface/decl.cc (inline_status_for_subprog): Minor tweak. (gnat_to_gnu_field): Try harder to get a packable form of the type for a bitf

[COMMITTED] ada: Fix filesystem entry filtering

2023-10-10 Thread Marc Poulhiès
From: Ronan Desplanques This patch fixes the behavior of Ada.Directories.Search when being requested to filter out regular files or directories. One of the configurations in which that behavior was incorrect was that when the caller requested only the regular and special files but not the directo

[COMMITTED] ada: Simplify "not Present" with "No"

2023-10-19 Thread Marc Poulhiès
From: Piotr Trojanek gcc/ada/ * exp_aggr.adb (Expand_Container_Aggregate): Simplify with "No". Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/exp_aggr.adb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/ada/exp_aggr.adb b/gcc/ada/exp_aggr.adb i

[COMMITTED] ada: Seize opportunity to reuse List_Length

2023-10-19 Thread Marc Poulhiès
From: Ronan Desplanques This patch is intended as a readability improvement. It doesn't change the behavior of the compiler. gcc/ada/ * sem_ch3.adb (Constrain_Array): Replace manual list length computation by call to List_Length. Tested on x86_64-pc-linux-gnu, committed on mast

[COMMITTED] ada: Document gnatbind -Q switch

2023-10-19 Thread Marc Poulhiès
From: Patrick Bernardi Add documentation for the -Q gnatbind switch in GNAT User's Guide and improve gnatbind's help output for the switch to emphasize that it adds the requested number of stacks to the secondary stack pool generated by the binder. gcc/ada/ * bindusg.adb (Display): Make

[COMMITTED] ada: Add pragma Annotate for GNATcheck exemptions

2023-10-19 Thread Marc Poulhiès
From: Sheri Bernstein Exempt the GNATcheck rule "Unassigned_OUT_Parameters" with the rationale "the OUT parameter is assigned by component". gcc/ada/ * libgnat/s-imguti.adb (Set_Decimal_Digits): Add pragma to exempt Unassigned_OUT_Parameters. (Set_Floating_Invalid_Value)

[COMMITTED] ada: Refactor code to remove GNATcheck violation

2023-10-19 Thread Marc Poulhiès
From: Sheri Bernstein Rewrite for loop containing an exit (which violates GNATcheck rule Exits_From_Conditional_Loops), to use a while loop which contains the exit criteria in its condition. Also, move special case of first time through loop, to come before loop. gcc/ada/ * libgnat/s-im

[PATCH] testsuite: skip gcc.target/i386/pr106910-1.c test when using newlib

2023-11-06 Thread Marc Poulhiès
Using newlib produces a different codegen because the support for c99 differs (see libc_has_function hook). gcc/testsuite/ChangeLog: * gcc.target/i386/pr106910-1.c: Disable for newlib. --- Tested on x86_64-linux and x86_64-elf. OK for master? gcc/testsuite/gcc.target/i386/pr106910-1.c

[PATCH] testsuite: require avx_runtime for some tests

2023-11-06 Thread Marc Poulhiès
These 3 tests fails parsing the 'vect' dump when not using -mavx. Make the dependency explicit. gcc/testsuite/ChangeLog: * gcc.dg/vect/vect-ifcvt-18.c: Add dep on avx_runtime. * gcc.dg/vect/vect-simd-clone-16f.c: Likewise. * gcc.dg/vect/vect-simd-clone-18f.c: Likewise. ---

[PATCH] testsuite: refine gcc.dg/analyzer/fd-4.c test for newlib

2023-11-06 Thread Marc Poulhiès
Contrary to glibc, including stdio.h from newlib defines mode_t which conflicts with the test's type definition. .../gcc/testsuite/gcc.dg/analyzer/fd-4.c:19:3: error: redefinition of typedef 'mode_t' with different type ... .../include/sys/types.h:189:25: note: previous declaration of 'mode_t' wi

Re: [wwwdocs] Add Ada's GCC 14 changelog entry

2024-02-26 Thread Marc Poulhiès
Fernando Oleo Blanco writes: > Dear all, > > just like last year, I would like to commit the changes that took place > over at GNAT for GCC v14. The patch is attached to the email. Hopefully > it is good enough to just be added to master. If you see something wrong > or if you would like to add

[COMMITTED] Update year in Gnatvsn

2024-01-23 Thread Marc Poulhiès
From: Ronan Desplanques gcc/ada/ * gnatvsn.ads: Update year. --- gcc/ada/gnatvsn.ads | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/ada/gnatvsn.ads b/gcc/ada/gnatvsn.ads index 934c22206f7..29238362cc0 100644 --- a/gcc/ada/gnatvsn.ads +++ b/gcc/ada/gnatvsn.ads @@

[COMMITTED] ada: Further cleanup in finalization machinery

2023-12-19 Thread Marc Poulhiès
From: Eric Botcazou This streamlines the submachinery that makes it so that the finalization of temporaries created for EWAs and conditional expressions is deferred to the enclosing context. The original implementation was using a deep tree traversal for EWAs, which was later restricted to immed

[COMMITTED] ada: Illegal instance of Generic_1.Generic_2 incorrectly accepted

2023-12-19 Thread Marc Poulhiès
From: Steve Baird If G1 is a generic package and G1.G2 is a child unit (also a generic package) then it would be illegal if some third generic unit (declared outside of G1) takes a formal instance of G1.G2, as in "with package I2 is new G1.G2;". This construct was incorrectly accepted in some cas

[COMMITTED] ada: Cleanup SPARK legality checking

2023-12-19 Thread Marc Poulhiès
From: Yannick Moy Move one SPARK legality check from GNAT to GNATprove, and cleanup other uses of SPARK_Mode for legality checking. gcc/ada/ * sem_ch4.adb (Analyze_Selected_Component): Check correct mode variable for GNATprove. * sem_prag.adb (Refined_State): Call SPARK_

[COMMITTED] ada: Restore object constraint optimization

2023-12-19 Thread Marc Poulhiès
From: Ronan Desplanques This patch relaxes the requirement that discriminants values should be known at compile time for a particular optimization to be applied. That optimization is the one that treats an unconstrained object as constrained when the object is of a limited type, in order to reduc

[COMMITTED] ada: Plug small loophole in finalization machinery

2023-12-19 Thread Marc Poulhiès
From: Eric Botcazou The path in Expand_N_If_Expression implementing the special optimization for an unidimensional array type and dependent expressions with static bounds fails to call Process_Transients_In_Expression on their list of actions. gcc/ada/ * exp_ch4.adb (Expand_N_If_Express

[COMMITTED] ada: Adapt Ada.Command_Line to work on configurable runtimes

2023-12-19 Thread Marc Poulhiès
From: Patrick Bernardi The behaviour of the binder when handling command line arguments and exit codes is simplified so that references to the corresponding runtime symbols are always generated when the runtime is configured with command line argument and exit code support. This allows Ada.Comman

[COMMITTED] ada: Cope with Sem_Util.Enclosing_Declaration oddness.

2023-12-19 Thread Marc Poulhiès
From: Steve Baird Sem_Util.Enclosing_Declaration can return a non-empty result which is not a declaration; clients may need to compensate for the case where an N_Subprogram_Specification node is returned. One such client is the function Is_Actual_Subp_Of_Inst. gcc/ada/ * sem_ch8.adb (Is

[COMMITTED] ada: Fix SPARK expansion of container aggregates

2023-12-19 Thread Marc Poulhiès
From: Yannick Moy GNATprove supports container aggregates, except for indexed aggregates. It needs all expressions to have suitable target types and Do_Range_Check flags, which are added by the special expansion for GNATprove. There is no impact on code generation. gcc/ada/ * exp_spark

[COMMITTED] ada: Fix spurious visibility error on parent's component in instance

2023-12-19 Thread Marc Poulhiès
From: Eric Botcazou This occurs for an aggregate of a derived tagged type in the body of the instance, because the full view of the parent type, which was visible in the generic construct (otherwise the aggregate would have been illegal), is not restored in the body of the instance. Copy_Generic

[COMMITTED] ada: Remove No_Dynamic_Priorities from Restricted_Tasking

2023-12-19 Thread Marc Poulhiès
From: Johannes Kliemann Some of our restricted runtimes support dynamic priorities. The binder needs to generate code for a restricted runtime even if the restriction No_Dynamic_Priorities is not in place. gcc/ada/ * libgnat/s-rident.ads: Remove No_Dynamic_Priorities from Restri

[COMMITTED] ada: Ignore unconstrained components as inputs for Depends

2023-12-19 Thread Marc Poulhiès
From: Piotr Trojanek The current wording of SPARK RM 6.1.5(5) about the inputs for the Depends contract doesn't mention "a record with at least one unconstrained component". gcc/ada/ * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Update comment and body. Tested on x86_64-pc-

[COMMITTED] ada: Fix crash on concurrent type aggregate

2023-12-19 Thread Marc Poulhiès
From: Ronan Desplanques Before this patch, the compiler would fail to examine the corresponding record types of concurrent types when building aggregate components. This patch fixes this, and adds a precondition and additional documentation on the subprogram that triggered the crash, as it never

[COMMITTED] ada: Add makefile targets for building/installing html doc

2023-12-19 Thread Marc Poulhiès
Add the ada.html and ada.install-html targets so that we can build the html with `make html`. gcc/ada/ * gcc-interface/Make-lang.in (ada.html, ada.install-html): Add. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/gcc-interface/Make-lang.in | 35 +++

[COMMITTED] ada: Remove unreferenced utility routine Get_Logical_Line_Number_Img

2023-12-19 Thread Marc Poulhiès
From: Piotr Trojanek Routine Get_Logical_Line_Number_Img was introduced for splitting of Pre/Post contracts, but subsequent patch for that feature removed its only use. It was then used by GNATprove, but that use is now removed as well. gcc/ada/ * sinput.adb, sinput.ads (Get_Logical_Lin

[COMMITTED] ada: Fix style and typos in comments

2023-12-19 Thread Marc Poulhiès
From: Piotr Trojanek Code cleanup. gcc/ada/ * exp_ch9.adb, sem_ch10.adb, sem_util.adb: Fix comments. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/exp_ch9.adb | 4 ++-- gcc/ada/sem_ch10.adb | 2 +- gcc/ada/sem_util.adb | 2 +- 3 files changed, 4 insertions(+), 4 de

[COMMITTED] ada: Further cleanup in finalization machinery

2023-12-19 Thread Marc Poulhiès
From: Eric Botcazou This removes the setting of the Is_Ignored_Transient flag on the temporaries needing finalization created by Expand_Ctrl_Function_Call when invoked from within the dependent expressions of conditional expressions. This flag tells the general finalization machinery to disregar

[COMMITTED] ada: Compiler hangs on container aggregate with function call as key expression

2023-12-19 Thread Marc Poulhiès
From: Gary Dismukes The compiler hangs (or may crash, if assertions are enabled) when compiling an iterated association of a container aggregate that has a key expression given by a function call. The resolution of the call leads to a blowup in Build_Call_Marker, because the temporary copy of the

[COMMITTED] ada: Optimize performance and remove dynamic frame requirement.

2023-12-19 Thread Marc Poulhiès
From: Vasiliy Fofanov gcc/ada/ * libgnat/i-cstrin.adb (Value): Optimize. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/libgnat/i-cstrin.adb | 17 ++--- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/gcc/ada/libgnat/i-cstrin.adb b/gcc/ada/l

[COMMITTED] ada: Check all interfaces for valid iterator type

2023-12-19 Thread Marc Poulhiès
From: Viljar Indus gcc/ada/ * sem_ch13.adb (Valid_Default_Iterator): Check all interfaces for valid iterator type. Also improve error reporting. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_ch13.adb | 103 +-- 1 fi

[COMMITTED] ada: Rework comment in Expand_Ctrl_Function_Call

2023-12-19 Thread Marc Poulhiès
From: Eric Botcazou This expands on the reason for properly guarding the transformation. gcc/ada/ * exp_ch6.adb (Expand_Ctrl_Function_Call): Rework last comment. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/exp_ch6.adb | 7 ++- 1 file changed, 6 insertions(+),

[COMMITTED] ada: Add missing guard to previous change

2023-12-19 Thread Marc Poulhiès
From: Eric Botcazou Ancestor_Type is overloaded with Aggregate_Bounds on N_Aggregate nodes so its access needs to be guarded in Copy_Generic_Node. gcc/ada/ * sem_ch12.adb (Copy_Generic_Node): Add guard for Ancestor_Type. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada

[COMMITTED] ada: Rename Is_Constr_Subt_For_UN_Aliased flag

2023-12-19 Thread Marc Poulhiès
From: Eric Botcazou The flag is set on the constructed subtype of an object with unconstrained nominal subtype that is aliased and is used by the code generator to adjust the layout of the object. But it is actually only used for array subtypes, where it determines whether the object is allocate

[COMMITTED] ada: gnatbind: Do not generate Ada.Command_Line references when not used

2023-12-19 Thread Marc Poulhiès
From: Patrick Bernardi It was previously assumed that configurable runtimes could not return exit statuses, however this assumption no longer holds. Instead, only import the required symbols from Ada.Command_Line's support packages if Ada.Command_Line is in the closure of the partition when a con

[COMMITTED] ada: Remove GNATcheck violations

2023-12-19 Thread Marc Poulhiès
From: Sheri Bernstein Remove GNATcheck violations by refactoring code and also using pragma Annotate to exempt them. gcc/ada/ * libgnat/a-comlin.adb (Argument_Count): Rewrite code so there is only one return, to remove Improper_Returns violation. (Command_Name): Add prag

[COMMITTED] ada: Missing error on positional container aggregates for types with Add_Named

2023-12-19 Thread Marc Poulhiès
From: Gary Dismukes The compiler fails to reject a container aggregate written using positional notation when the container type specifies an Add_Named operation in its Aggregate aspect. Container aggregates for such types must be written using named associations. The compiler ignores the positio

[COMMITTED] ada: Fix internal error on call with parameter of predicated subtype

2023-12-19 Thread Marc Poulhiès
From: Eric Botcazou The problem is that the predicated subtype does not inherit all the required attributes of a string subtype with a static predicate. gcc/ada/ * sem_ch3.adb (Analyze_Subtype_Declaration): Remove a short-circuit for subtypes without aspects when it comes to pre

Re: [PATCH 2/3] Add generated .opt.urls files

2023-12-19 Thread Marc Poulhiès
Marc Poulhiès writes: >> Perhaps this script could also deal directly with Sphinx-generated >> HTML? > > I investigated a bit... The Ada part doesn't handle the html target, so > it's expected you don't have anything to parse. The online docs are > genera

[COMMITTED] ada: Fix precondition in Interfaces.C.Strings

2024-01-09 Thread Marc Poulhiès
From: Joffrey Huguet The precondition of both Update procedures in Interfaces.C.Strings were incorrect. This patch fixes this. gcc/ada/ * libgnat/i-cstrin.ads (Update): Fix precondition. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/libgnat/i-cstrin.ads | 9 +---

[COMMITTED] ada: Error compiling Ada 2022 object renaming with no subtype mark

2024-01-09 Thread Marc Poulhiès
From: Steve Baird In some cases the compiler would crash or generate spurious errors compiling a legal object renaming declaration that lacks a subtype mark. In addition to fixing the immediate problem, change Atree.Copy_Slots so that attempts to modify either the Empty or the Error nodes (e.g.,

[COMMITTED] ada: Avoid xref on out params of TSS

2024-01-09 Thread Marc Poulhiès
From: Bob Duff For an actual passed as an 'in out' parameter of a type support subprogram such as deep finalize, do not count it as a read reference of the actual. Clearly these should not count. Furthermore, counting them causes different warnings in -gnatc mode compared to normal mode, because

[COMMITTED] ada: Fix uses of not Present

2024-01-09 Thread Marc Poulhiès
From: Piotr Trojanek Fix style violation reported by GNATcheck. gcc/ada/ * sem_aggr.adb (Resolve_Container_Aggregate): Use "No". * sem_ch8.adb (Find_Direct_Name): Likewise. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_aggr.adb | 2 +- gcc/ada/sem_ch8.ad

[COMMITTED] ada: Fix bug in Sem_Util.Enclosing_Declaration

2024-01-09 Thread Marc Poulhiès
From: Steve Baird Fix Sem_Util.Enclosing_Declaration to not return an N_Subprogram_Specification node. Remove code in various places that was formerly needed to cope with this misbehavior. gcc/ada/ * sem_util.adb (Enclosing_Declaration): Instead of returning a subprogram specifi

[COMMITTED] ada: Remove unreachable code in Resolve_Extension_Aggregate

2024-01-09 Thread Marc Poulhiès
From: Eric Botcazou The only functions using the BIP protocol are now those returning a limited type: Is_Build_In_Place_Result_Type => Is_Inherently_Limited_Type. gcc/ada/ * sem_aggr.adb (Resolve_Extension_Aggregate): Remove the unreachable call to Transform_BIP_Assignment as we

[COMMITTED] ada: Cannot requeue to a procedure implemented by an entry

2024-01-09 Thread Marc Poulhiès
From: Javier Miranda Add missing support for RM 9.5.4(5.6/4): the target of a requeue statement may be a procedure when its name denotes a renaming of an entry. gcc/ada/ * sem_ch6.adb (Analyze_Subprogram_Specification): Do not replace the type of the formals with its correspondi

[COMMITTED] ada: Minor change replacing "not Present" tests with "No" tests

2024-01-09 Thread Marc Poulhiès
From: Gary Dismukes Fixing two places flagged by gnatcheck to use "No" instead of "not Present". gcc/ada/ * exp_aggr.adb (Expand_Container_Aggregate): Change "not Present" tests to tests using "No" (in two places). Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/a

[COMMITTED] ada: Excess elements created for indexed aggregates with iterator_specifications

2024-01-09 Thread Marc Poulhiès
From: Gary Dismukes In the case of an indexed aggregate of a container type with both Add_Unnamed and New_Indexed specified in the Aggregate aspect of the type (such as for the Vector type in Ada.Containers.Vectors), in cases where a component association is given by an iterator_specification, th

[COMMITTED] ada: Add __atomic_store_n binding to System.Atomic_Primitives

2024-01-09 Thread Marc Poulhiès
From: Eric Botcazou This is modeled on the existing binding for __atomic_load_n. gcc/ada/ * libgnat/s-atopri.ads (Atomic_Store): New generic procedure. (Atomic_Store_8): New instantiated procedure. (Atomic_Store_16): Likewise. (Atomic_Store_32): Likewise.

[COMMITTED] ada: Remove side effects depending on the context of subtype declaration

2024-01-09 Thread Marc Poulhiès
From: Piotr Trojanek In GNATprove mode the removal of side effects is only needed in certain syntactic contexts, which include subtype declarations. Now this removal is limited to genuine subtype declarations and not to itypes coming from expressions where side effects are not expected. gcc/ada/

[COMMITTED] ada: Remove dead code for GNATprove inlining

2024-01-09 Thread Marc Poulhiès
From: Piotr Trojanek Removed code was dead because it could only be executed when Back_End_Inlining is True and that flag is always false in GNATprove_Mode. gcc/ada/ * inline.adb (Cannot_Inline): Cleanup use of 'Length; remove dead code. Tested on x86_64-pc-linux-gnu, committed

[COMMITTED] ada: Fix limited_with in Check_Scil; allow for <> in pp of aggregate

2024-01-09 Thread Marc Poulhiès
From: Tucker Taft Check_Scil failed due to not handling a type that came from a package that was mentioned in a limited-with clause. Also, an aggregate with an uninitialized component was not being pretty-printed properly. gcc/ada/ * pprint.adb (List_Name): Check for "Box_Present" when

[COMMITTED] ada: Fix internal error on class-wide allocator inside if-expression

2024-01-09 Thread Marc Poulhiès
From: Eric Botcazou The problem is that the freeze node for the class-wide subtype built for the expression of the allocator escapes from the dependent expression instead of being stored in its list of actions. gcc/ada/ * freeze.adb (Freeze_Expression.Has_Decl_In_List): Deal specificall

[COMMITTED] ada: Remove dead detection of recursive inlined subprograms

2024-01-09 Thread Marc Poulhiès
From: Piotr Trojanek Inlining of subprogram calls happens in routine Expand_Inlined_Call which calls Establish_Actual_Mapping_For_Inlined_Call. Both routines had detection of recursive calls. The detection in the second routine was dead code. gcc/ada/ * inline.adb (Establish_Actual_Mapp

[COMMITTED] ada: Preliminary cleanup in aliasing support code

2024-01-09 Thread Marc Poulhiès
From: Eric Botcazou This declares an explicit temporary for the fields of the fat pointer type in gnat_to_gnu_entity and removes the GNU_ prefix of the parameters of the relate_alias_sets routine for the sake of brevity. No functional changes. gcc/ada/ * gcc-interface/decl.cc (gnat_to_

[COMMITTED] ada: More aggressive inlining of subprogram calls in GNATprove mode

2024-01-09 Thread Marc Poulhiès
From: Piotr Trojanek Previously if a subprogram call could not be inlined in GNATprove mode, then all subsequent calls to the same subprogram were not inlined either (because a failed attempt to inline clears flag Is_Inlined_Always and we tested this flag when attempting to inline subsequent call

[COMMITTED] ada: Remove unused runtime entity

2024-01-09 Thread Marc Poulhiès
From: Eric Botcazou The compiler has not generated direct attachments for a long time. gcc/ada/ * rtsfind.ads (RE_Id): Remove RE_Attach. (RE_Unit_Table): Likewise. * libgnat/s-finmas.ads (Attach): Delete. * libgnat/s-finmas.adb (Attach): Likewise. Tested on x86_

[COMMITTED] ada: Allow passing private types to generic formal incomplete types

2024-01-09 Thread Marc Poulhiès
From: Bob Duff It is legal to pass a private type, or a type with a component whose type is private, as a generic actual type if the formal is a generic formal incomplete type. This patch fixes a bug in which the compiler would give an error in some such cases. Also misc cleanup. gcc/ada/

[COMMITTED] ada: Do not count comparison of addresses as a modification

2024-01-09 Thread Marc Poulhiès
From: Viljar Indus In some extended code we generate comparisons between the Addresses of some variables. This causes those variables to be considered modified. Whereas in this particular scenario the variables are just referenced. gcc/ada/ * sem_attr.adb: avoid marking a use of the Add

[COMMITTED] ada: Fix bogus Constraint_Error on allocator for access to array of access type

2024-01-09 Thread Marc Poulhiès
From: Eric Botcazou This occurs because the access element type is not its own TYPE_CANONICAL, which creates a discrepancy between the aliasing support code, which deals with types directly, and the middle-end which looks at TYPE_CANONICAL only. gcc/ada/ * gcc-interface/decl.cc (gnat_to

[COMMITTED] ada: Document new SPARK aspect and pragma Always_Terminates

2024-01-09 Thread Marc Poulhiès
From: Piotr Trojanek Add description of a recently added SPARK contract. gcc/ada/ * doc/gnat_rm/implementation_defined_aspects.rst, doc/gnat_rm/implementation_defined_pragmas.rst: Add sections for Always_Terminates. * gnat-style.texi: Regenerate. * gnat_r

[COMMITTED] ada: Ignore defered compile time errors without backend

2023-11-30 Thread Marc Poulhiès
From: Viljar Indus We defer some compile time warnings and errors until the backend has added the extra information needed. However it is not guaranteed that the backend has run by this point. Avoid checking these errors if the backend has not been activated and no code has been generated. gcc/a

[COMMITTED] ada: Support Put_Image for types in user-defined instances of predefined generics.

2023-11-30 Thread Marc Poulhiès
From: Steve Baird Predefined units do not generally support the Put_Image attribute. There are good reasons for this in most cases. But if a user-defined instantiation of a predefined generic occurs in Ada 2022 code, then Put_Image can be supported for types declared therein. Add this support. g

[COMMITTED] ada: Rework fix for wrong finalization of qualified aggregate in allocator

2023-11-30 Thread Marc Poulhiès
From: Eric Botcazou The problem is that there is no easy method to insert an action after an arbitrary node in the tree, so the original fix does not correctly work when the allocator is nested in another expression. Therefore this moves the burden of the insertion from Apply_Predicate_Check to

[COMMITTED] ada: Remove SPARK legality checks

2023-11-30 Thread Marc Poulhiès
From: Yannick Moy SPARK legality checks apply only to code with SPARK_Mode On, and are performed again in GNATprove for detecting SPARK-compatible declarations in code with SPARK_Mode Auto. Remove this duplication, to only perform SPARK legality checking in GNATprove. After this patch, only a few

Re: [PATCH] ada: Fix Ada bootstrap on macOS

2023-12-01 Thread Marc Poulhiès
Rainer Orth writes: > The recent warning changes broke Ada bootstrap on macOS: > > adaint.c: In function '__gnat_copy_attribs': > adaint.c:3336:10: error: implicit declaration of function 'utimes'; did you > mean 'utime'? [-Wimplicit-function-declaration] > 3336 | if (utimes (to, tbuf) =

Re: [PATCH] testsuite: refine gcc.dg/analyzer/fd-4.c test for newlib

2023-12-01 Thread Marc Poulhiès
Marc Poulhiès writes: > Contrary to glibc, including stdio.h from newlib defines mode_t which > conflicts with the test's type definition. > > .../gcc/testsuite/gcc.dg/analyzer/fd-4.c:19:3: error: redefinition of typedef > 'mode_t' with different type > ...

Re: [PATCH] testsuite: require avx_runtime for some tests

2023-12-01 Thread Marc Poulhiès
Marc Poulhiès writes: > These 3 tests fails parsing the 'vect' dump when not using -mavx. Make > the dependency explicit. > > gcc/testsuite/ChangeLog: > > * gcc.dg/vect/vect-ifcvt-18.c: Add dep on avx_runtime. > * gcc.dg/vect/vect-simd-clone-16f.c:

Re: [PATCH] testsuite: skip gcc.target/i386/pr106910-1.c test when using newlib

2023-12-01 Thread Marc Poulhiès
Marc Poulhiès writes: > Using newlib produces a different codegen because the support for c99 > differs (see libc_has_function hook). > > gcc/testsuite/ChangeLog: > > * gcc.target/i386/pr106910-1.c: Disable for newlib. > --- > Tested on x86_64-linux and x86_6

[PATCH] testsuite: add missing dg-require ifunc in pr105554.c

2023-12-07 Thread Marc Poulhiès
The 'target_clones' attribute depends on the ifunc support. gcc/testsuite/ChangeLog: * gcc.target/i386/pr105554.c: Add dg-require ifunc. --- Tested on x86_64-linux and x86_64-elf. Ok for master? gcc/testsuite/gcc.target/i386/pr105554.c | 1 + 1 file changed, 1 insertion(+) diff --git a

[PATCH] testsuite: adjust call to abort in excess-precision-12

2023-12-07 Thread Marc Poulhiès
abort() is not always available, using the builtin as done in other tests. gcc/testsuite/ChangeLog: * g++.target/i386/excess-precision-12.C: call builtin_abort instead of abort. --- Tested on x86_64-linux and x86_64-elf. Ok for master? gcc/testsuite/g++.target/i386/excess-precision-12

[PATCH] testsuite: require avx_runtime for vect-simd-clone-17f

2023-12-07 Thread Marc Poulhiès
The test fails parsing the 'vect' dump when not using -mavx. Make the dependency explicit. gcc/testsuite/ChangeLog: * gcc.dg/vect/vect-simd-clone-17f.c: Add dep on avx_runtime. --- Tested on x86_64-linux and x86_64-elf. Ok for master? gcc/testsuite/gcc.dg/vect/vect-simd-clone-17f.c | 3

Re: [PATCH] testsuite: add missing dg-require ifunc in pr105554.c

2023-12-08 Thread Marc Poulhiès
Jakub Jelinek writes: > On Thu, Dec 07, 2023 at 05:25:39PM +0100, Marc Poulhiès wrote: >> The 'target_clones' attribute depends on the ifunc support. >> >> gcc/testsuite/ChangeLog: >> * gcc.target/i386/pr105554.c: Add dg-require ifunc. >> -

Re: [PATCH] testsuite: require avx_runtime for vect-simd-clone-17f

2023-12-08 Thread Marc Poulhiès
Jakub Jelinek writes: > This looks wrong, then it won't be tested at all on non-x86 targets. Right, I'll look for a better fix. Should I revert r14-6272 that has the same issue of disabling the modified tests on non-x86? Marc

Re: [PATCH] testsuite: require avx_runtime for some tests

2023-12-08 Thread Marc Poulhiès
Thomas Schwinge writes: > Hi Marc! > > On 2023-11-06T11:59:18+0100, Marc Poulhiès wrote: >> These 3 tests fails parsing the 'vect' dump when not using -mavx. Make >> the dependency explicit. > > But that means that the tests are now enabled *only* for >

Re: [PATCH] testsuite: require avx_runtime for vect-simd-clone-17f

2023-12-08 Thread Marc Poulhiès
Marc Poulhiès writes: > Should I revert r14-6272 that has the same issue of disabling the > modified tests on non-x86? I've reverted the r14-6272. Marc

Re: [PATCH] ada: Fix Ada bootstrap on FreeBSD

2023-12-11 Thread Marc Poulhiès
Rainer Orth writes: > Ada bootstrap on FreeBSD/amd64 was also broken by the recent warning > changes: > > terminals.c: In function 'allocate_pty_desc': > terminals.c:1200:12: error: implicit declaration of function 'openpty'; did > you > mean 'openat'? [-Wimplicit-function-declaration] > 1200

Re: [PATCH] testsuite: adjust call to abort in excess-precision-12

2023-12-11 Thread Marc Poulhiès
Hello, > Why wouldn't they have abort and what else does __builtin_abort () expand > to? It expands to abort but works around the "abort is undeclared" error. > There are 2000+ other tests in gcc.target/i386/ which call abort (), > not __builtin_abort (), after including directly or indirectly

[PATCH v2] testsuite: adjust call to abort in excess-precision-12

2023-12-11 Thread Marc Poulhiès
On non-hosted targets, cstdlib may not be sufficient to have abort defined, but it should be for std::abort. gcc/testsuite/ChangeLog: * g++.target/i386/excess-precision-12.C: call std::abort instead of abort. --- Changed from calling __builtin_abort to std::abort, as advised. Ok for mas

[COMMITTED] ada: Fix internal error on address of element of packed array component

2023-11-07 Thread Marc Poulhiès
From: Eric Botcazou This occurs when the component is part of a discriminated type and its offset depends on a discriminant, the problem being that the front-end generates an incomplete Bit_Position attribute reference. gcc/ada/ * exp_pakd.adb (Get_Base_And_Bit_Offset): Use the full com

[COMMITTED] ada: Fix scope of semantic style_check pragmas

2023-11-07 Thread Marc Poulhiès
From: Viljar Indus Restore the original state of Style_Check pragmas before analyzing each compilation unit to avoid Style_Check pragmas from unit affecting the style checks of a different unit. gcc/ada/ * sem_ch10.adb: (Analyze_Compilation_Unit): Restore the orignal state of st

[COMMITTED] ada: Simplify code for Ignore_Style_Checks_Pragmas

2023-11-07 Thread Marc Poulhiès
From: Viljar Indus gcc/ada/ * sem_prag.adb: (Analyze_Pragma): Reduce the number of nested if statements. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_prag.adb | 26 +++--- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git

[COMMITTED] ada: Cleanup getting of actual subtypes

2023-11-07 Thread Marc Poulhiès
From: Piotr Trojanek Avoid potentially unnecessary call to Etype. gcc/ada/ * sem_util.adb (Get_Actual_Subtype_If_Available): Only call Etype when necessary. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_util.adb | 4 +--- 1 file changed, 1 insertion(+),

[COMMITTED] ada: Fix style in declaration of routine for expansion of packed arrays

2023-11-07 Thread Marc Poulhiès
From: Piotr Trojanek Style cleanup. gcc/ada/ * exp_pakd.adb (Setup_Inline_Packed_Array_Reference): Remove extra whitespace from the list of parameters. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/exp_pakd.adb | 20 ++-- 1 file changed, 10 i

[COMMITTED] ada: Fix handling of actual subtypes for expanded names

2023-11-07 Thread Marc Poulhiès
From: Piotr Trojanek gcc/ada/ * sem_util.adb (Get_Actual_Subtype,Get_Actual_Subtype_If_Available): Fix handling of expanded names. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_util.adb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) di

[COMMITTED] ada: Error in prefix-notation call

2023-11-07 Thread Marc Poulhiès
From: Bob Duff The compiler gives a wrong error for a call of the form X.Y(...) when Y is inherited indirectly via an interface. gcc/ada/ * sem_ch4.adb (Is_Private_Overriding): Return True in the case where a primitive operation is publicly inherited but privately overri

[COMMITTED] ada: Change local variables to constants in expansion of packed arrays

2023-11-07 Thread Marc Poulhiès
From: Piotr Trojanek Cleanup; semantics is unaffected. gcc/ada/ * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Change local Decl object from variable to constant. (Setup_Inline_Packed_Array_Reference): Likewise for Csiz. Tested on x86_64-pc-linux-gnu, committed

[COMMITTED] ada: Avoid extra conversion in expansion of packed array assignments

2023-11-07 Thread Marc Poulhiès
From: Piotr Trojanek Expansion of assignments to packed array objects with string literals on the right-hand side, created an unnecessary conversion, i.e.: ... := component_type (declare temp : component_type := "string_literal"; begin temp) Now the expansio

[COMMITTED] ada: Fix expansion of type aspects with handling of aspects

2023-11-07 Thread Marc Poulhiès
From: Piotr Trojanek The new handling of aspects stores the aspect expression as the Expression_Copy of the aspect and not as the Entity of the aspect identified. This has been changed for most of the aspects, but not for Type_Invariant and Default_Initial_Condition, which have custom expansion.

[COMMITTED] ada: Simplify expansion of packed array assignments

2023-11-07 Thread Marc Poulhiès
From: Piotr Trojanek When expanding assignment to a packed array object, e.g. a formal parameter with mode OUT that might have unconstrained type, we took the component type and component size from the constrained actual subtype. It is simpler to take these properties from the nominal type of the

[COMMITTED] ada: Simplify handling of known values in expansion of packed arrays

2023-11-07 Thread Marc Poulhiès
From: Piotr Trojanek If an expression value is not known at compile time, it can be represented with No_Uint and doesn't require a dedicated flag. Code cleanup; behavior is unaffected. gcc/ada/ * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Remove Rhs_Val_Known; represent unkn

[COMMITTED] ada: Fix incorrect resolution of overloaded function call in instance

2023-11-07 Thread Marc Poulhiès
From: Eric Botcazou The problem occurs when the function call is the operand of an equality operator, the type used to do the comparison is declared outside of the generic construct but visible inside it, and this generic construct also declares two functions with the same profile except for the

[COMMITTED] ada: Fix extra whitespace after END keywords

2023-11-07 Thread Marc Poulhiès
From: Piotr Trojanek Style cleanup. gcc/ada/ * exp_pakd.adb, libgnarl/s-osinte__android.ads, libgnarl/s-osinte__linux.ads, libgnarl/s-osinte__qnx.ads, libgnarl/s-osinte__rtems.ads, libgnat/s-gearop.adb, libgnat/s-poosiz.adb, sem_util.adb: Fix style. Tested on x8

[COMMITTED] ada: Fix debug info for aliased packed array with unconstrained nominal subtype

2023-11-07 Thread Marc Poulhiès
From: Eric Botcazou The front-end now rewrites it as a renaming when it is initialized with a function call and the same processing must be applied in the renaming case as in the regular case for this kind of special objects. gcc/ada/ * gcc-interface/decl.cc (gnat_to_gnu_entity) : Apply

  1   2   3   4   5   6   7   8   9   10   >