public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug fortran/49586] New: Multiple initialization with DATA: Warning and initialization order @ 2011-06-30 6:53 burnus at gcc dot gnu.org 2011-06-30 7:01 ` [Bug fortran/49586] " jakub at gcc dot gnu.org ` (7 more replies) 0 siblings, 8 replies; 9+ messages in thread From: burnus at gcc dot gnu.org @ 2011-06-30 6:53 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49586 Summary: Multiple initialization with DATA: Warning and initialization order Product: gcc Version: 4.7.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned@gcc.gnu.org ReportedBy: burnus@gcc.gnu.org Depends on: 49540 Follow up to PR 49540. gfortran - as some other compilers - allows multiple initialization in DATA statements. Expected: - Warn - at least with -Wall - if multiple initialization occur (Currently, only -pedantic warns and -std=f* prints an error) - Check whether the current initialization makes sense I think the version of gfortran 4.1 + the commercial compilers makes most sense. For the test case below, the result is (* = warns by default): - g95, NAG: Error because of multiple initialization - gfortran 4.1 (!), ifort, sunf90, pathf90*, openf90*, pgf90: 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 - gfortran 4.6 and 4.7: 4, 5, 5, 5, 5, 1, 2, 2, 2, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 - gfortran 4.3, 4.4 and 4.5: 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 6 program pr49540_2 common /a/ i(5,5) data i(1:5,2) /1, 3 * 2, 3/ data i /4, 23 * 5, 6/ print '(5(5(i0:", "):" "))', i end ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug fortran/49586] Multiple initialization with DATA: Warning and initialization order 2011-06-30 6:53 [Bug fortran/49586] New: Multiple initialization with DATA: Warning and initialization order burnus at gcc dot gnu.org @ 2011-06-30 7:01 ` jakub at gcc dot gnu.org 2011-06-30 11:43 ` jakub at gcc dot gnu.org ` (6 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: jakub at gcc dot gnu.org @ 2011-06-30 7:01 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49586 Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-30 07:01:01 UTC --- More complete testcase, which should be adjusted to do runtime checking of the variable content based on what we decide, and add whatever options will be needed to disable the errors when compiling it. block data common /a/ i(5,5) data i /4, 23 * 5, 6/ data i(:,2) /1, 3 * 2, 3/ common /b/ j(5,5) data j(2,:) /1, 3 * 2, 3/ data j /4, 23 * 5, 6/ common /c/ k(5,5) data k(:,2) /1, 3 * 2, 3/ data k /4, 23 * 5, 6/ common /d/ l(5,5) data l /4, 23 * 5, 6/ data l(2,:) /1, 3 * 2, 3/ end block data ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug fortran/49586] Multiple initialization with DATA: Warning and initialization order 2011-06-30 6:53 [Bug fortran/49586] New: Multiple initialization with DATA: Warning and initialization order burnus at gcc dot gnu.org 2011-06-30 7:01 ` [Bug fortran/49586] " jakub at gcc dot gnu.org @ 2011-06-30 11:43 ` jakub at gcc dot gnu.org 2011-06-30 12:31 ` jakub at gcc dot gnu.org ` (5 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: jakub at gcc dot gnu.org @ 2011-06-30 11:43 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49586 --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-30 11:43:24 UTC --- The order apparently changed with http://gcc.gnu.org/viewcvs?view=revision&revision=114406 which doesn't change the order actually, but only wouldn't overwrite anything. So, even back then the DATA stmts used to be traversed in wrong order. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug fortran/49586] Multiple initialization with DATA: Warning and initialization order 2011-06-30 6:53 [Bug fortran/49586] New: Multiple initialization with DATA: Warning and initialization order burnus at gcc dot gnu.org 2011-06-30 7:01 ` [Bug fortran/49586] " jakub at gcc dot gnu.org 2011-06-30 11:43 ` jakub at gcc dot gnu.org @ 2011-06-30 12:31 ` jakub at gcc dot gnu.org 2011-06-30 13:58 ` burnus at gcc dot gnu.org ` (4 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: jakub at gcc dot gnu.org @ 2011-06-30 12:31 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49586 --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-30 12:30:51 UTC --- Created attachment 24645 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24645 gcc47-pr49586.patch Untested fix for the order. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug fortran/49586] Multiple initialization with DATA: Warning and initialization order 2011-06-30 6:53 [Bug fortran/49586] New: Multiple initialization with DATA: Warning and initialization order burnus at gcc dot gnu.org ` (2 preceding siblings ...) 2011-06-30 12:31 ` jakub at gcc dot gnu.org @ 2011-06-30 13:58 ` burnus at gcc dot gnu.org 2011-06-30 16:11 ` jakub at gcc dot gnu.org ` (3 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: burnus at gcc dot gnu.org @ 2011-06-30 13:58 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49586 --- Comment #4 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-06-30 13:57:21 UTC --- (In reply to comment #3) > Untested fix for the order. For the example of comment 0, gfortran + patch gives the gfortran 4.1 et al. result. For the example which is contained in the attachment, one gets the following result, when printing (in that order) i, j, k, l. gfortran 4.1-4.5: ICE in gfc_assign_data_value_range. gfortran 4.7 (w/ patch) -- and pathf90 3.2.99, openf95 4.2 and sunf95 8.3: 4, 5, 5, 5, 5, 1, 2, 2, 2, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 4, 1, 5, 5, 5, 5, 2, 5, 5, 5, 5, 2, 5, 5, 5, 5, 2, 5, 5, 5, 5, 3, 5, 5, 6 ifort 11.1 and pgf90 10.1: 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 4, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 6 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 gfortran 4.6/4.7 (w/o patch): 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 4, 1, 5, 5, 5, 5, 2, 5, 5, 5, 5, 2, 5, 5, 5, 5, 2, 5, 5, 5, 5, 3, 5, 5, 6 4, 5, 5, 5, 5, 1, 2, 2, 2, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 For comparison, the m and n lines are: 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 4, 5, 5, 5, 5, 1, 2, 2, 2, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6 ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug fortran/49586] Multiple initialization with DATA: Warning and initialization order 2011-06-30 6:53 [Bug fortran/49586] New: Multiple initialization with DATA: Warning and initialization order burnus at gcc dot gnu.org ` (3 preceding siblings ...) 2011-06-30 13:58 ` burnus at gcc dot gnu.org @ 2011-06-30 16:11 ` jakub at gcc dot gnu.org 2011-06-30 17:29 ` dominiq at lps dot ens.fr ` (2 subsequent siblings) 7 siblings, 0 replies; 9+ messages in thread From: jakub at gcc dot gnu.org @ 2011-06-30 16:11 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49586 --- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-30 16:10:18 UTC --- Unfortunately, this patch breaks gfortran.fortran-torture/execute/data.f90 compilation, it fails with a cryptic error. No idea if it is a bug in the testcase that just relied on the older ordering, or if my patch is buggy. I guess I give up here. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug fortran/49586] Multiple initialization with DATA: Warning and initialization order 2011-06-30 6:53 [Bug fortran/49586] New: Multiple initialization with DATA: Warning and initialization order burnus at gcc dot gnu.org ` (4 preceding siblings ...) 2011-06-30 16:11 ` jakub at gcc dot gnu.org @ 2011-06-30 17:29 ` dominiq at lps dot ens.fr 2013-06-16 18:15 ` dominiq at lps dot ens.fr 2013-06-16 18:15 ` dominiq at lps dot ens.fr 7 siblings, 0 replies; 9+ messages in thread From: dominiq at lps dot ens.fr @ 2011-06-30 17:29 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49586 --- Comment #6 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2011-06-30 17:28:48 UTC --- > Unfortunately, this patch breaks gfortran.fortran-torture/execute/data.f90 > compilation, it fails with a cryptic error. Confirmed. A reduced test is ! Program to test data statement program data call sub1() end subroutine sub1() integer i type tmp integer, dimension(4)::a real :: r end type type tmp1 type (tmp) t1(4) integer b end type type (tmp1) tmp2(2) ! Full array and scalar component initializer data tmp2(2)%t1(2)%r, tmp2(1)%t1(3)%a, tmp2(1)%b/220,136,137,138,139,10/ data tmp2(2)%t1(2)%a(3), tmp2(2)%t1(2)%a(1)/223,221/ end The error is emitted in show_loci in gcc/fortran/error.c when l1 == NULL || l1->lb == NULL With gdb I get Breakpoint 1, show_loci (l1=0x141d23260, l2=0x0) at ../../work/gcc/fortran/error.c:383 383 if (l1 == NULL || l1->lb == NULL) (gdb) p l1 $1 = (locus *) 0x141d23260 (gdb) p *l1 $2 = { nextc = 0x0, lb = 0x0 } (gdb) bt #0 show_loci (l1=0x141d23260, l2=0x0) at ../../work/gcc/fortran/error.c:383 #1 0x000000010002832d in error_print (type=0x100a46df1 "Error:", format0=0x100a63ad0 "non-constant initialization expression at %L", argp=0x7fff5fbfd128) at ../../work/gcc/fortran/error.c:627 Previous frame inner to this frame (gdb could not unwind past this frame) ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug fortran/49586] Multiple initialization with DATA: Warning and initialization order 2011-06-30 6:53 [Bug fortran/49586] New: Multiple initialization with DATA: Warning and initialization order burnus at gcc dot gnu.org ` (5 preceding siblings ...) 2011-06-30 17:29 ` dominiq at lps dot ens.fr @ 2013-06-16 18:15 ` dominiq at lps dot ens.fr 2013-06-16 18:15 ` dominiq at lps dot ens.fr 7 siblings, 0 replies; 9+ messages in thread From: dominiq at lps dot ens.fr @ 2013-06-16 18:15 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49586 Dominique d'Humieres <dominiq at lps dot ens.fr> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #7 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- Duplicate of pr45288. *** This bug has been marked as a duplicate of bug 45288 *** --- Comment #8 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- Duplicate of pr45288. *** This bug has been marked as a duplicate of bug 45288 *** ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug fortran/49586] Multiple initialization with DATA: Warning and initialization order 2011-06-30 6:53 [Bug fortran/49586] New: Multiple initialization with DATA: Warning and initialization order burnus at gcc dot gnu.org ` (6 preceding siblings ...) 2013-06-16 18:15 ` dominiq at lps dot ens.fr @ 2013-06-16 18:15 ` dominiq at lps dot ens.fr 7 siblings, 0 replies; 9+ messages in thread From: dominiq at lps dot ens.fr @ 2013-06-16 18:15 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49586 Dominique d'Humieres <dominiq at lps dot ens.fr> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #7 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- Duplicate of pr45288. *** This bug has been marked as a duplicate of bug 45288 *** ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-06-16 18:15 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-06-30 6:53 [Bug fortran/49586] New: Multiple initialization with DATA: Warning and initialization order burnus at gcc dot gnu.org 2011-06-30 7:01 ` [Bug fortran/49586] " jakub at gcc dot gnu.org 2011-06-30 11:43 ` jakub at gcc dot gnu.org 2011-06-30 12:31 ` jakub at gcc dot gnu.org 2011-06-30 13:58 ` burnus at gcc dot gnu.org 2011-06-30 16:11 ` jakub at gcc dot gnu.org 2011-06-30 17:29 ` dominiq at lps dot ens.fr 2013-06-16 18:15 ` dominiq at lps dot ens.fr 2013-06-16 18:15 ` dominiq at lps dot ens.fr
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).