+2012-10-31 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/53718
+ * trans.h (GFC_DECL_PUSH_TOPLEVEL): Removed.
+ * trans-decl.c (gfc_get_symbol_decl,gfc_generate_function_code): Remove
+ GFC_DECL_PUSH_TOPLEVEL.
+ (build_function_decl): Do not push __copy procedure to toplevel.
+
2012-10-31 Tobias Burnus <burnus@net-b.de>
PR fortran/55134
if (sym->attr.vtab
|| (sym->name[0] == '_' && strncmp ("__def_init", sym->name, 10) == 0))
- {
- TREE_READONLY (decl) = 1;
- GFC_DECL_PUSH_TOPLEVEL (decl) = 1;
- }
+ TREE_READONLY (decl) = 1;
return decl;
}
/* Layout the function declaration and put it in the binding level
of the current function. */
- if (global
- || (sym->name[0] == '_' && strncmp ("__copy", sym->name, 6) == 0))
+ if (global)
pushdecl_top_level (fndecl);
else
pushdecl (fndecl);
next = DECL_CHAIN (decl);
DECL_CHAIN (decl) = NULL_TREE;
- if (GFC_DECL_PUSH_TOPLEVEL (decl))
- pushdecl_top_level (decl);
- else
- pushdecl (decl);
+ pushdecl (decl);
decl = next;
}
saved_function_decls = NULL_TREE;
#define GFC_DECL_CRAY_POINTEE(node) DECL_LANG_FLAG_4(node)
#define GFC_DECL_RESULT(node) DECL_LANG_FLAG_5(node)
#define GFC_DECL_SUBREF_ARRAY_P(node) DECL_LANG_FLAG_6(node)
-#define GFC_DECL_PUSH_TOPLEVEL(node) DECL_LANG_FLAG_7(node)
#define GFC_DECL_CLASS(node) DECL_LANG_FLAG_8(node)
/* An array descriptor. */
+2012-10-31 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/53718
+ * gfortran.dg/class_54.f90: New.
+
2012-10-31 Steven Bosscher <steven@gcc.gnu.org>
Jakub Jelinek <jakub@redhat.com>
--- /dev/null
+! { dg-do compile }
+!
+! PR 53718: [4.7/4.8 regression] [OOP] gfortran generates asm label twice in the same output file
+!
+! Contributed by Adrian Prantl <adrian@llnl.gov>
+
+module m
+ type t
+ end type
+end module
+
+subroutine sub1
+ use m
+ class(t), pointer :: a1
+end subroutine
+
+subroutine sub2
+ use m
+ class(t), pointer :: a2
+end subroutine
+
+! { dg-final { cleanup-modules "m" } }