aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2016-07-19 17:40:43 +0200
committerMartin Jambor <jamborm@gcc.gnu.org>2016-07-19 17:40:43 +0200
commite7980addd0537e0d053371ef8094d019ac52dfbf (patch)
tree1bdadaa99c0f55fab63543b26cc2bf7a383f5924
parent13e889530d0da219afcbcd78c768688593dd5257 (diff)
downloadgcc-e7980addd0537e0d053371ef8094d019ac52dfbf.zip
gcc-e7980addd0537e0d053371ef8094d019ac52dfbf.tar.gz
gcc-e7980addd0537e0d053371ef8094d019ac52dfbf.tar.bz2
re PR fortran/71688 (ICE in analyze, at cgraphunit.c:632 with -fcoarray=lib)
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: r238476
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/fortran/trans-decl.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr71688.f9013
4 files changed, 25 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b6d25c3..c25a1d3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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 Richard Biener <rguenther@suse.de>
* gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 6c9bf50..69ddd17 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -6372,7 +6372,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 || flag_coarray != GFC_FCOARRAY_LIB)
- (void) cgraph_node::create (fndecl);
+ (void) cgraph_node::get_create (fndecl);
}
else
cgraph_node::finalize_function (fndecl, true);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 930a6e8..3657456 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-07-19 Martin Jambor <mjambor@suse.cz>
+
+ PR fortran/71688
+ * gfortran.dg/pr71688.f90: New test.
+
2016-07-19 Richard Biener <rguenther@suse.de>
* c-c++-common/vector-subscript-6.c: New testcase.
diff --git a/gcc/testsuite/gfortran.dg/pr71688.f90 b/gcc/testsuite/gfortran.dg/pr71688.f90
new file mode 100644
index 0000000..dbb6d18
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr71688.f90
@@ -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