aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/doc
AgeCommit message (Collapse)AuthorFilesLines
2022-01-31[Ada] doc/share/conf.py: fix string handlingPierre-Marie de Rodat1-1/+1
gcc/ada/ * doc/share/conf.py: Remove spurious call to ".decode()".
2022-01-07[Ada] Cleanup and modification of unreferenced warningsJustin Squirek1-1/+3
gcc/ada/ * comperr.adb (Delete_SCIL_Files): Replace unnecessary Unreferenced pragma with specific pragma Warnings. * doc/gnat_rm/implementation_defined_pragmas.rst (Unreferenced): Add documentation for new behavior. * gnat_rm.texi: Regenerate. * erroutc.adb (Set_At): Remove useless assignment. * exp_ch2.adb (In_Assignment_Context): Deleted. (Is_Object_Renaming_Name): Replace calls to Is_LHS with calls to Known_To_Be_Assigned. (Expand_Current_Value): Replace calls to May_Be_Lvalue with calls to Known_To_Be_Assigned. (Expand_Entry_Paramter): Replace calls to In_Assignment_Context with calls to Known_To_Be_Assigned. * exp_ch4.adb (Expand_N_Op_Rem): Remove unnecessary Unreferenced pragma. * exp_imgv.adb (Build_Enumeration_Image_Tables): Default initialize S_N. * ghost.adb (Check_Ghost_Policy): Replace call to May_Be_Lvalue with call to Known_To_Be_Assigned. * lib-xref.adb (Is_On_LHS): Deleted. (OK_To_Set_Referenced): Rewrite subprogram to encompass the new pragma Unreferenced behavior. (Process_Deferred_References): Replace call to Is_LHS with call to Known_To_Be_Assigned. * libgnarl/s-taasde.adb, libgnarl/s-tasren.adb, libgnarl/s-tpobop.adb, libgnat/a-calend.adb, libgnat/a-calfor.adb, 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-cdlili.adb, libgnat/a-cfhama.adb, libgnat/a-cforse.adb, libgnat/a-cidlli.adb, libgnat/a-cihama.adb, libgnat/a-cihase.adb, libgnat/a-cimutr.adb, libgnat/a-ciorma.adb, libgnat/a-ciormu.adb, libgnat/a-ciorse.adb, libgnat/a-cohama.adb, libgnat/a-cohase.adb, libgnat/a-comutr.adb, libgnat/a-convec.adb, libgnat/a-coorma.adb, libgnat/a-coormu.adb, libgnat/a-coorse.adb, libgnat/a-crdlli.adb, libgnat/a-tigeau.adb, libgnat/a-wtgeau.adb, libgnat/a-ztgeau.adb, libgnat/g-calend.adb, libgnat/g-comlin.adb, libgnat/g-expect.adb, libgnat/g-mbflra.adb, libgnat/g-spipat.adb, libgnat/s-fatgen.adb, libgnat/s-fileio.adb, libgnat/s-os_lib.adb, libgnat/s-regpat.adb, libgnat/s-valued.adb, libgnat/s-valuer.adb: Remove unnecessary Unreferenced pragmas * sem_ch10.adb (Process_Spec_Clauses): Remove useless assignments. * sem_ch13.adb (Validate_Literal_Aspect): Default initialize I. * sem_ch3.adb (Build_Derived_Concurrent_Type): Default initialize Corr_Decl. * sem_ch8.adb (Undefined): Replace calls to Is_LHS with calls to Known_To_Be_Assigned. (In_Abstract_View_Pragma): Likewise. * sem_eval.adb (Eval_Selected_Component): Replace calls to Is_LHS with calls to Known_To_Be_Assigned. * sem_res.adb (Init_Component): Replace calls to May_Be_Lvalue with calls to Known_To_Be_Assigned. * sem_util.adb, sem_util.ads (End_Label_Loc): Default initialize Owner. (Explain_Limited_Type): Default initialize Expr_Func. (Find_Actual): Modified to handle entry families. (Is_LHS): Deleted. (May_Be_Lvalue): Deleted. (Known_To_Be_Assigned): Modified and improved to handle all cases. * sem_warn.adb (Traverse_Result): Replace calls to May_Be_Lvalue with calls to Known_To_Be_Assigned. (Check_Ref): Modify error on unreferenced out parameters to take into account different warning flags.
2022-01-07[Ada] Update -gnatwr doc for import of parent packageEtienne Servais1-0/+2
gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update -gnatwr documentation. * gnat_ugn.texi: Regenerate.
2022-01-06[Ada] New restriction No_Tagged_Type_RegistrationBob Duff1-1/+12
gcc/ada/ * libgnat/s-rident.ads (No_Tagged_Type_Registration): New restriction identifier. * restrict.ads (Implementation_Restriction): Add restriction. * exp_ch7.adb (Process_Declarations): Suppress tagged-type-related finalization actions if the restriction is active. Call RTE_Available last. * exp_disp.adb (Make_DT): Likewise. * exp_util.adb (Requires_Cleanup_Actions): Return False for a tagged type declaration if No_Tagged_Type_Registration is active. * sem_attr.adb (Check_Stream_Attribute): Check restriction No_Tagged_Type_Registration. * libgnat/a-except.ads (Null_Occurrence): Minor: Initialize, to avoid stopping at a warning in gdb. * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: Document new restriction. * gnat_rm.texi: Regenerate.
2022-01-05[Ada] Remove Compiler_Unit[_Warning] pragmasMarc Poulhiès1-33/+0
gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst (Compiler_Unit) (Compiler_Unit_Warning): Remove. * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate. * libgnat/g-dynhta.ads: Add comment indicating this unit is built during stage1. * libgnat/g-dyntab.ads: Likewise. * libgnat/g-graphs.ads: Likewise. * libgnat/g-lists.ads: Likewise. * libgnat/g-sets.ads: Likewise. * libgnat/gnat.ads: Likewise. * libgnat/s-pehage.ads: Likewise. * libgnat/s-resfil.ads: Likewise. * libgnat/s-rident.ads: Likewise. * libgnat/s-utf_32.ads: Likewise. * errout.ads: Update comment. * opt.ads (Opt): Remove Compiler_Unit. * par-ch5.adb (All_Pragmas): Remove call to Check_Compiler_Unit. * sem_prag.adb (Analyze_Pragma): Likewise. * sem_ch4.adb (Non_Static_Choice_Error, Analyze_If_Expression) (Analyze_Set_Membership, Record_Interp): Likewise. * sem_ch11.adb (Analyze_Raise_Expression): Likewise. * sem_ch6.adb: Remove Restric package reference. (Analyze_Extended_Return_Statement): Remove call to Check_Compiler_Unit. * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): Remove handling of Pragma_Compiler_Unit[_Warning}. * restrict.adb (Check_Compiler_Unit): Remove both. * restrict.ads: Likewise. * snames.ads-tmpl (Pragma_Id): Remove Pragma_Compiler_Unit[_Warning]. * libgnat/a-assert.ads: Remove pragma Compiler_Unit_Warning. * libgnat/a-chlat1.ads: Likewise. * libgnat/a-elchha.adb: Likewise. * libgnat/a-elchha.ads: Likewise. * libgnat/a-ioexce.ads: Likewise. * libgnat/a-strhas.ads: Likewise. * libgnat/g-byorma.adb: Likewise. * libgnat/g-byorma.ads: Likewise. * libgnat/g-dyntab.adb: Likewise. * libgnat/g-heasor.ads: Likewise. * libgnat/g-hesora.adb: Likewise. * libgnat/g-hesora.ads: Likewise. * libgnat/g-htable.adb: Likewise. * libgnat/g-htable.ads: Likewise. * libgnat/g-spchge.adb: Likewise. * libgnat/g-spchge.ads: Likewise. * libgnat/g-speche.adb: Likewise. * libgnat/g-speche.ads: Likewise. * libgnat/g-table.ads: Likewise. * libgnat/g-u3spch.adb: Likewise. * libgnat/g-u3spch.ads: Likewise. * libgnat/interfac.ads: Likewise. * libgnat/s-addope.adb: Likewise. * libgnat/s-addope.ads: Likewise. * libgnat/s-assert.adb: Likewise. * libgnat/s-assert.ads: Likewise. * libgnat/s-bitops.adb: Likewise. * libgnat/s-bitops.ads: Likewise. * libgnat/s-carun8.adb: Likewise. * libgnat/s-carun8.ads: Likewise. * libgnat/s-casuti.adb: Likewise. * libgnat/s-casuti.ads: Likewise. * libgnat/s-conca2.adb: Likewise. * libgnat/s-conca2.ads: Likewise. * libgnat/s-conca3.adb: Likewise. * libgnat/s-conca3.ads: Likewise. * libgnat/s-conca4.adb: Likewise. * libgnat/s-conca4.ads: Likewise. * libgnat/s-conca5.adb: Likewise. * libgnat/s-conca5.ads: Likewise. * libgnat/s-conca6.adb: Likewise. * libgnat/s-conca6.ads: Likewise. * libgnat/s-conca7.adb: Likewise. * libgnat/s-conca7.ads: Likewise. * libgnat/s-conca8.adb: Likewise. * libgnat/s-conca8.ads: Likewise. * libgnat/s-conca9.adb: Likewise. * libgnat/s-conca9.ads: Likewise. * libgnat/s-crc32.adb: Likewise. * libgnat/s-crc32.ads: Likewise. * libgnat/s-crtl.ads: Likewise. * libgnat/s-excdeb.adb: Likewise. * libgnat/s-excdeb.ads: Likewise. * libgnat/s-except.ads: Likewise. * libgnat/s-exctab.adb: Likewise. * libgnat/s-exctab.ads: Likewise. * libgnat/s-finmas.ads: Likewise. * libgnat/s-htable.adb: Likewise. * libgnat/s-htable.ads: Likewise. * libgnat/s-mastop.adb: Likewise. * libgnat/s-mastop.ads: Likewise. * libgnat/s-memory.adb: Likewise. * libgnat/s-memory.ads: Likewise. * libgnat/s-os_lib.ads: Likewise. * libgnat/s-parame.adb: Likewise. * libgnat/s-parame.ads: Likewise. * libgnat/s-parame__posix2008.ads: Likewise. * libgnat/s-purexc.ads: Likewise. * libgnat/s-resfil.adb: Likewise. * libgnat/s-restri.adb: Likewise. * libgnat/s-restri.ads: Likewise. * libgnat/s-secsta.adb: Likewise. * libgnat/s-secsta.ads: Likewise. * libgnat/s-soflin.adb: Likewise. * libgnat/s-soflin.ads: Likewise. * libgnat/s-sopco3.adb: Likewise. * libgnat/s-sopco3.ads: Likewise. * libgnat/s-sopco4.adb: Likewise. * libgnat/s-sopco4.ads: Likewise. * libgnat/s-sopco5.adb: Likewise. * libgnat/s-sopco5.ads: Likewise. * libgnat/s-spsufi.ads: Likewise. * libgnat/s-stache.adb: Likewise. * libgnat/s-stache.ads: Likewise. * libgnat/s-stalib.adb: Likewise. * libgnat/s-stalib.ads: Likewise. * libgnat/s-stoele.adb: Likewise. * libgnat/s-stoele.ads: Likewise. * libgnat/s-strcom.adb: Likewise. * libgnat/s-strcom.ads: Likewise. * libgnat/s-strhas.adb: Likewise. * libgnat/s-string.adb: Likewise. * libgnat/s-string.ads: Likewise. * libgnat/s-strops.adb: Likewise. * libgnat/s-strops.ads: Likewise. * libgnat/s-ststop.adb: Likewise. * libgnat/s-ststop.ads: Likewise. * libgnat/s-traceb.adb: Likewise. * libgnat/s-traceb.ads: Likewise. * libgnat/s-traent.adb: Likewise. * libgnat/s-traent.ads: Likewise. * libgnat/s-utf_32.adb: Likewise. * libgnat/s-unstyp.ads: Likewise. * libgnat/s-wchcnv.adb: Likewise. * libgnat/s-wchcnv.ads: Likewise. * libgnat/s-wchcon.adb: Likewise. * libgnat/s-wchcon.ads: Likewise. * libgnat/s-wchjis.adb: Likewise. * libgnat/s-wchjis.ads: Likewise.
2021-12-28docs: replace http:// with https://Martin Liska1-2/+2
I replaced and verified http:// links for various domains. gcc/ada/ChangeLog: * doc/share/gnu_free_documentation_license.rst: Replace http:// with https. * gnat-style.texi: Likewise. * gnat_rm.texi: Likewise. * gnat_ugn.texi: Likewise. gcc/d/ChangeLog: * gdc.texi: Replace http:// with https. gcc/ChangeLog: * doc/contrib.texi: Replace http:// with https. * doc/contribute.texi: Likewise. * doc/extend.texi: Likewise. * doc/gccint.texi: Likewise. * doc/gnu.texi: Likewise. * doc/implement-c.texi: Likewise. * doc/implement-cxx.texi: Likewise. * doc/include/fdl.texi: Likewise. * doc/include/gpl_v3.texi: Likewise. * doc/install.texi: Likewise. * doc/invoke.texi: Likewise. * doc/passes.texi: Likewise. * doc/service.texi: Likewise. * doc/sourcebuild.texi: Likewise. * doc/standards.texi: Likewise. gcc/fortran/ChangeLog: * gfortran.texi: Replace http:// with https. * intrinsic.texi: Likewise. gcc/go/ChangeLog: * gccgo.texi: Replace http:// with https. gcc/jit/ChangeLog: * docs/_build/texinfo/libgccjit.texi: Replace http:// with https. * docs/cp/index.rst: Likewise. * docs/cp/intro/index.rst: Likewise. * docs/cp/intro/tutorial01.rst: Likewise. * docs/cp/intro/tutorial02.rst: Likewise. * docs/cp/intro/tutorial03.rst: Likewise. * docs/cp/intro/tutorial04.rst: Likewise. * docs/cp/topics/asm.rst: Likewise. * docs/cp/topics/compilation.rst: Likewise. * docs/cp/topics/contexts.rst: Likewise. * docs/cp/topics/expressions.rst: Likewise. * docs/cp/topics/functions.rst: Likewise. * docs/cp/topics/index.rst: Likewise. * docs/cp/topics/locations.rst: Likewise. * docs/cp/topics/objects.rst: Likewise. * docs/cp/topics/types.rst: Likewise. * docs/index.rst: Likewise. * docs/internals/index.rst: Likewise. * docs/intro/index.rst: Likewise. * docs/intro/tutorial01.rst: Likewise. * docs/intro/tutorial02.rst: Likewise. * docs/intro/tutorial03.rst: Likewise. * docs/intro/tutorial04.rst: Likewise. * docs/intro/tutorial05.rst: Likewise. * docs/topics/asm.rst: Likewise. * docs/topics/compatibility.rst: Likewise. * docs/topics/compilation.rst: Likewise. * docs/topics/contexts.rst: Likewise. * docs/topics/expressions.rst: Likewise. * docs/topics/function-pointers.rst: Likewise. * docs/topics/functions.rst: Likewise. * docs/topics/index.rst: Likewise. * docs/topics/locations.rst: Likewise. * docs/topics/objects.rst: Likewise. * docs/topics/performance.rst: Likewise. * docs/topics/types.rst: Likewise.
2021-12-02[Ada] Cleanups related to expansion of dispatching primitivesPiotr Trojanek1-1/+1
gcc/ada/ * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst (No_Dispatching_Calls): Fix whitespace in example code. * gnat_rm.texi: Regenerate. * exp_ch13.adb (Expand_N_Freeze_Entity): Replace low-level membership test with a high-level wrapper. * exp_ch3.adb (Expand_Freeze_Record_Type): Remove unnecessary initialization of list of wrapper declarations and unnecessary guard for list of their bodies (if no bodies are created then Append_Freeze_Actions is a no-op).
2021-12-01[Ada] Allow formal functions to have a default in the form of an expression ↵Gary Dismukes1-0/+24
function gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst: Add documentation of the new form of formal subprogram default in the section on language extensions (pragma Extensions_Allowed). * gnat_rm.texi: Regenerate. * gen_il-gen-gen_nodes.adb: Add Expression as a syntactic field of N_Formal_(Abstract|Concrete)_Subprogram_Declaration nodes. * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing support for the new default of a parenthesized expression for formal functions. Issue an error when extensions are not allowed, suggesting use of -gnatX. Update comment with extended syntax for SUBPROGRAM_DEFAULT. * sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): Issue an error when an expression default is given for an abstract formal function. When a default expression is present for a formal function, install the function's formals and preanalyze the expression. (Instantiate_Formal_Subprogram): Fix typo in RM paragraph in a comment. When a formal function has a default expression, create a body for the function that will evaluate the expression and will be called when the default applies in an instantiation. The implicit function is marked as inlined and as having convention Intrinsic.
2021-12-01[Ada] Document System.Atomic_Counters as supported on ARM and AARCH64Piotr Trojanek1-1/+1
gcc/ada/ * doc/gnat_rm/the_gnat_library.rst (System.Atomic_Counters): Sync description with comment in s-atocou.ads. * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Regenerate.
2021-11-09[Ada] Improve integration of strub with type systemsAlexandre Oliva1-14/+46
gcc/ada/ * strub.adb, strub.ads: New files. * exp_attr.adb (Access_Cases): Copy strub mode to subprogram type. * exp_disp.adb (Expand_Dispatching_Call): Likewise. * freeze.adb (Check_Inherited_Conditions): Check that strub modes match overridden subprograms and interfaces. (Freeze_All): Renaming declarations too. * sem_attr.adb (Resolve_Attribute): Reject 'Access to strub-annotated data object. * sem_ch3.adb (Derive_Subprogram): Copy strub mode to inherited subprogram. * sem_prag.adb (Analyze_Pragma): Propagate Strub Machine_Attribute from access-to-subprogram to subprogram type when required, but not from access-to-data to data type. Mark the entity that got the pragma as having a gigi rep item. * sem_res.adb (Resolve): Reject implicit conversions that would change strub modes. (Resolve_Type_Conversions): Reject checked conversions between incompatible strub modes. * doc/gnat_rm/security_hardening_features.rst: Update. * gnat_rm.texi: Regenerate. * libgnat/a-except.ads (Raise_Exception): Revert strub-callable annotation in public subprogram. * libgnat/s-arit128.ads (Multiply_With_Ovflo_Check128): Likewise. * libgnat/s-arit64.ads (Multiply_With_Ovflo_Check64): Likewise. * libgnat/s-secsta.ads (SS_Allocate): Likewise. (SS_Mark, SS_Release): Likewise. * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add ada/strub.o.
2021-11-09[Ada] Document the SuSE kernel bugTom Tromey1-0/+17
gcc/ada/ * doc/gnat_ugn/platform_specific_information.rst: Document the SuSE kernel bug. * gnat_ugn.texi: Regenerate.
2021-10-30Implied compares in Ada Harded Conditionals documentationAlexandre Oliva1-3/+4
Improve the wording on optimizations that prevent compare hardening, so as to also cover cases in which explicit compares get combined into operations with implied compares. for gcc/ada/ChangeLog * doc/gnat_rm/security_hardening_features.rst: Mention optimization to operations with implied compares.
2021-10-28hardened conditionalsAlexandre Oliva1-0/+40
This patch introduces optional passes to harden conditionals used in branches, and in computing boolean expressions, by adding redundant tests of the reversed conditions, and trapping in case of unexpected results. Though in abstract machines the redundant tests should never fail, CPUs may be led to misbehave under certain kinds of attacks, such as of power deprivation, and these tests reduce the likelihood of going too far down an unexpected execution path. for gcc/ChangeLog * common.opt (fharden-compares): New. (fharden-conditional-branches): New. * doc/invoke.texi: Document new options. * gimple-harden-conditionals.cc: New. * Makefile.in (OBJS): Build it. * passes.def: Add new passes. * tree-pass.h (make_pass_harden_compares): Declare. (make_pass_harden_conditional_branches): Declare. for gcc/ada/ChangeLog * doc/gnat_rm/security_hardening_features.rst (Hardened Conditionals): New. for gcc/testsuite/ChangeLog * c-c++-common/torture/harden-comp.c: New. * c-c++-common/torture/harden-cond.c: New.
2021-10-25[Ada] Relax INOX restrictions when casing on composite value.Steve Baird1-3/+18
gcc/ada/ * sem_case.adb (Composite_Case_Ops.Box_Value_Required): A new function which takes a component type and returns a Boolean. Returns True for the cases which were formerly forbidden as components (these checks were formerly performed in the now-deleted procedure Check_Composite_Case_Selector.Check_Component_Subtype). (Composite_Case_Ops.Normalized_Case_Expr_Type): Hoist this function out of the Array_Case_Ops package because it has been generalized to also do the analogous thing in the case of a discriminated type. (Composite_Case_Ops.Scalar_Part_Count): Return 0 if Box_Value_Required returns True for the given type/subtype. (Composite_Case_Ops.Choice_Analysis.Choice_Analysis.Component_Bounds_Info. Traverse_Discrete_Parts): Return without doing anything if Box_Value_Required returns True for the given type/subtype. (Composite_Case_Ops.Choice_Analysis.Parse_Choice.Traverse_Choice): If Box_Value_Required yields True for a given component type, then check that the value of that component in a choice expression is indeed a box (in which case the component is ignored). * doc/gnat_rm/implementation_defined_pragmas.rst: Update documentation. * gnat_rm.texi: Regenerate.
2021-10-20[Ada] Warning on nonmatching subtypes in fully conforming subprogram specs ↵Gary Dismukes1-0/+19
and bodies gcc/ada/ * sem_ch6.adb: Add with and use of Warnsw. (Check_Conformance): Report a warning when subtypes or designated subtypes of formal parameters or result subtypes denote different declarations between the spec and body of the (Subprogram_Subtypes_Have_Same_Declaration): New function nested within Check_Conformance that determines whether two subtype entities referenced in a subprogram come from the same declaration. Returns True immediately if the subprogram is in a generic instantiation, or the subprogram is marked Is_Internal or is declared in an internal (GNAT library) unit, or GNAT_Mode is enabled, otherwise compares the nonlimited views of the entities (or their designated subtypes' nonlimited views in the anonymous access cases). (Nonlimited_View_Of_Subtype): New function nested within function Subprogram_Subtypes_Have_Same_Declaration that returns Non_Limited_View of a type or subtype that is an incomplete or class-wide type that comes from a limited of a package (From_Limited_With is True for the entity), or returns Full_View when the nonlimited view is an incomplete type. Otherwise returns the entity passed in. * warnsw.ads (Warn_On_Pedantic_Checks): New warning flag. (type Warning_Record): New component Warn_On_Pedantic_Checks. * warnsw.adb (All_Warnings): Set Warn_On_Pedantic_Checks from parameter Setting. (Restore_Warnings): Restore the value of the Warn_On_Pedantic_Checks flag. (Save_Warnings): Save the value of the Warn_On_Pedantic_Checks flag. (Set_Underscore_Warning_Switch): Add settings of the Warn_On_Pedantic flag according to the switch ("-gnatw_p" vs. "-gnatw_P"). * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add documentation of new switches -gnatw_p and -gnatw_P (warnings for pedantic checks). * gnat_ugn.texi: Regenerate. * usage.adb: Add Warn_On_Pedantic_Checks.
2021-10-05[Ada] introduce stack scrub (strub) featureAlexandre Oliva3-0/+93
gcc/ada/ * doc/gnat_rm.rst: Add... * doc/gnat_rm/security_hardening_features.rst: New. * doc/gnat_rm/about_this_guide.rst: Link to new chapter. * gnat_rm.texi: Regenerate. * gcc-interface/utils.c (handle_strub_attribute): New. (gnat_internal_attribute_table): Add strub. * libgnat/a-except.adb: Make Rcheck_CE_* strub-callable. * libgnat/a-except.ads (Raise_Exception): Likewise. (Raise_Exception_Always): Likewise. * libgnat/s-arit128.ads (Multiply_With_Ovflo_Check128): Likewise. * libgnat/s-arit64.ads (Multiply_With_Ovflo_Check64): Likewise. * libgnat/s-secsta.ads (SS_Allocate, SS_Mark, SS_Release): Likewise.
2021-10-05[Ada] Forbids use of Compile_Time_(Error|Warning) as configuration pragmaEtienne Servais2-52/+41
gcc/ada/ * sem_prag.adb (Analyze_Pragma): Forbid use of Compile_Time_(Error|Warning) as configuration pragma. * doc/gnat_ugn/the_gnat_compilation_model.rst: Compile_Time_(Error|Warning) and Compiler_Unit(_Warning) are not configuration pragmas and shall not be listed as such. The following pragmas are either obsolete or undocumented: No_Run_Time, Propagate_Exceptions, Rational, Ravenscar, Restricted_Run_Time, Short_Descriptors, Universal_Data. Fix some typos (notably on Restriction_Warnings). * doc/gnat_rm/implementation_defined_pragmas.rst: Move Rename_Pragma documentation to alphabetical order. * gnat_rm.texi, gnat_ugn.texi: Regenerate.
2021-10-04[Ada] Incremental patch for restriction No_Dynamic_Accessibility_ChecksJustin Squirek1-0/+38
gcc/ada/ * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: Add new entry for No_Dynamic_Accessibility_Checks documenting behavior. * gnat_rm.texi: Regenerate. * exp_ch4.adb (Expand_N_In): Perform special expansion for membership tests when No_Dynamic_Accessibility_Checks is active. * sem_attr.adb (Resolve_Attribute): Skip static accessibility check on actuals for anonymous access type formal parameters, and add constants for readability. * sem_util.adb (Function_Call_Or_Allocator_Level): Use the innermost master for determining the level for function calls within the alternative accessibility model. (Type_Access_Level): Properly get the level for anonymous access function result types.
2021-10-04[Ada] Document the current behaviour of -gnateA switchPiotr Trojanek1-3/+4
gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst (gnateA): This switch no longer looks at the formal parameter type being composite (as originally mandated by SPARK), but in the parameter passing mechanism being not specified (as currently mandated by Ada). * gnat_ugn.texi: Regenerate.
2021-10-04[Ada] Adjust documentation of -fdump-ada-spec in GNAT UGEric Botcazou1-40/+12
gcc/ada/ * doc/gnat_ugn/the_gnat_compilation_model.rst (Binding generation): Document specific behavior for /include/-ending paths and update. * gnat_ugn.texi: Regenerate.
2021-10-01[Ada] Document rounding mode assumed for dynamic floating-point computationsEric Botcazou1-6/+6
gcc/ada/ * doc/gnat_rm/implementation_defined_characteristics.rst: Document the rounding mode assumed for dynamic computations as per 3.5.7(16). * gnat_rm.texi: Regenerate.
2021-10-01[Ada] Document that gnatmem requires fixed-position executablesEric Botcazou1-6/+8
gcc/ada/ * doc/gnat_ugn/gnat_and_program_execution.rst (gnatmem): Document that it works only with fixed-position executables.
2021-09-23[Ada] Adjust documentation of gnatsymbolizeEric Botcazou1-10/+8
gcc/ada/ * doc/gnat_ugn/gnat_utility_programs.rst (gnatsymbolize): Document new --load option and -g1 as minimal compilation requirement.
2021-09-23[Ada] Update "Implementation Defined Characteristics" documentation.Steve Baird1-311/+379
gcc/ada/ * doc/gnat_rm/implementation_defined_characteristics.rst: Update this section to reflect the current version of Ada RM M.2. * gnat_rm.texi: Regenerate.
2021-09-22[Ada] Minor doc improvementArnaud Charlet1-1/+4
gcc/ada/ * doc/gnat_ugn/platform_specific_information.rst: Improve doc on permission and containers. * gnat_ugn.texi: Regenerate.
2021-09-22[Ada] Add -gnatX support for casing on array valuesSteve Baird1-3/+11
gcc/ada/ * exp_ch5.adb (Expand_General_Case_Statement.Pattern_Match): Add new function Indexed_Element to handle array element comparisons. Handle case choices that are array aggregates, string literals, or names denoting constants. * sem_case.adb (Composite_Case_Ops.Array_Case_Ops): New package providing utilities needed for casing on arrays. (Composite_Case_Ops.Choice_Analysis): If necessary, include array length as a "component" (like a discriminant) when traversing components. We do not (yet) partition choice analysis to deal with unequal length choices separately. Instead, we embed everything in the minimum-dimensionality Cartesian product space needed to handle all choices properly; this is determined by the length of the longest choice pattern. (Composite_Case_Ops.Choice_Analysis.Traverse_Discrete_Parts): Include length as a "component" in the traversal if necessary. (Composite_Case_Ops.Choice_Analysis.Parse_Choice.Traverse_Choice): Add support for case choices that are string literals or names denoting constants. (Composite_Case_Ops.Choice_Analysis): Include length as a "component" in the analysis if necessary. (Check_Choices.Check_Case_Pattern_Choices.Ops.Value_Sets.Value_Index_Count): Improve error message when capacity exceeded. * doc/gnat_rm/implementation_defined_pragmas.rst: Update documentation to reflect current implementation status. * gnat_rm.texi: Regenerate.
2021-09-14Implement PR ada/101385Eric Botcazou1-4/+7
For consistency's sake with -Wall & -w, this makes -Werror imply -gnatwe. gcc/ada/ PR ada/101385 * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-Wall): Minor fixes. (-w): Likewise. (-Werror): Document that it also sets -gnatwe by default. * gcc-interface/lang-specs.h (ada): Expand -gnatwe if -Werror is passed and move expansion of -gnatw switches to before -gnatez.
2021-07-09[Ada] Add -gnatX support for casing on discriminated valuesSteve Baird1-6/+5
gcc/ada/ * exp_ch5.adb (Expand_General_Case_Statement): Add new function Else_Statements to handle the case of invalid data analogously to how it is handled when casing on a discrete value. * sem_case.adb (Has_Static_Discriminant_Constraint): A new Boolean-valued function. (Composite_Case_Ops.Scalar_Part_Count): Include discriminants when traversing components. (Composite_Case_Ops.Choice_Analysis.Traverse_Discrete_Parts): Include discriminants when traversing components; the component range for a constrained discriminant is a single value. (Composite_Case_Ops.Choice_Analysis.Parse_Choice): Eliminate Done variable and modify how Next_Part is computed so that it is always correct (as opposed to being incorrect when Done is True). This includes changes in Update_Result (a local procedure). Add new local procedure Update_Result_For_Box_Component and call it not just for box components but also for "missing" components (components associated with an inactive variant). (Check_Choices.Check_Composite_Case_Selector.Check_Component_Subtype): Instead of disallowing all discriminated component types, allow those that are unconstrained or statically constrained. Check discriminant subtypes along with other component subtypes. * doc/gnat_rm/implementation_defined_pragmas.rst: Update documentation to reflect current implementation status. * gnat_rm.texi: Regenerate.
2021-07-09[Ada] Add paragraph about representation changes and Scalar_Storage_OrderEric Botcazou1-0/+40
gcc/ada/ * doc/gnat_rm/implementation_defined_attributes.rst (Scalar_Storage_Order): Add paragraph about representation changes. * gnat_rm.texi: Regenerate.
2021-07-06[Ada] Support for Object.Op subprogram-call notation for untagged typesGary Dismukes1-0/+17
gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst: Add a description of the feature of prefixed-view calls for untagged types to the section on pragma Extensions_Allowed. * gnat_rm.texi: Regenerate. * einfo.ads: Update specification for Direct_Primitive_Operations to reflect its use for untagged types when Extensions_Allowed is True. * gen_il-gen-gen_entities.adb: Allow Direct_Primitive_Operations as a field of untagged classes of types by removing the "Pre" test of "Is_Tagged_Type (N)", and making that field generally available for all types and subtypes by defining it for Type_Kind and removing its specification for individual classes of types. * sem_ch3.adb (Analyze_Full_Type_Declaration): Initialize the Direct_Primitive_Operations list when not already set for the new (sub)type and its base type (except when Ekind of the type is E_Void, which can happen due to errors in cases where Derived_Type_Declaration is called and perhaps in other situations). (Analyze_Subtype_Declaration): Inherit Direct_Primitive_Operations list from the base type, for record and private cases. (Build_Derived_Record_Type): Initialize the Direct_Primitive_Operations list for derived record and private types. (Build_Derived_Type): Initialize the Direct_Primitive_Operations list for derived types (and also for their associated base types when needed). (Process_Full_View): For full types that are untagged record and private types, copy the primitive operations of the partial view to the primitives list of the full view. * sem_ch4.adb (Analyze_Selected_Component): Allow prefixed notation for subprogram calls in the case of untagged types (when Extensions_Allowed is True). In the case where Is_Private_Type (Prefix_Type) is True, call Try_Object_Operation when a discriminant selector wasn't found. Also call Try_Object_Operation in other type kind cases (when Extensions_Allowed is True). (Try_Object_Operation.Try_One_Prefixed_Interpretation): Prevent early return in the untagged case (when Extensions_Allowed is True). Condition main call to Try_Primitive_Operation on the type having primitives, and after that, if Prim_Result is False, test for case where the prefix type is a named access type with primitive operations and in that case call Try_Primitive_Operation after temporarily resetting Obj_Type to denote the access type (and restore it to the designated type after the call) (Try_Object_Operation.Valid_First_Argument_Of): Do matching type comparison by testing Base_Type (Obj_Type) against Base_Type (Typ), rather than against just Typ, to properly handle cases where the object prefix has a constrained subtype. (Fixes a bug discovered while working on this feature.) * sem_ch6.adb (New_Overloaded_Entity.Check_For_Primitive_Subprogram): Add a primitive of an untagged type to the type's list of primitive operations, for both explicit and implicit (derived, so Comes_From_Source is False) subprogram declarations. In the case where the new primitive overrides an inherited subprogram, locate the primitives Elist that references the overridden subprogram, and replace that element of the list with the new subprogram (done by calling the new procedure Add_Or_Replace_Untagged_Primitive on the result type and each formal atype). (Check_For_Primitive_Subprogram.Add_Or_Replace_Untagged_Primitive): New nested procedure to either add or replace an untagged primitive subprogram in a given type's list of primitive operations (replacement happens in case where the new subprogram overrides a primitive of the type). * sem_ch7.adb (New_Private_Type): When Extensions_Allowed is True, initialize the Direct_Primitive_Operations list of a private type to New_Elmt_List in the case of untagged types. * sem_ch8.adb (Find_Selected_Component): In the case where the prefix is an entity name, relax condition that tests Has_Components so that Analyze_Selected_Component will also be called when Extensions_Allowed is True and the prefix type is any type.
2021-07-06[Ada] Add GNAT RM text regarding Ada 2022 default Put_Image implementationSteve Baird1-0/+20
gcc/ada/ * doc/gnat_rm/implementation_of_specific_ada_features.rst: Add a warning indicating that the details of the default (i.e., selected by the compiler) implementation of T'Put_Image for a nonscalar type T are subject to change. * gnat_rm.texi: Regenerate.
2021-06-21[Ada] INOX: prototype "when" constructsJustin Squirek1-0/+17
gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst: Document new feature under pragma Extensions_Allowed. * gnat_rm.texi: Regenerate. * errout.adb, errout.ads (Error_Msg_GNAT_Extension): Created to issue errors when parsing extension only constructs. * exp_ch11.adb, exp_ch11.ads (Expand_N_Raise_When_Statement): Created to expand raise ... when constucts. * exp_ch5.adb, exp_ch5.ads (Expand_N_Goto_When_Statement): Created to expand goto ... when constructs. * exp_ch6.adb, exp_ch6.ads (Expand_N_Return_When_Statement): Created to expand return ... when constructs. * expander.adb (Expand): Add case entries for "when" constructs. * gen_il-gen-gen_nodes.adb, gen_il-types.ads: Add entries for "when" constructs. * par-ch11.adb (P_Raise_Statement): Add processing for raise ... when. * par-ch5.adb (Missing_Semicolon_On_Exit): Renamed to Missing_Semicolon_On_When and moved to par-util.adb. * par-ch6.adb (Get_Return_Kind): Renamed from Is_Simple and processing added for "return ... when" return kind. (Is_Simple): Renamed to Get_Return_Kind. (P_Return_Statement): Add case for return ... when variant of return statement. * par-util.adb, par.adb (Missing_Semicolon_On_When): Added to centeralize parsing of "when" keywords in the context of "when" constructs. * sem.adb (Analyze): Add case for "when" constructs. * sem_ch11.adb, sem_ch11.ads (Analyze_Raise_When_Statement): Created to analyze raise ... when constructs. * sem_ch5.adb, sem_ch5.ads (Analyzed_Goto_When_Statement): Created to analyze goto ... when constructs. * sem_ch6.adb, sem_ch6.ads (Analyze_Return_When_Statement): Created to analyze return ... when constructs. * sprint.adb (Sprint_Node_Actual): Add entries for new "when" nodes.
2021-06-21[Ada] Implement 'Valid_Value attributeBob Duff1-0/+9
gcc/ada/ * libgnat/s-valuen.ads, libgnat/s-valuen.adb (Value_Enumeration_Pos): New function to compute the 'Pos of the enumeration literal for a given String. Return a special value instead of raising an exception on invalid input. Called by both Valid_Enumeration_Image and Value_Enumeration. (Valid_Enumeration_Image): Return a Boolean indicating whether the String is a valid Image for the given enumeration type. (Value_Enumeration): Implement in terms of Value_Enumeration_Pos. * libgnat/s-vaenu8.ads, libgnat/s-vaen16.ads, libgnat/s-vaen32.ads: Rename Valid_Enumeration_Image from the instances. * libgnat/s-valuti.ads: Correct documentation (it was not true for the null string). * libgnat/s-valuti.adb (Normalize_String): Do not raise Constraint_Error for the null string, nor strings containing nothing but blanks, so that Valid_Enumeration_Image can return False in these cases, rather than raising an exception. * rtsfind.ads (RE_Value_Enumeration_8, RE_Value_Enumeration_16, RE_Value_Enumeration_32): New functions. (RTE_Available): Improve comment (E doesn't have to be a subprogram, although that's the usual case). * sem_attr.adb (nalid_Value): Semantic analysis for new attribute. * exp_attr.adb: Call Expand_Valid_Value_Attribute for new attribute. * exp_imgv.ads, exp_imgv.adb (Expand_Valid_Value_Attribute): New procedure to expand Valid_Value into a call to Valid_Enumeration_Image_NN. (Expand_Value_Attribute): Misc code cleanups. Remove two ??? mark comments. RTE_Available won't work here. For one thing, RTE_Available (X) shouldn't be called until the compiler has decided to make use of X (see comments on RTE_Available), and in this case we're trying to AVOID calling something. * snames.ads-tmpl: New attribute name. * doc/gnat_rm/implementation_defined_attributes.rst: Document new attribute. * gnat_rm.texi: Regenerate.
2021-06-21[Ada] Fix unbalanced parens in documentation of Address clausesPiotr Trojanek1-1/+1
gcc/ada/ * doc/gnat_rm/representation_clauses_and_pragmas.rst (Address Clauses): Fix unbalanced parens. * gnat_rm.texi: Regenerate.
2021-06-18[Ada] Remove AAMP from compiler sourcesBob Duff4-70/+8
gcc/ada/ * ada_get_targ.adb, aspects.ads, checks.adb, cstand.adb, einfo.ads, exp_attr.adb, freeze.adb, get_targ.adb, libgnat/a-textio.ads, libgnat/g-memdum.ads, libgnat/s-scaval__128.adb, libgnat/s-scaval.adb, make.adb, osint.ads, par-prag.adb, sem_ch13.adb, sem_prag.adb, sem_prag.ads, set_targ.adb, set_targ.ads, snames.ads-tmpl, targparm.ads, types.ads: Remove AAMP-specific code. * switch.ads: Minor reformatting. * gen_il-fields.ads, gen_il-gen.adb, gen_il-gen-gen_entities.adb, gen_il-types.ads, einfo-utils.adb, einfo-utils.ads: Package Types now contains "type Float_Rep_Kind is (IEEE_Binary);", which used to also have an enumeral AAMP. Gen_IL can't handle fields of this type, which would be zero sized. Therefore, we move the Float_Rep field into Einfo.Utils as a synthesized attribute. (We do not delete the field altogether, in case we want new floating-point representations in the future.) * doc/gnat_rm/implementation_defined_pragmas.rst, doc/gnat_rm/implementation_defined_aspects.rst, doc/gnat_ugn/building_executable_programs_with_gnat.rst, doc/gnat_ugn/the_gnat_compilation_model.rst: Remove AAMP-specific documentation. * gnat_rm.texi, gnat_ugn.texi: Regenerate.
2021-06-18[Ada] Add documentation for the array fixed-lower-bound featureGary Dismukes1-3/+47
gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst: Add documentation for the array fixed-lower-bound feature. * gnat_rm.texi: Regenerate.
2021-06-18[Ada] Implement basic support for -fdiagnostics-format=jsonGhjuvan Lacambre1-0/+7
gcc/ada/ * back_end.adb (Scan_Back_End_Switches): Set Opt.JSON_Output to True if -fdiagnostics-format=json option is found. * back_end.ads (Scan_Compiler_Arguments): Mention Opt.JSON_Output. * errout.adb (Output_JSON_Message): New procedure. (Output_Messages): If Opt.JSON_Output is True, print messages with new Output_JSON_Message procedure. * opt.ads: Declare JSON_Output variable. * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Mention new -fdiagnostics-format option. * gnat_ugn.texi: Regenerate.
2021-06-17[Ada] Casing on composite valuesSteve Baird1-0/+86
gcc/ada/ * exp_ch5.adb (Expand_N_Case_Statement.Expand_General_Case_Statement): New subprogram. (Expand_N_Case_Statement): If extensions are allowed and the case selector is not of a discrete type, then call Expand_General_Case_Statement to generate expansion instead of flagging the non-discrete selector as an error. * sem_case.ads (Is_Case_Choice_Pattern): New Boolean-valued function for testing whether a given expression occurs as part of a case choice pattern. * sem_case.adb (Composite_Case_Ops): New package providing support routines for the new form of case statements. This includes a nested package, Composite_Case_Ops.Value_Sets, which encapsulates the "representative values" implementation of composite value sets. (Check_Choices.Check_Case_Pattern_Choices): New procedure for semantic checking of non-discrete case choices. This includes the checks pertaining to coverage and overlapping. (Check_Choices.Check_Composite_Case_Selector): New procedure for semantic checking of non-discrete case selectors. (Check_Choices): If extensions are allowed then a non-discrete selector type no longer implies that an error must have been flagged earlier. Instead of simply returning, call Check_Composite_Case_Selector and Check_Case_Pattern_Choices. (Is_Case_Choice_Pattern): Body of new function declared in sem_case.ads . * sem_ch5.adb (Analyze_Case_Statement): If extensions are allowed, then we can't use RM 5.4's "The selecting_expression is expected to be of any discrete type" name resolution rule. Handle the case where the type of the selecting expression is not discrete, as well as the new ambiguous-name-resolution error cases made possible by this change. * sem_res.adb (Resolve_Entity_Name): It is ok to treat the name of a type or subtype as an expression if it is part of a case choice pattern, as in "(Field1 => Positive, Field2 => <>)". * exp_aggr.adb (Expand_Record_Aggregate): Do not expand case choice aggregates. * gen_il-fields.ads: Define two new node attributes, Binding_Chars and Multidefined_Bindings. * gen_il-gen-gen_nodes.adb: The new Multidefined_Bindings attribute is Boolean-valued and may be set on N_Case_Statement_Alternative nodes. The new Binding_Chars attribute is Name_Id-valued and may be set on N_Component_Association nodes. * par-ch4.adb (P_Record_Or_Array_Component_Association): When parsing a component association, check for both new syntax forms used to specify a bound value in a case-choice aggregate. In the case of a box value, an identifier may occur within the box, as in "Foo => <Abc>" instead of "Foo => <>". In the more general case, an expression (or a box) may be followed by "is <identifier>", as in "Foo => Bar is Abc" instead of just "Foo => Bar". * sem_aggr.adb (Resolve_Record_Aggregate): Do not transform box component values in a case-choice aggregate. * sinfo.ads: Provide comments for the new attributes added in gen_il-fields.ads. * doc/gnat_rm/implementation_defined_pragmas.rst: Describe this new feature in documentation for pragma Extensions_Allowed. * gnat_rm.texi: Regenerate.
2021-06-17[Ada] Fix punctuation in documentation of warnings for aliasing actualsPiotr Trojanek1-1/+1
gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-gnatw.I): Remove double period at the end of sentence. * gnat_ugn.texi: Regenerate.
2021-06-16[Ada] Include info about containers in GNAT RM Implementation Advice sectionSteve Baird1-0/+16
gcc/ada/ * doc/gnat_rm/implementation_advice.rst: Add a section for RM A.18 . * gnat_rm.texi: Regenerate.
2021-06-16[Ada] Clarify the documentation of -gnaty0 style check optionSergey Rybin1-2/+12
gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Instead of referring to the formatting of the Ada examples in Ada RM add use the list of checks that are actually performed. * gnat_ugn.texi: Regenerate.
2021-06-15[Ada] No_Task_Parts aspectBob Duff1-0/+13
gcc/ada/ * aspects.ads (No_Task_Parts): New aspect. * snames.ads-tmpl: Add the aspect name. * exp_ch6.adb (Might_Have_Tasks): Return False if this is a class-wide type whose specific type has No_Task_Parts. * freeze.adb (Check_No_Parts_Violations): This is an adaptation of the procedure formerly known as Check_No_Controlled_Parts_Violations, which now supports both No_Controlled_Parts and No_Task_Parts. It takes a parameter indicating which aspect is being checked. (Freeze_Entity): Call Check_No_Parts_Violations for both aspects. * sem_ch13.adb (Analyze_Aspect_Specifications): The code for Aspect_No_Controlled_Parts already works as is with Aspect_No_Task_Parts. * libgnat/a-iteint.ads: Add No_Task_Parts aspect to the two iterator iterfaces. * doc/gnat_rm/implementation_defined_aspects.rst: Add documentation for the No_Task_Parts aspect. * gnat_rm.texi: Regenerate.
2021-06-15[Ada] Clarify the semantics of signed intrinsic shift operationsYannick Moy1-6/+8
gcc/ada/ * doc/gnat_rm/intrinsic_subprograms.rst: More details on shift operations for signed types. Also add the missing Import and Convention on the example. * gnat_rm.texi: Regenerate.
2021-06-15[Ada] Rename Ada 202* to Ada 2022Arnaud Charlet2-3/+17
gcc/ada/ * einfo.ads, errout.adb, errout.ads, exp_aggr.adb, exp_ch5.adb, exp_ch6.adb, exp_ch8.adb, exp_ch9.adb, exp_imgv.adb, exp_put_image.adb, fe.h, impunit.adb, impunit.ads, libgnat/a-cobove.ads, libgnat/a-convec.ads, opt.ads, par-ch12.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par-prag.adb, par-util.adb, scans.ads, scng.adb, sem_aggr.adb, sem_attr.adb, sem_ch10.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_elab.adb, sem_eval.adb, sem_prag.adb, sem_res.adb, sem_type.adb, sem_util.adb, sem_util.ads, sinfo.ads, snames.ads-tmpl, sprint.adb, switch-c.adb, usage.adb, doc/gnat_ugn/building_executable_programs_with_gnat.rst, doc/gnat_rm/implementation_defined_aspects.rst, gcc-interface/trans.c: Update all references to Ada 2020 to Ada 2022. Rename pragma Ada_2020 to Ada_2022. Update documentation accordingly. * gnat_ugn.texi, gnat_rm.texi: Regenerate.
2021-05-25Fix sphinx-build warning.Martin Liska1-2/+2
RemovedInSphinx40Warning: app.add_lexer() API changed; Please give lexer class instead of instance gcc/ada/ChangeLog: * doc/share/conf.py: Fix Sphinx 4.0.x error.
2021-05-14Port gnat-style to Sphinx.Martin Liska3-2/+695
gcc/ada/ChangeLog: * doc/Makefile: Add gnat-style target. * doc/share/conf.py: Likewise. * doc/gnat-style.rst: New file.
2021-05-12ada: do not use binary mode in conf.pyMartin Liska1-14/+14
gcc/ada/ChangeLog: * doc/share/conf.py: Do not use binary mode. Do not use u' literals as Python3 uses unicode by default.
2021-05-07[Ada] Generate warning for negative literal of a modular typeYannick Moy1-1/+4
gcc/ada/ * opt.ads: Update comment for Warn_On_Suspicious_Modulus_Value. * sem_res.adb (Resolve_Unary_Op): Generate warning. * usage.adb: Refine doc for -gnatw.m/M switch. * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Update doc on -gnatw.m switch. * gnat_ugn.texi: Regenerate.
2021-05-06[Ada] Document a few more characteristics of floating-point supportEric Botcazou1-8/+17
gcc/ada/ * doc/gnat_rm/implementation_defined_characteristics.rst (3.5.7): Mention the IEEE standard explicitly. Use current format names. Document assumed rounding mode and new features of I/O support. * gnat_rm.texi: Regenerate.
2021-05-06[Ada] Add mention of underscore and fix grammar error in doc for -gnatdGary Dismukes1-3/+3
gcc/ada/ * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Add mention of underscore and fix grammar error in doc for -gnatd. * gnat_ugn.texi: Regenerate.