USE ISO_C_BINDING, only: c_null_ptr, c_ptr type(c_ptr) :: t t = c_null_ptr print *, c_null_ptr, t end should not be allowed (at least with -std=f2003) as type(c_ptr) has only private components.
Related: print *, c_loc(4) end gives an ICE. Expected: Error: xxxx.f90, line 5: The argument to C_LOC must be a pointer or target additionally with -std=f2003: Error: xxxx.f90, line 5: Derived type C_PTR in io-list has PRIVATE components
Subject: Bug 32601 Author: burnus Date: Thu Jul 12 19:52:03 2007 New Revision: 126598 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126598 Log: 2007-07-12 Christopher D. Rickett <crickett@lanl.gov> PR fortran/32599 * decl.c (verify_c_interop_param): Require character string dummy args to BIND(C) procedures to have length 1. * resolve.c (resolve_fl_procedure): Modify parameter checking for BIND(C) procedures. PR fortran/32601 * resolve.c (gfc_iso_c_func_interface): Verify that a valid expression is given as an argument to C_LOC and C_ASSOCIATED. * trans-io.c (transfer_expr): Add argument for code block. Add standards check to determine if an error message should be reported for printing C_PTR or C_FUNPTR. (transfer_array_component): Update arguments to transfer_expr. (gfc_trans_transfer): Ditto. * symbol.c (gen_cptr_param): Fix whitespace. 2007-07-12 Christopher D. Rickett <crickett@lanl.gov> PR fortran/32599 * gfortran.dg/32599.f03: New test case. PR fortran/32601 * gfortran.dg/32601.f03: New test case. * gfortran.dg/32601_1.f03: Ditto. * gfortran.dg/c_ptr_tests_9.f03: Updated dg-options. * gfortran.dg/c_ptr_tests_10.f03: Ditto. Added: trunk/gcc/testsuite/gfortran.dg/pr32599.f03 trunk/gcc/testsuite/gfortran.dg/pr32601.f03 trunk/gcc/testsuite/gfortran.dg/pr32601_1.f03 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/decl.c trunk/gcc/fortran/resolve.c trunk/gcc/fortran/symbol.c trunk/gcc/fortran/trans-io.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gfortran.dg/c_ptr_tests_10.f03 trunk/gcc/testsuite/gfortran.dg/c_ptr_tests_9.f03
Fixed.