diff options
author | Ed Schonberg <schonberg@adacore.com> | 2020-03-02 14:58:59 -0500 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-06-10 09:34:57 -0400 |
commit | dc419b9f8d6f998186706aa1afa50db1ca7efae5 (patch) | |
tree | 6e0f24e81862e5d24801e93afc8ce6b9d5203958 /gcc/ada/debug.adb | |
parent | 057548bc5f3a067f881cd6985419956b0f2696fc (diff) | |
download | gcc-dc419b9f8d6f998186706aa1afa50db1ca7efae5.zip gcc-dc419b9f8d6f998186706aa1afa50db1ca7efae5.tar.gz gcc-dc419b9f8d6f998186706aa1afa50db1ca7efae5.tar.bz2 |
[Ada] Ada_2020 AI12-0220: Pre/Postconditions on Access_To_Subprogram types
2020-06-10 Ed Schonberg <schonberg@adacore.com>
gcc/ada/
* einfo.ads (Access_Subprogram_Wrapper): New attribute of
Subprogram_Type entities. Denotes subprogram constructed for
Access_To_Subprogram types that include pre- and postconditions.
* einfo.adb: Subprogram bodies for Access_Subprogram_Wrapper.
* exp_ch6.adb (Expand_Call): An indirect call through an
Access_To_subprogram that includes contracts is rewritten as a
call to the corresponding Access_ ubprogram_Wrapper. Handle
derived types that inherit contract from parent.
* sem_prag.adb (Build_Access_Subprogram_Wrapper): Build
subprogram declaration for subprogram that incorporates the
contracts of an Access_To_Subprogram type declaration. Build
corresponding body and attach it to freeze actions for type.
* sem_util.ads, sem_util.adb (Is_Access_Subprogram_Wrapper):
Utility that uses signature of the subprogram to determine
whether it is a generated wrapper for an Access_To_Subprogram
type.
Diffstat (limited to 'gcc/ada/debug.adb')
0 files changed, 0 insertions, 0 deletions