Go to file
Paul Thomas 7d1f1e6144 trans-expr.c (conv_parent_component_references): New function to build missing parent references.
2008-07-29  Paul Thomas  <pault@gcc.gnu.org>

fortran/	
	* trans-expr.c (conv_parent_component_references): New function
	to build missing parent references.
	(gfc_conv_variable): Call it
	* symbol.c (gfc_add_component): Check that component name in a
	derived type extension does not appear in parent.
	(gfc_find_component): For a derived type extension, check if
	the component appears in the parent derived type by calling
	self. Separate errors for private components and private types.
	* decl.c (match_data_constant): Add extra arg to call to
	gfc_match_structure_constructor.
	(check_extended_derived_type): New function to check that a
	parent derived type exists and that it is OK for exension.
	(gfc_get_type_attr_spec): Add extra argument 'name' and return
	it if extends is specified.
	(gfc_match_derived_decl): Match derived type extension and
	build a first component of the parent derived type if OK. Add
	the f2k namespace if not present.
	* gfortran.h : Add the extension attribute.
	* module.c : Handle attribute 'extension'.
	* match.h : Modify prototypes for gfc_get_type_attr_spec and
	gfc_match_structure_constructor.
	* primary.c (build_actual_constructor): New function extracted
	from gfc_match_structure_constructor and modified to call self
	iteratively to build derived type extensions, when f2k named
	components are used.
	(gfc_match_structure_constructor): Do not throw error for too
	many components if a parent type is being handled. Use
	gfc_find_component to generate errors for non-existent or
	private components.  Iteratively call self for derived type
	extensions so that parent constructor is built.  If extension
	and components left over, throw error.
	(gfc_match_rvalue): Add extra arg to call to
	gfc_match_structure_constructor.
	* trans-array.c (gfc_conv_resolve_dependencies): If lhs and rhs
	are the same symbol, aliassing does not matter.
testsuite/
	* gfortran.dg/extends_1.f03: New test.
	* gfortran.dg/extends_2.f03: New test.
	* gfortran.dg/extends_3.f03: New test.
	* gfortran.dg/extends_4.f03: New test.
	* gfortran.dg/extends_5.f03: New test.
	* gfortran.dg/extends_6.f03: New test.
	* gfortran.dg/private_type_6.f90: Modify error message.
	* gfortran.dg/structure_constructor_7.f03: Modify error message.
	* gfortran.dg/structure_constructor_8.f03: Modify error message.

From-SVN: r138275
2008-07-29 20:44:09 +00:00
boehm-gc - checkin threads.mk.in. 2008-07-18 10:37:22 +00:00
config mh-mingw (LDFLAGS): Append to rather than replacing previous value. 2008-07-11 12:15:07 +01:00
contrib check_makefile_deps.sh: New file. 2008-07-14 18:40:35 +00:00
fixincludes Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
gcc trans-expr.c (conv_parent_component_references): New function to build missing parent references. 2008-07-29 20:44:09 +00:00
gnattools Makefile.in: Fix *86 kfreebsd target specific pairs. 2008-06-26 10:16:26 +00:00
include safe-ctype.h: Add #include of ctype.h before redefining the ctype.h macros. 2008-07-07 17:08:21 +00:00
INSTALL
intl Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
libada Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
libcpp re PR preprocessor/28079 (#line range not verified without -pedantic) 2008-07-22 09:45:58 +00:00
libdecnumber Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
libffi ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned int. 2008-07-16 13:57:35 +00:00
libgcc t-softfp-compat: Update comments. 2008-07-08 06:13:13 -07:00
libgfortran re PR fortran/36132 (_gfortran_internal_pack on optional arguments) 2008-07-27 12:45:44 +02:00
libgomp configure.tgt: Enable futex for MIPS. 2008-07-28 18:47:44 +00:00
libiberty maint-tool (deps): Output config.h instead of stamp-h. 2008-07-24 06:35:21 +00:00
libjava jar.in: Fix portability problems with Solaris /bin/sh. 2008-07-17 08:58:15 +00:00
libmudflap Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
libobjc Makefile.in: Ignore missing ../boehm-gc/threads.mk. 2008-07-18 16:30:04 +00:00
libssp Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
libstdc++-v3 set.h: Minor formatting fixes. 2008-07-29 19:34:36 +00:00
maintainer-scripts crontab: Remove 4.1 snapshots job. 2008-07-04 15:58:14 +01:00
zlib Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
ABOUT-NLS
ChangeLog MAINTAINERS: Add Jakub and myself as gimple maintainers. 2008-07-28 17:37:05 +00:00
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.rpath
config.sub
configure Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
configure.ac configure.ac: Set TOPLEVEL_CONFIGURE_ARGUMENTS early... 2008-06-16 21:36:27 +00:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
depcomp
install-sh
libtool-ldflags
libtool.m4
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS fix typo 2008-07-28 19:50:50 +00:00
Makefile.def
Makefile.in Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
Makefile.tpl Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
missing
mkdep
mkinstalldirs
move-if-change
README
README.SCO
symlink-tree
ylwrap

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the file COPYING
for copying permission.  The manuals, and some of the runtime
libraries, are under different terms; see the individual source files
for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs.html for how to report bugs usefully.