diff options
author | Harald Anlauf <anlauf@gmx.de> | 2020-12-03 20:33:22 +0100 |
---|---|---|
committer | Harald Anlauf <anlauf@gmx.de> | 2020-12-03 20:33:22 +0100 |
commit | 30b606bb9b9314010a446ea4bed3481632008f75 (patch) | |
tree | 0940049a5dfabfad17c3a8760ae0ec9b244c9b0b /gcc/testsuite | |
parent | 656131e06aa76ba3cb50305c07cf5c8ee79fce44 (diff) | |
download | gcc-30b606bb9b9314010a446ea4bed3481632008f75.zip gcc-30b606bb9b9314010a446ea4bed3481632008f75.tar.gz gcc-30b606bb9b9314010a446ea4bed3481632008f75.tar.bz2 |
PR fortran/95342 - ICE in gfc_match_subroutine, at fortran/decl.c:7913
Add checks for NULL pointers before dereferencing them.
gcc/fortran/ChangeLog:
PR fortran/95342
* decl.c (gfc_match_function_decl): Avoid NULL pointer dereference.
(gfc_match_subroutine): Likewise.
gcc/testsuite/ChangeLog:
PR fortran/95342
* gfortran.dg/pr95342.f90: New test.
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr95342.f90 | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/pr95342.f90 b/gcc/testsuite/gfortran.dg/pr95342.f90 new file mode 100644 index 0000000..41c987d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr95342.f90 @@ -0,0 +1,20 @@ +! { dg-do compile } +! PR fortran/95342 - ICE in gfc_match_subroutine, at fortran/decl.c:7913 + +module m1 + interface + module subroutine s() + end + subroutine s() bind(c) ! { dg-error "EXTERNAL attribute conflicts" } + end ! { dg-error "END INTERFACE" } + end interface +end + +module m2 + interface + module function f() + end + function f() bind(c) + end ! { dg-error "Duplicate EXTERNAL attribute" } + end interface +end |