2009-07-10 Javier Miranda <miranda@adacore.com> * exp_ch3.adb (Expand_Freeze_Record_Type): Handle constructors of non-tagged record types. * sem_prag.adb (Process_Import_Or_Interface): Allow the use of "pragma Import (CPP,..)" with non-tagged types. Required to import C++ classes that have no virtual primitives. (Analyze_Pragma): For pragma CPP_Constructor. Allow the use of functions returning non-tagged types. For backward compatibility, if the constructor returns a class wide type we internally change the returned type to the corresponding non class-wide type. * sem_aggr.adb (Valid_Ancestor_Type): CPP_Constructors code cleanup. (Resolve_Extension_Aggregate): CPP_Constructors code cleanup. (Resolve_Aggr_Expr): CPP_Constructors code cleanup. (Resolve_Record_Aggregate): CPP_Constructors code cleanup. * sem_ch3.adb (Analyze_Object_Declaration): CPP_Constructors code cleanup. * sem_ch5.adb (Analyze_Assignment): CPP_Constructors code cleanup. * sem_util.adb (Is_CPP_Constructor_Call): Code cleanup. * sem_res.adb (Resolve_Allocator): CPP_Constructors code cleanup. * exp_ch4.adb (Expand_Allocator_Expression): CPP_Constructors code cleanup. * exp_aggr.adb (Build_Record_Aggr_Code): CPP_Constructors code clean up. * gnat_rm.texi (pragma CPP_Class): Document that it can be used now with non-tagged record types. (pragma CPP_Constructor): Document that it can be used now with functions returning specific types. For backward compatibility we also support functions returning class-wide types. * gnat_ugn.texi (Interfacing with C++ constructors): Update the examples to incorporate the new syntax in which the functions used to import C++ constructors return specific types. (Interfacing with C++ at the Class Level): Update the examples to incorporate the new syntax in which the functions used to import C++ constructors return specific types. From-SVN: r149466
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... | |
COPYING.RUNTIME | Loading commit data... | |
COPYING3 | Loading commit data... | |
COPYING3.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... | |
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... | |
lt~obsolete.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... |