re PR fortran/32580 (iso_c_binding c_f_procpointer / procedure pointers)
authorJanus Weil <janus@gcc.gnu.org>
Wed, 2 Jul 2008 19:53:37 +0000 (21:53 +0200)
committerJanus Weil <janus@gcc.gnu.org>
Wed, 2 Jul 2008 19:53:37 +0000 (21:53 +0200)
commit8fb74da43bd12ea5008ba9fba2173b455d494b2c
tree22cdfa5a0f9753aaa861e0696994a9d143ec1e49
parent658896fbb85ebf48d21c9a08e405d0916ca1d45a
re PR fortran/32580 (iso_c_binding c_f_procpointer / procedure pointers)

2008-07-02  Janus Weil  <janus@gcc.gnu.org>
    Tobias Burnus  <burnus@net-b.de>
    Paul Thomas  <pault@gcc.gnu.org>

PR fortran/32580
* gfortran.h (struct gfc_symbol): New member "proc_pointer".
* check.c (gfc_check_associated,gfc_check_null): Implement
procedure pointers.
* decl.c (match_procedure_decl): Ditto.
* expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol): Ditto.
* interface.c (compare_actual_formal): Ditto.
* match.h: Ditto.
* match.c (gfc_match_pointer_assignment): Ditto.
* parse.c (parse_interface): Ditto.
* primary.c (gfc_match_rvalue,match_variable): Ditto.
* resolve.c (resolve_fl_procedure): Ditto.
* symbol.c (check_conflict,gfc_add_external,gfc_add_pointer,
gfc_copy_attr,gen_fptr_param,build_formal_args): Ditto.
* trans-decl.c (get_proc_pointer_decl,gfc_get_extern_function_decl,
create_function_arglist): Ditto.
* trans-expr.c (gfc_conv_variable,gfc_conv_function_val,
gfc_conv_function_call,gfc_trans_pointer_assignment): Ditto.

2008-07-02  Janus Weil  <janus@gcc.gnu.org>
    Tobias Burnus  <burnus@net-b.de>

PR fortran/32580
* gfortran.dg/c_f_pointer_tests_3.f90: Updated.
* gfortran.dg/proc_decl_1.f90: Updated.
* gfortran.dg/proc_ptr_1.f90: New.
* gfortran.dg/proc_ptr_2.f90: New.
* gfortran.dg/proc_ptr_3.f90: New.
* gfortran.dg/proc_ptr_4.f90: New.
* gfortran.dg/proc_ptr_5.f90: New.
* gfortran.dg/proc_ptr_6.f90: New.
* gfortran.dg/proc_ptr_7.f90: New.
* gfortran.dg/proc_ptr_8.f90: New.

Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r137386
27 files changed:
gcc/fortran/ChangeLog
gcc/fortran/check.c
gcc/fortran/decl.c
gcc/fortran/expr.c
gcc/fortran/gfortran.h
gcc/fortran/interface.c
gcc/fortran/match.c
gcc/fortran/match.h
gcc/fortran/parse.c
gcc/fortran/primary.c
gcc/fortran/resolve.c
gcc/fortran/symbol.c
gcc/fortran/trans-decl.c
gcc/fortran/trans-expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/c_f_pointer_tests_3.f90
gcc/testsuite/gfortran.dg/proc_decl_1.f90
gcc/testsuite/gfortran.dg/proc_ptr_1.f90 [new file with mode: 0755]
gcc/testsuite/gfortran.dg/proc_ptr_2.f90 [new file with mode: 0755]
gcc/testsuite/gfortran.dg/proc_ptr_3.f90 [new file with mode: 0755]
gcc/testsuite/gfortran.dg/proc_ptr_4.f90 [new file with mode: 0755]
gcc/testsuite/gfortran.dg/proc_ptr_5.f90 [new file with mode: 0755]
gcc/testsuite/gfortran.dg/proc_ptr_6.f90 [new file with mode: 0755]
gcc/testsuite/gfortran.dg/proc_ptr_7.c [new file with mode: 0644]
gcc/testsuite/gfortran.dg/proc_ptr_7.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/proc_ptr_8.c [new file with mode: 0644]
gcc/testsuite/gfortran.dg/proc_ptr_8.f90 [new file with mode: 0644]