Commit 755634e6 by Janus Weil

re PR fortran/53718 ([OOP] gfortran generates asm label twice in the same output file)

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  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/53718
	* gfortran.dg/class_54.f90: New.

From-SVN: r193048
parent 03b06a83
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
......
......@@ -1488,10 +1488,7 @@ gfc_get_symbol_decl (gfc_symbol * sym)
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;
}
......@@ -1923,8 +1920,7 @@ build_function_decl (gfc_symbol * sym, bool global)
/* 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);
......@@ -5425,10 +5421,7 @@ gfc_generate_function_code (gfc_namespace * ns)
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;
......
......@@ -824,7 +824,6 @@ struct GTY((variable_size)) lang_decl {
#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>
......
! { 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" } }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment