public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/39286]  New: Missing out-of-bounds diagnostic
@ 2009-02-24  9:56 burnus at gcc dot gnu dot org
  2009-03-08 16:08 ` [Bug fortran/39286] " pault at gcc dot gnu dot org
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-02-24  9:56 UTC (permalink / raw)
  To: gcc-bugs

Found in the thread at
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/792d5c732cc84ddf

Post: http://groups.google.com/group/comp.lang.fortran/msg/025a878dd2d9f8e0

I have not checked whether this is indeed an issue.
---------------
[...]
> At line 25 of file jahed_1.f90
> Fortran runtime error: Array bound mismatch for dimension 1 of array
> 'v3'

I wonder if GFortran is misrepresenting the error. The error message
suggests that GFortran is inferring the size of the assignee from the
LHS of the assignment statement on Line-9, rather than from the RHS
expression on the same line. The former has dimension 1:5, the latter
has 1:6. MRC, Sec. 3.11 says "..if the expression includes a reference
to the array variable or to a part of it, the expression is
interpreted as being fully evaluated before the assignment commences".
The extent of the expression is 6; the extent of the lvalue is 5.

Following Oliver Hardy's advice, "let's really make it dirty", I added
to the RHS the term

       + (/(i+2,i=0,n)/)

and added i to the declaration of integers on Line-3. After this
change, GFortran gave this spurious message at compile time

    err.f90:9: warning: 'i' may be used uninitialized in this function

and, despite the bounds-check being on, gave no error during execution.


-- 
           Summary: Missing out-of-bounds diagnostic
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: burnus at gcc dot gnu dot org
OtherBugsDependingO 27766
             nThis:


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


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

* [Bug fortran/39286] Missing out-of-bounds diagnostic
  2009-02-24  9:56 [Bug fortran/39286] New: Missing out-of-bounds diagnostic burnus at gcc dot gnu dot org
@ 2009-03-08 16:08 ` pault at gcc dot gnu dot org
  2009-04-29 14:12 ` dominiq at lps dot ens dot fr
  2009-04-29 14:20 ` dominiq at lps dot ens dot fr
  2 siblings, 0 replies; 5+ messages in thread
From: pault at gcc dot gnu dot org @ 2009-03-08 16:08 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pault at gcc dot gnu dot org  2009-03-08 16:07 -------
Confirmed.

For some reason, we have never added a bounds check to assignments.  The first
testcase uses a check internal to the function.  Once an extra expression is
added to the rhs, there is nothing to check against.

Cheers

Paul


-- 

pault at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-03-08 16:07:58
               date|                            |


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


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

* [Bug fortran/39286] Missing out-of-bounds diagnostic
  2009-02-24  9:56 [Bug fortran/39286] New: Missing out-of-bounds diagnostic burnus at gcc dot gnu dot org
  2009-03-08 16:08 ` [Bug fortran/39286] " pault at gcc dot gnu dot org
@ 2009-04-29 14:12 ` dominiq at lps dot ens dot fr
  2009-04-29 14:20 ` dominiq at lps dot ens dot fr
  2 siblings, 0 replies; 5+ messages in thread
From: dominiq at lps dot ens dot fr @ 2009-04-29 14:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from dominiq at lps dot ens dot fr  2009-04-29 14:12 -------
I wonder if this not a duplicate of pr36683.


-- 


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


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

* [Bug fortran/39286] Missing out-of-bounds diagnostic
  2009-02-24  9:56 [Bug fortran/39286] New: Missing out-of-bounds diagnostic burnus at gcc dot gnu dot org
  2009-03-08 16:08 ` [Bug fortran/39286] " pault at gcc dot gnu dot org
  2009-04-29 14:12 ` dominiq at lps dot ens dot fr
@ 2009-04-29 14:20 ` dominiq at lps dot ens dot fr
  2 siblings, 0 replies; 5+ messages in thread
From: dominiq at lps dot ens dot fr @ 2009-04-29 14:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from dominiq at lps dot ens dot fr  2009-04-29 14:19 -------
I have modified the code referenced in pr36683 as:

PROGRAM calls 
   IMPLICIT NONE 
   INTEGER :: a(2), b(3), c(6), n , i
   c = myfunc(a,b) 
   WRITE(*,*) "c:",c    !! gives "c: 1 2 3 4 5 6" 
   n = 5 
   c = 0 
   c(1:n) = (/(i+2,i=0,n)/)/myfunc(a,b)
   WRITE(*,*) "c:",c    !! gives "c: 1 2 3 4 5 0" 
CONTAINS 
FUNCTION myfunc(v1,v2) RESULT(v3) 
   IMPLICIT NONE 
   INTEGER, INTENT(IN) :: v1(:), v2(:) 
   INTEGER :: v3(SIZE(v1,1)*SIZE(v2,1)) 
   INTEGER :: i, j, k 
   DO i=1,SIZE(v1,1) 
      DO j=1,SIZE(v2,1) 
         k = (i-1)*SIZE(v2,1) + j 
         v3(k) = k 
      ENDDO 
   ENDDO 
   WRITE(*,*) "myfunc: v3:",v3    !! always gives "v3: 1 2 3 4 5 6" 
END FUNCTION myfunc 
END PROGRAM calls 

and I don't get any run time error even with '-fbounds-check'.
This confirms that this pr is a duplicate of pr36683.


-- 


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


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

* [Bug fortran/39286] Missing out-of-bounds diagnostic
       [not found] <bug-39286-4@http.gcc.gnu.org/bugzilla/>
@ 2013-08-09  7:55 ` tkoenig at gcc dot gnu.org
  0 siblings, 0 replies; 5+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2013-08-09  7:55 UTC (permalink / raw)
  To: gcc-bugs

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

Thomas Koenig <tkoenig at gcc dot gnu.org> changed:

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

--- Comment #4 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
Closing as dup.

*** This bug has been marked as a duplicate of bug 36683 ***


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

end of thread, other threads:[~2013-08-09  7:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-24  9:56 [Bug fortran/39286] New: Missing out-of-bounds diagnostic burnus at gcc dot gnu dot org
2009-03-08 16:08 ` [Bug fortran/39286] " pault at gcc dot gnu dot org
2009-04-29 14:12 ` dominiq at lps dot ens dot fr
2009-04-29 14:20 ` dominiq at lps dot ens dot fr
     [not found] <bug-39286-4@http.gcc.gnu.org/bugzilla/>
2013-08-09  7:55 ` tkoenig 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).