summaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-decl.c
diff options
context:
space:
mode:
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-18 22:09:39 +0000
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2014-02-18 22:09:39 +0000
commit77d080ca8ed176e583ae78645397be0c0c0b4b40 (patch)
treeacc9dd8a0b0f0ec03ea9b2c53b8b46e36c53652d /gcc/fortran/trans-decl.c
parent46ab8d2c3e6c9524aad65bc5e22b2aeebca9ec4c (diff)
downloadgcc-77d080ca8ed176e583ae78645397be0c0c0b4b40.tar.gz
2014-02-18 Tobias Burnus <burnus@net-b.de>
PR fortran/49397 * expr.c (gfc_check_pointer_assign): Add check for F2008Cor2, C729. * trans-decl.c (gfc_get_symbol_decl): Correctly generate * external decl in a corner case. 2014-02-18 Tobias Burnus <burnus@net-b.de> PR fortran/49397 * gfortran.dg/proc_ptr_45.f90: New. * gfortran.dg/proc_ptr_46.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207854 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r--gcc/fortran/trans-decl.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 9c86653e22e..cf7b661d8e9 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -1362,9 +1362,10 @@ gfc_get_symbol_decl (gfc_symbol * sym)
if (sym->attr.flavor == FL_PROCEDURE)
{
- /* Catch function declarations. Only used for actual parameters,
+ /* Catch functions. Only used for actual parameters,
procedure pointers and procptr initialization targets. */
- if (sym->attr.external || sym->attr.use_assoc || sym->attr.intrinsic)
+ if (sym->attr.use_assoc || sym->attr.intrinsic
+ || sym->attr.if_source != IFSRC_DECL)
{
decl = gfc_get_extern_function_decl (sym);
gfc_set_decl_location (decl, &sym->declared_at);