public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "janus at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug fortran/46152] [F03] ALLOCATE with type-spec fails for intrinsic types
Date: Fri, 29 Oct 2010 14:51:00 -0000	[thread overview]
Message-ID: <20101029145100.cTMBrg7nTrBEbRD085DU68Hr63QBmBdWlvLFXkgYyrc@z> (raw)
In-Reply-To: <bug-46152-4@http.gcc.gnu.org/bugzilla/>

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46152

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2010.10.29 14:51:24
            Summary|ALLOCATE with type-spec     |[F03] ALLOCATE with
                   |fails for intrinsic types   |type-spec fails for
                   |                            |intrinsic types
     Ever Confirmed|0                           |1

--- Comment #15 from janus at gcc dot gnu.org 2010-10-29 14:51:24 UTC ---
(In reply to comment #14)
> The error message "is not an accessible derived type" make no
> sense to me.  In the testcase, the statement 'allocate(tx :: x(5))'
> appears and there is no other appearance of 'tx'.  There is
> no reason (imho) to assume that 'tx' was a derived type over
> some simple typographically error (ie., a syntax error).  In the
> following fixed-form program,
> 
>   program hmm
>   doubleprecision, allocatable :: x
>   allocate(doubleprecicion :: x)
>   end program hmm 
> 
> saying 'doubleprecicion' is inaccessible derived type seems odd.
> 
> match_type_spec() now simply looks at 'tx' and asks if is a
> derived type.  If yes, match_type_spec() returns MATCH_YES.  If no,
> then 'tx' is compared against the intrinsic types.  'tx' clearly
> is not an intrinsic to match_type_spec() returns MATCH_NO.

Agreed so far. So maybe one should add another error message there, saying that
there is an error in the type spec?!?

Currently the line you commented out in allocate_derived_1 gives:

allocate_derived_1.f90:35.13:

 allocate(tx :: x(5))  ! { dg-error "is not an accessible derived type" }
             1
Fehler: Allocate-object at (1) is not a nonprocedure pointer or an allocatable
variable

I think this error message is much more misleading than the previous one.


> Also note, the name of the function is match_type_spec(),
> I've removed these chunks of code
> 
> -      old_locus = gfc_current_locus;
> -      if (gfc_match (" :: ") != MATCH_YES)
> -       return MATCH_ERROR;
> -      gfc_current_locus = old_locus;
>        /* Enfore F03:C401.  */
>        if (ts->u.derived->attr.abstract)
>         {
> @@ -2771,8 +2776,6 @@ match_type_spec (gfc_typespec *ts)
>         }
>        return MATCH_YES;
>      }
> -  else if (m == MATCH_ERROR && gfc_match (" :: ") == MATCH_YES)
> -    return MATCH_ERROR;
> 
> that look for '::'.  The double-colon is not part of
> a type-spec.

Maybe the check for '::' should be left in there. In case a double colon is
being found and the preceding string can not be identified as a type spec, one
should throw an extra error (see above).


> Now, match_type_spec() can never return a MATCH_ERROR
> condition, which may mean the "is not an accessible derived type"
> message may never triggered. Yes, I think it may be dead code.  

Not sure. Will check.


  parent reply	other threads:[~2010-10-29 14:51 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-23 18:50 [Bug fortran/46152] New: " burnus at gcc dot gnu.org
2010-10-23 19:04 ` [Bug fortran/46152] " dominiq at lps dot ens.fr
2010-10-23 19:10 ` burnus at gcc dot gnu.org
2010-10-23 19:25 ` sgk at troutmask dot apl.washington.edu
2010-10-23 19:51 ` burnus at gcc dot gnu.org
2010-10-23 20:18 ` sgk at troutmask dot apl.washington.edu
2010-10-23 21:37 ` janus at gcc dot gnu.org
2010-10-24  7:01 ` burnus at gcc dot gnu.org
2010-10-25  0:25 ` sgk at troutmask dot apl.washington.edu
2010-10-25  0:34 ` sgk at troutmask dot apl.washington.edu
2010-10-25  0:48 ` sgk at troutmask dot apl.washington.edu
2010-10-25  4:33 ` sgk at troutmask dot apl.washington.edu
2010-10-26  4:21 ` sgk at troutmask dot apl.washington.edu
2010-10-26 19:44 ` burnus at gcc dot gnu.org
2010-10-26 21:02 ` sgk at troutmask dot apl.washington.edu
2010-10-29 14:51 ` janus at gcc dot gnu.org [this message]
2010-10-29 21:51 ` [Bug fortran/46152] [F03] " sgk at troutmask dot apl.washington.edu
2010-10-31  3:34 ` kargl at gcc dot gnu.org
2010-11-01 19:30 ` kargl at gcc dot gnu.org
2010-11-02 22:02 ` kargl at gcc dot gnu.org
2010-11-02 22:04 ` kargl at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101029145100.cTMBrg7nTrBEbRD085DU68Hr63QBmBdWlvLFXkgYyrc@z \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).