aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/symbol.c
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2018-02-13 22:00:37 +0100
committerJanus Weil <janus@gcc.gnu.org>2018-02-13 22:00:37 +0100
commit4155fafc7f43234fc0c819a6f9c6ebaffc59e8cc (patch)
tree221a1a3a1320044c8689784823a45472446ec0e4 /gcc/fortran/symbol.c
parent201d17c0d835112bdea5408e6eff4e250f3c238a (diff)
downloadgcc-4155fafc7f43234fc0c819a6f9c6ebaffc59e8cc.zip
gcc-4155fafc7f43234fc0c819a6f9c6ebaffc59e8cc.tar.gz
gcc-4155fafc7f43234fc0c819a6f9c6ebaffc59e8cc.tar.bz2
re PR fortran/84313 ([F08] reject procedure pointers in COMMON blocks)
2018-02-13 Janus Weil <janus@gcc.gnu.org> PR fortran/84313 * symbol.c (check_conflict): Reject procedure pointers in common blocks. 2018-02-13 Janus Weil <janus@gcc.gnu.org> PR fortran/84313 * gfortran.dg/proc_ptr_common_1.f90: Fix invalid test case, add necessary compiler options. * gfortran.dg/proc_ptr_common_2.f90: Add missing error message. From-SVN: r257636
Diffstat (limited to 'gcc/fortran/symbol.c')
-rw-r--r--gcc/fortran/symbol.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c
index 344c644..ce6b1e9 100644
--- a/gcc/fortran/symbol.c
+++ b/gcc/fortran/symbol.c
@@ -809,7 +809,9 @@ check_conflict (symbol_attribute *attr, const char *name, locus *where)
conf2 (threadprivate);
}
- if (!attr->proc_pointer)
+ /* Procedure pointers in COMMON blocks are allowed in F03,
+ * but forbidden per F08:C5100. */
+ if (!attr->proc_pointer || (gfc_option.allow_std & GFC_STD_F2008))
conf2 (in_common);
conf2 (omp_declare_target_link);