aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/cal.c
diff options
context:
space:
mode:
authorJavier Miranda <miranda@adacore.com>2006-10-31 18:50:11 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2006-10-31 18:50:11 +0100
commitbfef8d0d62ede027e717a7ab1900bee71b54e708 (patch)
treea8db6c2b8b000b3fdd656234dd9be6d790c13218 /gcc/ada/cal.c
parent3cb8344bd34b50012b5c43c7d34d01472f41e026 (diff)
downloadgcc-bfef8d0d62ede027e717a7ab1900bee71b54e708.zip
gcc-bfef8d0d62ede027e717a7ab1900bee71b54e708.tar.gz
gcc-bfef8d0d62ede027e717a7ab1900bee71b54e708.tar.bz2
a-tags.ads, a-tags.adb:
2006-10-31 Javier Miranda <miranda@adacore.com> * a-tags.ads, a-tags.adb: (Predefined_DT): New function that improves readability of the code. (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address, Inherit_DT): Use the new function Predefined_DT to improve code readability. (Register_Interface_Tag): Update assertion. (Set_Interface_Table): Update assertion. (Interface_Ancestor_Tags): New subprogram required to implement AI-405: determining progenitor interfaces in Tags. (Inherit_CPP_DT): New subprogram. * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the analysis of the thunk code. (Expand_Interface_Conversion): Handle run-time conversion of access to class wide types. (Expand_Dispatching_Call): When generating the profile for the subprogram itype for a dispatching operation, properly terminate the formal parameters chaind list (set the Next_Entity of the last formal to Empty). (Collect_All_Interfaces): Removed. This routine has been moved to sem_util and renamed as Collect_All_Abstract_Interfaces. (Set_All_DT_Position): Hidden entities associated with abstract interface primitives are not taken into account in the check for 3.9.3(10); this check is done with the aliased entity. (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for interfacing with CPP by default. (Expand_Interface_Conversion): Add missing support for static conversion from an interface to a tagged type. (Collect_All_Interfaces): Add new out formal containing the list of abstract interface types to cleanup the subprogram Make_DT. (Make_DT): Update the code to generate the table of interfaces in case of abstract interface types. (Is_Predefined_Dispatching_Alias): New function that returns true if a primitive is not a predefined dispatching primitive but it is an alias of a predefined dispatching primitive. (Make_DT): If the ancestor of the type is a CPP_Class and we are compiling under full ABI compatibility mode we avoid the generation of calls to run-time services that fill the dispatch tables because under this mode we currently inherit the dispatch tables in the IP subprogram. (Write_DT): Emit an "is null" indication for a null procedure primitive. (Expand_Interface_Conversion): Use an address as the type of the formal of the internally built function that handles the case in which the target type is an access type. From-SVN: r118244
Diffstat (limited to 'gcc/ada/cal.c')
0 files changed, 0 insertions, 0 deletions