GCC modified for the FreeChainXenon project
Find a file
Janne Blomqvist 62603fae93 PR 51808 Support arbitrarily long bind(C) binding labels.
2012-01-29  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/51808
	* decl.c (set_binding_label): Move prototype from match.h to here.
	(curr_binding_label): Make a pointer rather than static array.
	(build_sym): Check sym->binding_label pointer rather than array,
	update set_binding_label call, handle curr_binding_label changes.
	(set_binding_label): Handle new curr_binding_label, dest_label
	double ptr, and sym->binding_label.
	(verify_bind_c_sym): Handle sym->binding_label being a pointer.
	(set_verify_bind_c_sym): Check sym->binding_label pointer rather
	than array, update set_binding_label call.
	(gfc_match_bind_c_stmt): Handle curr_binding_label change.
	(match_procedure_decl): Update set_binding_label call.
	(gfc_match_bind_c): Change binding_label to pointer, update
	gfc_match_name_C call.
	* gfortran.h (GFC_MAX_BINDING_LABEL_LEN): Remove macro.
	(gfc_symbol): Make binding_label a pointer.
	(gfc_common_head): Likewise.
	* match.c (gfc_match_name_C): Heap allocate bind(C) name.
	* match.h (gfc_match_name_C): Change prototype argument.
	(set_binding_label): Move prototype to decl.c.
	* module.c (struct pointer_info): Make binding_label a pointer.
	(free_pi_tree): Free unused binding_label.
	(mio_read_string): New function.
	(mio_write_string): New function.
	(load_commons): Redo reading of binding_label.
	(read_module): Likewise.
	(write_common_0): Change to write empty string instead of name if
	no binding_label.
	(write_blank_common): Write empty string for binding label.
	(write_symbol): Change to write empty string instead of name if no
	binding_label.
	* resolve.c (gfc_iso_c_func_interface): Don't set binding_label.
	(set_name_and_label): Make binding_label double pointer, use
	asprintf.
	(gfc_iso_c_sub_interface): Make binding_label a pointer.
	(resolve_bind_c_comms): Handle cases if
	gfc_common_head->binding_label is NULL.
	(gfc_verify_binding_labels): sym->binding_label is a pointer.
	* symbol.c (gfc_free_symbol): Free binding_label.
	(gfc_new_symbol): Rely on XCNEW zero init for binding_label.
	(gen_special_c_interop_ptr): Don't set binding label.
	(generate_isocbinding_symbol): Insert binding_label into symbol
	table.
	(get_iso_c_sym): Use pointer assignment instead of strcpy.
	* trans-common.c (gfc_sym_mangled_common_id): Handle
	com->binding_label being a pointer.
	* trans-decl.c (gfc_sym_mangled_identifier): Handle
	sym->binding_label being a pointer.
	(gfc_sym_mangled_function_id): Likewise.


testsuite ChangeLog

2012-01-29  Janne Blomqvist  <jb@gcc.gnu.org>

	PR fortran/51808
	* gfortran.dg/module_md5_1.f90: Update MD5 sum.

