aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/parse.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/func_result_5.f9014
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 9e767557..9fff7ca 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2010-02-02 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/42650
+ * parse.c (decode_specification_statement): Use sym->result not sym.
+
2010-02-01 Tobias Burnus <burnus@net-b.de>
PR fortran/42922
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index 8f7ec29..9e8a123 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -111,7 +111,7 @@ decode_specification_statement (void)
match ("import", gfc_match_import, ST_IMPORT);
match ("use", gfc_match_use, ST_USE);
- if (gfc_current_block ()->ts.type != BT_DERIVED)
+ if (gfc_current_block ()->result->ts.type != BT_DERIVED)
goto end_of_block;
match (NULL, gfc_match_st_function, ST_STATEMENT_FUNCTION);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c68fe11..d409f98 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2010-02-02 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/42650
+ * gfortran.dg/func_result_5.f90: New test.
+
2010-02-01 Tobias Burnus <burnus@net-b.de>
PR fortran/42922
diff --git a/gcc/testsuite/gfortran.dg/func_result_5.f90 b/gcc/testsuite/gfortran.dg/func_result_5.f90
new file mode 100644
index 0000000..5faff39
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/func_result_5.f90
@@ -0,0 +1,14 @@
+! { dg-do compile }
+!
+! PR fortran/42650
+!
+! Result type was not working
+!
+
+type(t) function func2() result(res)
+ type t
+ sequence
+ integer :: i = 5
+ end type t
+ res%i = 2
+end function func2