aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2010-05-03 17:57:14 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2010-05-03 17:57:14 +0000
commit431f5969d1c519380d06981f330c8ca8f9cbe2bc (patch)
tree4b66497dd2c35f0ad3475878ed64826bdc6e625b /gcc
parent42db504c2fb2b460e24ca0e73b8559fc33b3cf33 (diff)
downloadgcc-431f5969d1c519380d06981f330c8ca8f9cbe2bc.zip
gcc-431f5969d1c519380d06981f330c8ca8f9cbe2bc.tar.gz
gcc-431f5969d1c519380d06981f330c8ca8f9cbe2bc.tar.bz2
re PR fortran/43592 (Unexpected INTERFACE statement in INTERFACE block at (1))
2010-05-03 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/43592 * fortran/parse.c (parse_interface): Do not dereference a NULL pointer. 2010-05-03 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/43592 * gfortran.dg/unexpected_interface.f90: New test. From-SVN: r158998
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/parse.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/unexpected_interface.f909
4 files changed, 21 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 085e9fa..e61c737 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2010-05-03 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/43592
+ * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
+
2010-05-02 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index 8ad52d2..9320069 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -2264,9 +2264,9 @@ loop:
{
if (current_state == COMP_NONE)
{
- if (new_state == COMP_FUNCTION)
+ if (new_state == COMP_FUNCTION && sym)
gfc_add_function (&sym->attr, sym->name, NULL);
- else if (new_state == COMP_SUBROUTINE)
+ else if (new_state == COMP_SUBROUTINE && sym)
gfc_add_subroutine (&sym->attr, sym->name, NULL);
current_state = new_state;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fb25dc4..a7876f9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2010-05-03 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/43592
+ * gfortran.dg/unexpected_interface.f90: New test.
+
2010-05-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* ada/acats/run_acats (which): New function.
diff --git a/gcc/testsuite/gfortran.dg/unexpected_interface.f90 b/gcc/testsuite/gfortran.dg/unexpected_interface.f90
new file mode 100644
index 0000000..87c73c8
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/unexpected_interface.f90
@@ -0,0 +1,9 @@
+! { dg-do compile }
+! PR fortran/43592
+! Original code submitted by Joost VandeVondele
+! Dejagnu-ification by Steven G. Kargl
+!
+ interface assignment (=)
+ interface pseudo_scalar ! { dg-error "Unexpected INTERFACE statement" }
+ pure function double_tensor2odd (x, t2) result (xt2)
+! { dg-error "Unexpected end of file" "" { target "*-*-*" } 0 }