From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10466 invoked by alias); 1 Mar 2013 18:07:22 -0000 Received: (qmail 10059 invoked by uid 48); 1 Mar 2013 18:06:56 -0000 From: "burnus at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/56500] New: [OOP] "IMPLICIT CLASS(...)" wrongly rejected Date: Fri, 01 Mar 2013 18:07:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: fortran X-Bugzilla-Keywords: rejects-valid X-Bugzilla-Severity: normal X-Bugzilla-Who: burnus at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2013-03/txt/msg00074.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56500 Bug #: 56500 Summary: [OOP] "IMPLICIT CLASS(...)" wrongly rejected Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned@gcc.gnu.org ReportedBy: burnus@gcc.gnu.org CC: janus@gcc.gnu.org Found at http://mailman.j3-fortran.org/pipermail/j3/2013-March/006167.html "IMPLICIT CLASS(...) (...)" does not properly work with gfortran. R560 implicit-stmt is IMPLICIT implicit-spec-list or IMPLICIT NONE R561 implicit-spec is declaration-type-spec ( letter-spec-list ) R403 declaration-type-spec is intrinsic-type-spec or TYPE ( intrinsic-type-spec ) or TYPE ( derived-type-spec ) or CLASS ( derived-type-spec ) or CLASS ( * ) Example by Reinhold Bader: module mod_upimp type :: foo integer :: i end type end module program upimp use mod_upimp implicit class(foo) (a-b) implicit class(*) (c) allocatable :: aaf, caf allocate(aaf, source=foo(2)) allocate(caf, source=foo(3)) select type (aaf) type is (foo) write(*,*) aaf end select select type (caf) type is (foo) write(*,*) caf end select end program