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
Name |
Last commit
|
Last update |
---|---|---|
INSTALL | Loading commit data... | |
boehm-gc | Loading commit data... | |
config | Loading commit data... | |
contrib | Loading commit data... | |
fixincludes | Loading commit data... | |
gcc | Loading commit data... | |
gnattools | Loading commit data... | |
include | Loading commit data... | |
intl | Loading commit data... | |
libada | Loading commit data... | |
libcpp | Loading commit data... | |
libdecnumber | Loading commit data... | |
libffi | Loading commit data... | |
libgfortran | Loading commit data... | |
libgomp | Loading commit data... | |
libiberty | Loading commit data... | |
libjava | Loading commit data... | |
libmudflap | Loading commit data... | |
libobjc | Loading commit data... | |
libssp | Loading commit data... | |
libstdc++-v3 | Loading commit data... | |
maintainer-scripts | Loading commit data... | |
zlib | Loading commit data... | |
ABOUT-NLS | Loading commit data... | |
COPYING | Loading commit data... | |
COPYING.LIB | Loading commit data... | |
ChangeLog | Loading commit data... | |
ChangeLog.tree-ssa | Loading commit data... | |
MAINTAINERS | Loading commit data... | |
Makefile.def | Loading commit data... | |
Makefile.in | Loading commit data... | |
Makefile.tpl | Loading commit data... | |
README | Loading commit data... | |
README.SCO | Loading commit data... | |
compile | Loading commit data... | |
config-ml.in | Loading commit data... | |
config.guess | Loading commit data... | |
config.rpath | Loading commit data... | |
config.sub | Loading commit data... | |
configure | Loading commit data... | |
configure.in | Loading commit data... | |
depcomp | Loading commit data... | |
install-sh | Loading commit data... | |
libtool-ldflags | Loading commit data... | |
libtool.m4 | Loading commit data... | |
ltcf-c.sh | Loading commit data... | |
ltcf-cxx.sh | Loading commit data... | |
ltcf-gcj.sh | Loading commit data... | |
ltconfig | Loading commit data... | |
ltmain.sh | Loading commit data... | |
missing | Loading commit data... | |
mkdep | Loading commit data... | |
mkinstalldirs | Loading commit data... | |
move-if-change | Loading commit data... | |
symlink-tree | Loading commit data... | |
ylwrap | Loading commit data... |