public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/48478] New: Valid array-constructor syntax rejected/invalid accepted
@ 2011-04-06 11:51 ian_harvey at bigpond dot com
  2011-04-06 13:20 ` [Bug fortran/48478] Array-constructor with type-spec: reject valid/accept invalid burnus at gcc dot gnu.org
  2015-02-25 10:35 ` fxcoudert at gcc dot gnu.org
  0 siblings, 2 replies; 3+ messages in thread
From: ian_harvey at bigpond dot com @ 2011-04-06 11:51 UTC (permalink / raw)
  To: gcc-bugs

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

           Summary: Valid array-constructor syntax rejected/invalid
                    accepted
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: ian_harvey@bigpond.com


Created attachment 23898
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23898
Demonstrates valid and invalid syntax

gfortran 4.7 compiled from trunk revision 171951 rejects an array constructor
with syntax:

  [ derived_type_name:: ... ]

With -Wall --std=f2003 it accepts without complaint one of the form:

  [ TYPE(derived_type_name):: ... ]

>From F2008 draft:

R468: array-constructor  is (/ ac-spec /) 
                         or lbracket ac-spec rbracket

R469: ac-spec            is type-spec ::
                         or [type-spec ::] ac-value-list

R402: type-spec          is intrinsic-type-spec
                         or derived-type-spec

R453: derived-type-spec  is type-name [(type-param-spec-list)]

It looks like the compiler has confused a type-spec with a
declaration-type-spec, (which does use the TYPE keyword).


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug fortran/48478] Array-constructor with type-spec: reject valid/accept invalid
  2011-04-06 11:51 [Bug fortran/48478] New: Valid array-constructor syntax rejected/invalid accepted ian_harvey at bigpond dot com
@ 2011-04-06 13:20 ` burnus at gcc dot gnu.org
  2015-02-25 10:35 ` fxcoudert at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: burnus at gcc dot gnu.org @ 2011-04-06 13:20 UTC (permalink / raw)
  To: gcc-bugs

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

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
           Keywords|                            |accepts-invalid,
                   |                            |rejects-valid
   Last reconfirmed|                            |2011.04.06 13:20:35
                 CC|                            |burnus at gcc dot gnu.org
     Ever Confirmed|0                           |1
            Summary|Valid array-constructor     |Array-constructor with
                   |syntax rejected/invalid     |type-spec: reject
                   |accepted                    |valid/accept invalid

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-04-06 13:20:35 UTC ---
Confirmed.

I first thought that it used to work properly (I cannot check at the moment),
but I now think that I mixed it up with "ALLOCATE ( type-spec :: ...)" which
has the the same syntax. Thus, the fix should be trivial: To use the same as
for allocate.

match.c's gfc_match_allocate has:

  m = match_type_spec (&ts);

While array.c's gfc_match_array_constructor uses:

 if (gfc_match_decl_type_spec (&ts, 0) == MATCH_YES)

(One should make sure that the array constructor also works in initialization
expressions, it might use a different code path.)


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug fortran/48478] Array-constructor with type-spec: reject valid/accept invalid
  2011-04-06 11:51 [Bug fortran/48478] New: Valid array-constructor syntax rejected/invalid accepted ian_harvey at bigpond dot com
  2011-04-06 13:20 ` [Bug fortran/48478] Array-constructor with type-spec: reject valid/accept invalid burnus at gcc dot gnu.org
@ 2015-02-25 10:35 ` fxcoudert at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: fxcoudert at gcc dot gnu.org @ 2015-02-25 10:35 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48478

Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |fxcoudert at gcc dot gnu.org
         Resolution|---                         |FIXED

--- Comment #2 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> ---
Confirmed fixed in 4.9 and later.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-02-25  9:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-06 11:51 [Bug fortran/48478] New: Valid array-constructor syntax rejected/invalid accepted ian_harvey at bigpond dot com
2011-04-06 13:20 ` [Bug fortran/48478] Array-constructor with type-spec: reject valid/accept invalid burnus at gcc dot gnu.org
2015-02-25 10:35 ` fxcoudert at gcc dot gnu.org

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).