aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-tailcall.c
diff options
context:
space:
mode:
authorPiotr Trojanek <trojanek@adacore.com>2020-03-27 23:39:03 +0100
committerPierre-Marie de Rodat <derodat@adacore.com>2020-06-15 04:04:26 -0400
commite577151d02b9e73e2aa985f0254f5a2f060d3e54 (patch)
tree9afd7a3467a20949924b55fb50d45d9c50200134 /gcc/tree-tailcall.c
parent6a920eb51077cd465472eabb24a49b3e4ca30e93 (diff)
downloadgcc-e577151d02b9e73e2aa985f0254f5a2f060d3e54.zip
gcc-e577151d02b9e73e2aa985f0254f5a2f060d3e54.tar.gz
gcc-e577151d02b9e73e2aa985f0254f5a2f060d3e54.tar.bz2
[Ada] Support aspect Relaxed_Initialization and attribute Initialized
2020-06-15 Piotr Trojanek <trojanek@adacore.com> gcc/ada/ * aspects.ads (Aspect_Id): Add Aspect_Relaxed_Initialization. (Implementation_Defined_Aspect): Add new aspect. (Aspect_Argument): Add new aspect with Optional_Expression argument. (Is_Representation_Aspect): Add new aspect as a non-representation one. (Aspect_Names): Add name for the new aspect. (Aspect_Delay): Add new aspect as a non-delayed one. * sem_ch3.adb: Minor reformatting. * einfo.ads, einfo.adb (Is_Relaxed_Initialization_State): New query; reuses existing code for querying abstract state options. * exp_attr.adb (Expand_N_Attribute_Reference): For now ignore attribute 'Initialized. * sem_attr.adb (Analyze_Attribute_Old_Result): Allow attribute 'Result to be used in the aspect Relaxed_Initialization expression. (Analyze_Attribute): Analyze attribute 'Initialized; based on existing code for attribute 'Valid_Scalars. (Eval_Attribute): Do not expect attribute 'Initialized, just like attribute 'Valid_Scalars is not expected. * sem_ch13.adb (Analyze_Aspect_Relaxed_Initialization): New routine. (Analyze_Aspect_Specifications): Analyze new aspect in a dedicated routine. (Check_Aspect_At_Freeze_Point): Do not expect new aspect. * sem_prag.adb (Analyze_Abstract_State): Support option Relaxed_Initialization on abstract states. * sem_util.ads, sem_util.adb (Has_Relaxed_Initialization): New query for the GNATprove backend. * snames.ads-tmpl (Snames): Add Name_Ids for the new aspect and attribute; add an Attribute_Id for the new attribute.
Diffstat (limited to 'gcc/tree-tailcall.c')
0 files changed, 0 insertions, 0 deletions