]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/71688 (ICE in analyze, at cgraphunit.c:632 with -fcoarray=lib)
authorMartin Jambor <mjambor@suse.cz>
Tue, 19 Jul 2016 15:44:56 +0000 (17:44 +0200)
committerMartin Jambor <jamborm@gcc.gnu.org>
Tue, 19 Jul 2016 15:44:56 +0000 (17:44 +0200)
Fix PR fortran/71688

2016-07-19  Martin Jambor  <mjambor@suse.cz>

        PR fortran/71688
        * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
        rather than cgraph_create_node to get a call graph node.

testsuite/
        * gfortran.dg/pr71688.f90: New test.

From-SVN: r238477

gcc/ChangeLog
gcc/fortran/trans-decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr71688.f90 [new file with mode: 0644]

index fd6aaafb007c847c4acb6b776615ca07f56da9f8..77f8dfedc88901c5d3604070791d5e913e097369 100644 (file)
@@ -1,3 +1,9 @@
+2016-07-19  Martin Jambor  <mjambor@suse.cz>
+
+        PR fortran/71688
+        * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
+        rather than cgraph_create_node to get a call graph node.
+
 2016-07-19  Martin Liska  <mliska@suse.cz>
 
        Backported from mainline
index 4b3e89b791050aed20f5f8c3e8634cad98827020..331d4bc44a35050f94b0bbb5b79bb0970340a7cd 100644 (file)
@@ -5778,7 +5778,7 @@ gfc_generate_function_code (gfc_namespace * ns)
         function has already called cgraph_create_node, which also created
         the cgraph node for this function.  */
       if (!has_coarray_vars || gfc_option.coarray != GFC_FCOARRAY_LIB)
-       (void) cgraph_create_node (fndecl);
+       (void) cgraph_get_create_node (fndecl);
     }
   else
     cgraph_finalize_function (fndecl, true);
index 82425bb3982d4475b76d3fb3fa12f7164cd3a54f..87cef82d544e3108aa64f068718e6399c0dde432 100644 (file)
@@ -1,3 +1,8 @@
+2016-07-19  Martin Jambor  <mjambor@suse.cz>
+
+        PR fortran/71688
+        * gfortran.dg/pr71688.f90: New test.
+
 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
 
        Backported from mainline
diff --git a/gcc/testsuite/gfortran.dg/pr71688.f90 b/gcc/testsuite/gfortran.dg/pr71688.f90
new file mode 100644 (file)
index 0000000..dbb6d18
--- /dev/null
@@ -0,0 +1,13 @@
+! { dg-do compile }
+! { dg-options "-fcoarray=lib" }
+
+program p
+   call s
+contains
+   subroutine s
+      real :: x[*] = 1
+      block
+      end block
+      x = 2
+   end
+end