[Fortran, (RFC) patch] PR49110/51055 Assignment to alloc. deferred-length character vars
David Edelsohn
dje.gcc@gmail.com
Wed Dec 12 02:17:00 GMT 2012
On Tue, Dec 11, 2012 at 1:37 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> So, what about this version instead?
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
>
> 2012-12-11 Jakub Jelinek <jakub@redhat.com>
> Janus Weil <janus@gcc.gnu.org>
>
> PR fortran/55636
> * gfortran.h (GFC_PREFIX): Define.
> * trans-decl.c (gfc_create_string_length): For VAR_DECLs that
> will be TREE_STATIC, use GFC_PREFIX to mangle the names.
>
> --- gcc/fortran/gfortran.h.jj 2012-12-04 14:17:30.574177056 +0100
> +++ gcc/fortran/gfortran.h 2012-12-11 15:48:37.967422227 +0100
> @@ -63,6 +63,15 @@ along with GCC; see the file COPYING3.
> #define PREFIX(x) "_gfortran_" x
> #define PREFIX_LEN 10
>
> +/* A prefix for internal variables, which are not user-visible. */
> +#if !defined (NO_DOT_IN_LABEL)
> +# define GFC_PREFIX(x) "_F." x
> +#elif !defined (NO_DOLLAR_IN_LABEL)
> +# define GFC_PREFIX(x) "_F$" x
> +#else
> +# define GFC_PREFIX(x) "_F_" x
> +#endif
> +
> #define BLANK_COMMON_NAME "__BLNK__"
>
> /* Macro to initialize an mstring structure. */
> --- gcc/fortran/trans-decl.c.jj 2012-12-11 09:25:18.757189184 +0100
> +++ gcc/fortran/trans-decl.c 2012-12-11 15:50:13.487857146 +0100
> @@ -1090,7 +1090,15 @@ gfc_create_string_length (gfc_symbol * s
> const char *name;
>
> /* Also prefix the mangled name. */
> - if (sym->module)
> + if (sym->attr.save || sym->ns->proc_name->attr.flavor == FL_MODULE)
> + {
> + if (sym->module)
> + name = gfc_get_string (GFC_PREFIX ("%s_MOD_%s"), sym->module,
> + sym->name);
> + else
> + name = gfc_get_string (GFC_PREFIX ("%s"), sym->name);
> + }
> + else if (sym->module)
> name = gfc_get_string (".__%s_MOD_%s", sym->module, sym->name);
> else
> name = gfc_get_string (".%s", sym->name);
Why are you only correcting the prefix for attr.save or FL_MODULE?
Why leave the dot name in the other cases?
Thanks, David
More information about the Gcc-patches
mailing list