diff options
author | jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-07-08 04:36:16 +0000 |
---|---|---|
committer | jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-07-08 04:36:16 +0000 |
commit | 5cdc40a0906a633870b29d995a44842ca04510a4 (patch) | |
tree | 69ed39c6e9db1b7838a6cfc6e2a28a045aa1e84a | |
parent | b30e994f2d19fe0eb8cc690ae02208f9869292c4 (diff) | |
download | gcc-5cdc40a0906a633870b29d995a44842ca04510a4.tar.gz |
2016-07-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/71764
* trans-expr.c (gfc_trans_structure_assign): Remove assert.
* gfortran.dg/pr71764.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@238156 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/trans-expr.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr71764.f90 | 34 |
4 files changed, 44 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index f4d84e85557..afd9f061baa 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2016-07-07 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/71764 + * trans-expr.c (gfc_trans_structure_assign): Remove assert. + 2016-07-07 Martin Liska <mliska@suse.cz> * lang.opt (Wundefined-do-loop): New option. diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index b5731aa8bbe..4321850b59d 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -7358,7 +7358,6 @@ gfc_trans_structure_assign (tree dest, gfc_expr * expr, bool init) { gfc_se se, lse; - gcc_assert (cm->backend_decl == NULL); gfc_init_se (&se, NULL); gfc_init_se (&lse, NULL); gfc_conv_expr (&se, gfc_constructor_first (expr->value.constructor)->expr); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c61e6e5a201..22a4a588803 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-07-07 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/71764 + * gfortran.dg/pr71764.f90: New test. + 2016-07-07 Jakub Jelinek <jakub@redhat.com> Kai Tietz <ktietz70@googlemail.com> diff --git a/gcc/testsuite/gfortran.dg/pr71764.f90 b/gcc/testsuite/gfortran.dg/pr71764.f90 new file mode 100644 index 00000000000..48176f8297e --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr71764.f90 @@ -0,0 +1,34 @@ +! { dg-do run } +! PR71764 +program p + use iso_c_binding, only: c_ptr, c_null_ptr, c_ptr, c_associated, c_loc + logical, target :: rls + real, target :: t = 3.14 + type(c_ptr) :: nullptr,c + real, pointer :: k + nullptr = c_null_ptr + c = nullptr + rls = c_associated(c) + if (rls) call abort + if (c_associated(c)) call abort + c = c_loc(rls) + if (.not. c_associated(c)) call abort + c = nullptr + if (c_associated(c)) call abort + c = c_loc(t) + k => t + call association_test(k, c) +contains + subroutine association_test(a,b) + use iso_c_binding, only: c_associated, c_loc, c_ptr + implicit none + real, pointer :: a + type(c_ptr) :: b + if(c_associated(b, c_loc(a))) then + return + else + call abort + end if + end subroutine association_test +end + |