]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/fortran/interface.cc
re PR fortran/23060 (%VAL, %REF and %DESCR constructs not implemented)
authorPaul Thomas <pault@gcc.gnu.org>
Sun, 31 Dec 2006 06:55:16 +0000 (06:55 +0000)
committerPaul Thomas <pault@gcc.gnu.org>
Sun, 31 Dec 2006 06:55:16 +0000 (06:55 +0000)
commit7fcafa718da6cb8e072bcadde5eab440df5898d0
tree6103da430695e877961c11f0de7a098d90d6f0c2
parente7e9c63d558d1e7a564d7542038615b980710272
re PR fortran/23060 (%VAL, %REF and %DESCR constructs not implemented)

2006-12-31  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/23060
* intrinsic.c (compare_actual_formal ): Distinguish argument
list functions from keywords.
* intrinsic.c (sort_actual): If formal is NULL, the presence of
an argument list function actual is an error.
* trans-expr.c (conv_arglist_function) : New function to
implement argument list functions %VAL, %REF and %LOC.
(gfc_conv_function_call): Call it.
* resolve.c (resolve_actual_arglist): Add arg ptype and check
argument list functions.
(resolve_function, resolve_call): Set value of ptype before
calls to resolve_actual_arglist.
* primary.c (match_arg_list_function): New function.
(gfc_match_actual_arglist): Call it before trying for a
keyword argument.

2006-12-31  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/23060
* gfortran.dg/c_by_val.c: Called by c_by_val_1.f.
* gfortran.dg/c_by_val_1.f: New test.
* gfortran.dg/c_by_val_2.f: New test.
* gfortran.dg/c_by_val_3.f: New test.

From-SVN: r120295
12 files changed:
gcc/fortran/ChangeLog
gcc/fortran/interface.c
gcc/fortran/intrinsic.c
gcc/fortran/primary.c
gcc/fortran/resolve.c
gcc/fortran/trans-expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/c_by_val.c [new file with mode: 0644]
gcc/testsuite/gfortran.dg/c_by_val_1.f [new file with mode: 0644]
gcc/testsuite/gfortran.dg/c_by_val_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/c_by_val_3.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/char_length_1.f90 [new file with mode: 0644]