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
This commit is contained in:
parent
03b06a8344
commit
755634e602
5 changed files with 38 additions and 11 deletions
|
@ -1,3 +1,11 @@
|
|||
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. */
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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>
|
||||
|
||||
|
|
22
gcc/testsuite/gfortran.dg/class_54.f90
Normal file
22
gcc/testsuite/gfortran.dg/class_54.f90
Normal file
|
@ -0,0 +1,22 @@
|
|||
! { 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" } }
|
Loading…
Add table
Reference in a new issue