This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] fortran/45495 -- optional dummy args cannot not be in restricted expressions


On Thu, Sep 2, 2010 at 2:44 PM, Steve Kargl
<sgk@troutmask.apl.washington.edu> wrote:
> A specification expression is an expression with limitations
> that make it suitable for use in specifications such as length
> type parameters (C501) and array bounds (R512, R513).
>
> R729 ?specification-expr ? ? ? ? ?is ? scalar-int-expr
>
> C710 ?(R729) The scalar-int-expr shall be a restricted expression.
>
> A restricted expression is an expression in which each operation
> is intrinsic and each primary is
> ...
> ?(2) ?An object designator with a base object that is a dummy
> ? ? ? argument that has neither the OPTIONAL nor the INTENT(OUT)
> ? ? ? attribute,
>
> The attach patch enforces the above restriction. ?It has been
> built and regression tested on x86_64-*-freebsd. ?OK for trunk?
>
>
> 2010-09-02 ?Steven G. Kargl ?<kargl@gcc.gnu.org>
>
> ? ? ? ?PR fortran/45495
> ? ? ? ?* gfortran.dg/dummy_optional_arg.f90: New test.
>
> 2010-09-02 ?Steven G. Kargl ?<kargl@gcc.gnu.org>
>
> ? ? ? ?PR fortran/45495
> ? ? ? ?* fortran/expr.c (check_inquiry): Optional dummy argument are not
> ? ? ? ?permitted in a restricted expression.
>

The new test fails on Linux/x86:

/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/gfortran.dg/dummy_procedure_1.f90:39.10:^M
^M
  call s1(i) ! { dg-error "Expected a procedure for argument" }^M
          1^M
Error: Expected a procedure for argument 'f' at (1)^M
/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/gfortran.dg/dummy_procedure_1.f90:43.10:^M
^M
  call s1(z) ! { dg-error "Expected a procedure for argument" }^M
          1^M
Error: Expected a procedure for argument 'f' at (1)^M
/export/gnu/import/svn/gcc-test/src-trunk/gcc/testsuite/gfortran.dg/dummy_procedure_1.f90:44.10:^M
^M
  call s2(x) ! { dg-error "Invalid procedure argument" }^M
          1^M
Error: Invalid procedure argument at (1)^M

PASS: gfortran.dg/dummy_procedure_1.f90  -O   (test for errors, line 39)
FAIL: gfortran.dg/dummy_procedure_1.f90  -O   (test for errors, line 40)


-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]