From-SVN: r183677
2012-01-29 19:19:32 +02:00
boehm-gc Additional fixes for FreeBSD-10 build: 2011-11-21 20:22:35 +01:00
config Interix resurrection 2012-01-23 06:25:28 +00:00
contrib re PR target/51345 ([avr] Devices with 8-bit SP need their own multilib(s)) 2012-01-02 12:51:57 +00:00
fixincludes adjust comment 2012-01-11 14:31:40 -05:00
gcc PR 51808 Support arbitrarily long bind(C) binding labels. 2012-01-29 19:19:32 +02:00
gnattools Makefile.in (LOOSE_WARN): Delete. 2011-10-12 22:41:57 +00:00
include dwarf2.h (enum dwarf_form): Add Fission extensions. 2012-01-26 14:58:11 -08:00
INSTALL
intl
libada Interix resurrection 2012-01-23 06:25:28 +00:00
libcpp gcc.pot: Regenerate. 2012-01-27 16:18:53 +00:00
libdecnumber warnings.m4 (ACX_PROG_CC_WARNING_OPTS): Avoid leading dash in expr call. 2011-12-20 16:54:12 +00:00
libffi ffi.c (ffi_call_win32): Add new argument to prototype for specify calling-convention. 2012-01-29 14:29:53 +01:00
libgcc t-linux64: Delete. 2012-01-25 06:05:22 +10:30
libgfortran re PR libfortran/51899 (libgfortran's chmod.c fails to build on MinGW) 2012-01-20 12:32:52 +01:00
libgo syscall: Define IPV6 constants for Irix. 2012-01-27 22:37:14 +00:00
libgomp arm: Remove empty directory. 2012-01-25 12:13:12 +00:00
libiberty make-relative-prefix.c (make_relative_prefix_1): Avoid warning about using preprocessor directives inside of macro arguments. 2012-01-26 15:26:25 +01:00
libitm libitm: Fix wake-up of readers in futex-based serial lock. 2012-01-24 19:17:05 +00:00
libjava 2012-01-09 Richard Guenther <rguenther@suse.de> 2012-01-09 10:11:38 +00:00
libmudflap re PR libmudflap/40778 (Mudflap instrumentation missing in cloned function.) 2012-01-19 19:58:02 +01:00
libobjc Additional fixes for FreeBSD-10 build: 2011-11-21 20:22:35 +01:00
libquadmath Additional fixes for FreeBSD-10 build: 2011-11-21 20:22:35 +01:00
libssp Additional fixes for FreeBSD-10 build: 2011-11-21 20:22:35 +01:00
libstdc++-v3 re PR libstdc++/51795 (linear_congruential_engine doesn't work correctly) 2012-01-27 23:30:28 +00:00
lto-plugin warnings.m4 (ACX_PROG_CC_WARNING_OPTS): Avoid leading dash in expr call. 2011-12-20 16:54:12 +00:00
maintainer-scripts update_web_docs_svn: Make $DOCSDIR group writable after creating it. 2011-11-21 01:16:24 +00:00
zlib Additional fixes for FreeBSD-10 build: 2011-11-21 20:22:35 +01:00
ABOUT-NLS
ChangeLog Adding line to ChangeLog for the change in MAINTAINERS file. 2012-01-24 01:14:09 +00:00
ChangeLog.tree-ssa
compile
config-ml.in MAINTAINERS (crx port, [...]): Remove. 2011-03-22 19:58:18 +00:00
config.guess oops - omitted from previous delta. 2011-06-06 10:34:35 +00:00
config.rpath Remove freebsd1 from libtool.m4 macros and config.rpath. 2011-02-13 11:45:53 +00:00
config.sub * config.sub: Update to version 2011-10-29 (added rl78) 2011-11-01 20:56:32 -04:00
configure Interix resurrection 2012-01-23 06:25:28 +00:00
configure.ac Interix resurrection 2012-01-23 06:25:28 +00:00
COPYING
COPYING.LIB
COPYING.RUNTIME
COPYING3
COPYING3.LIB
depcomp
install-sh
libtool-ldflags
libtool.m4 Additional fixes for FreeBSD-10 build: 2011-11-21 20:22:35 +01:00
ltgcc.m4
ltmain.sh backport: ltmain.sh (relink): Use absolute path when hardcoding with -L. 2011-01-13 18:51:10 +00:00
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
MAINTAINERS Adding myself to MAINTAINERS file for write after approval. 2012-01-24 00:54:44 +00:00
Makefile.def re PR bootstrap/51686 ("make install-strip-gcc" didn't install liblto-plugin* files) 2012-01-02 10:59:04 +00:00
Makefile.in re PR bootstrap/51686 ("make install-strip-gcc" didn't install liblto-plugin* files) 2012-01-02 10:59:04 +00:00
Makefile.tpl configure.ac: Add tool checks for READELF and READELF_FOR_TARGET. 2011-11-09 13:57:26 -05:00
missing
mkdep
mkinstalldirs
move-if-change Import move-if-change script from gnulib. 2011-02-12 15:48:30 +00:00
README
symlink-tree
ylwrap

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the files whose
names start with 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/ for how to report bugs usefully.