diff options
author | Christopher D. Rickett <crickett@lanl.gov> | 2007-07-21 20:31:17 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2007-07-21 20:31:17 +0000 |
commit | 21a772278801d5143e385999c692da9457db5552 (patch) | |
tree | aaa261c1ece9e85334ea8466a587b89dc1b0f25d /gcc/testsuite | |
parent | d3960cf47cceb53e288127680ba8f2415d56fec4 (diff) | |
download | gcc-21a772278801d5143e385999c692da9457db5552.zip gcc-21a772278801d5143e385999c692da9457db5552.tar.gz gcc-21a772278801d5143e385999c692da9457db5552.tar.bz2 |
re PR fortran/32801 (USE of ISO_C_BINDING, ONLY: C_LOC causes compiler seg fault)
2007-07-21 Christopher D. Rickett <crickett@lanl.gov>
PR fortran/32801
* symbol.c (generate_isocbinding_symbol): Remove unnecessary
conditional.
PR fortran/32804
* resolve.c (gfc_iso_c_func_interface): Reject assumed-shape and
deferred-shape arrays as args to C_LOC. Fix bug in testing
character args to C_LOC.
2007-07-21 Christopher D. Rickett <crickett@lanl.gov>
PR fortran/32804
* gfortran.dg/c_loc_tests_9.f03: New test case.
* gfortran.dg/c_loc_tests_10.f03: Ditto.
From-SVN: r126812
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/c_loc_tests_10.f03 | 8 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/c_loc_tests_9.f03 | 10 |
3 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d4816ec5..b94b0e5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2007-07-19 Christopher D. Rickett <crickett@lanl.gov> + + PR fortran/32804 + * gfortran.dg/c_loc_tests_9.f03: New test case. + * gfortran.dg/c_loc_tests_10.f03: Ditto. + 2007-07-21 Lee Millward <lee.millward@gmail.com> PR fortran/32823 diff --git a/gcc/testsuite/gfortran.dg/c_loc_tests_10.f03 b/gcc/testsuite/gfortran.dg/c_loc_tests_10.f03 new file mode 100644 index 0000000..867ba18 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/c_loc_tests_10.f03 @@ -0,0 +1,8 @@ +! { dg-do compile } +subroutine aaa(in) + use iso_c_binding + implicit none + integer(KIND=C_int), DIMENSION(:), TARGET :: in + type(c_ptr) :: cptr + cptr = c_loc(in) ! { dg-error "not C interoperable" } +end subroutine aaa diff --git a/gcc/testsuite/gfortran.dg/c_loc_tests_9.f03 b/gcc/testsuite/gfortran.dg/c_loc_tests_9.f03 new file mode 100644 index 0000000..fa32381 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/c_loc_tests_9.f03 @@ -0,0 +1,10 @@ +! { dg-do compile } +subroutine aaa(in) + use iso_c_binding + implicit none + CHARACTER(KIND=C_CHAR), DIMENSION(*), TARGET :: in + type(c_ptr) :: cptr + cptr = c_loc(in) +end subroutine aaa + + |