diff options
author | Steve Baird <baird@adacore.com> | 2021-06-10 11:20:27 -0700 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2021-07-09 12:35:30 +0000 |
commit | e4de29f4677e81e71c60eb2b9f247eaa12ea1353 (patch) | |
tree | 04c6b5510d3874e81262d11aee1181f6fa79e8d2 /gcc/gcc.c | |
parent | 765ca22b1792b613d2801b6d2ef9986e18bba3ab (diff) | |
download | gcc-e4de29f4677e81e71c60eb2b9f247eaa12ea1353.zip gcc-e4de29f4677e81e71c60eb2b9f247eaa12ea1353.tar.gz gcc-e4de29f4677e81e71c60eb2b9f247eaa12ea1353.tar.bz2 |
[Ada] Add -gnatX support for casing on discriminated values
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.
Diffstat (limited to 'gcc/gcc.c')
0 files changed, 0 insertions, 0 deletions