aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorChristopher D. Rickett <crickett@lanl.gov>2007-07-21 20:31:17 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2007-07-21 20:31:17 +0000
commit21a772278801d5143e385999c692da9457db5552 (patch)
treeaaa261c1ece9e85334ea8466a587b89dc1b0f25d /gcc/testsuite
parentd3960cf47cceb53e288127680ba8f2415d56fec4 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.dg/c_loc_tests_10.f038
-rw-r--r--gcc/testsuite/gfortran.dg/c_loc_tests_9.f0310
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
+
+