aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.c
diff options
context:
space:
mode:
authorSteve Baird <baird@adacore.com>2021-06-10 11:20:27 -0700
committerPierre-Marie de Rodat <derodat@adacore.com>2021-07-09 12:35:30 +0000
commite4de29f4677e81e71c60eb2b9f247eaa12ea1353 (patch)
tree04c6b5510d3874e81262d11aee1181f6fa79e8d2 /gcc/gcc.c
parent765ca22b1792b613d2801b6d2ef9986e18bba3ab (diff)
downloadgcc-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