exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a wrapper when the full view of the controlling type of an... 2007-04-20 Ed Schonberg <schonberg@adacore.com> Javier Miranda <miranda@adacore.com> Robert Dewar <dewar@adacore.com> * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a wrapper when the full view of the controlling type of an inherited function that dispatches on result implements interfaces. (Expand_N_Object_Declaration): In cases where the type of the declaration is anonymous access, create finalization list for it. (Expand_N_Object_Declaration): Generate a persistent_bss directive only if the object has no explicit initialization, to match description of functionality of pragam Persistent_BSS. (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate): new function to build static aggregates, to replace initialization call when static initialization is desired. (Freeze_Type): Generate a list controller for an access type whenever its designated type has controlled anonymous access discriminants. (Build_Equivalent_Aggregate): New procedure to compute a static aggregate to be used as default initialization for composite types, instead of a generating a call to the initialization procedure for the type. (Build_Initialization_Call): When available, replace a call to the initialization procedure with a copy of the equivalent static aggregate for the type. (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated declarations for objects of a class-wide interface type, rather than just identifiers, to prevent visibility problems. (Expand_N_Object_Declaration): When expanding the declaration for an object of a class-wide interface type, preserve the homonym chain of the original entity before exchanging it with that of the generated renaming declaration. (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation active, because there is no way to handle the exception. (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT to do a minimum decoration of the Access_Disp_Table list. (Expand_Record_Controller): Avoid the addition of the controller between the component containing the tag of a secondary dispatch table and its adjacent component that stores the offset to the base of the object. This latter component is only generated when the parent type has discriminants ---documented in Add_Interface_Tag_Components). (Apply_Array_Size_Check): Removed, no longer needed. (Expand_N_Full_Type_Declaration): If the type has anonymous access components, create a Master_Entity for it only if it contains tasks. (Build_Init_Procedure): Suppress the tag assignment compiling under no run-time mode. (Freeze_Record_Type): Remove code associated with creation of dispatch table. (Init_Secondary_Tags): Update type of actuals when generating calls to Ada.Tags.Set_Offset_To_Top (Stream_Operation_OK): Disable use of streams compiling under no run-time mode (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization if Has_Init_Expression set. (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to Register_Primitive, which provides the same functionality. (Requires_Init_Proc): Return false in case of interface types. (Add_Secondary_Tables): Use the new attribute Related_Interface to cleanup the code. (Predefined_Primitive_Freeze): Do not assume that an internal entity is always associated with a predefined primitive because the internal entities associated with interface types are not predefined primitives. Therefore, the call to Is_Internal is replaced by a call to the function Is_Predefined_Dispatching_Operation. (Make_Eq_If): When generating the list of comparisons for the components of a given variant, omit the controller component that is present if the variant has controlled components. From-SVN: r125396
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... | |
libgcc | 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.ac | Loading commit data... | |
depcomp | Loading commit data... | |
install-sh | Loading commit data... | |
libtool-ldflags | Loading commit data... | |
libtool.m4 | Loading commit data... | |
ltgcc.m4 | Loading commit data... | |
ltmain.sh | Loading commit data... | |
ltoptions.m4 | Loading commit data... | |
ltsugar.m4 | Loading commit data... | |
ltversion.m4 | 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... |