]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
PR modula2/113559 FIO.mod lseek requires cssize_t rather than longint
authorGaius Mulley <gaiusmod2@gmail.com>
Wed, 24 Jan 2024 13:11:46 +0000 (13:11 +0000)
committerGaius Mulley <gaiusmod2@gmail.com>
Wed, 24 Jan 2024 13:11:46 +0000 (13:11 +0000)
This patch fixes a bug in gcc/m2/gm2-libs/FIO.mod which failed to cast the
whence parameter into the correct type.  The patch casts the whence
parameter for lseek to SYSTEM.CSSIZE_T.

gcc/m2/ChangeLog:

PR modula2/113559
* gm2-libs/FIO.mod (SetPositionFromBeginning): Convert pos into
CSSIZE_T during call to lseek.
(SetPositionFromEnd): Convert pos into CSSIZE_T during call to
lseek.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
gcc/m2/gm2-libs/FIO.mod

index 7e0aebe8886ff88bba48a28f87d01945cbe06371..6755d3d649d90779c9f054d42a16e007d7d29eef 100644 (file)
@@ -36,7 +36,7 @@ IMPLEMENTATION MODULE FIO ;
                  provides a simple buffered file input/output library.
 *)
 
-FROM SYSTEM IMPORT ADR, TSIZE, WORD ;
+FROM SYSTEM IMPORT ADR, TSIZE, WORD, CSSIZE_T ;
 FROM ASCII IMPORT nl, nul, tab ;
 FROM StrLib IMPORT StrLen, StrConCat, StrCopy ;
 FROM Storage IMPORT ALLOCATE, DEALLOCATE ;
@@ -1448,7 +1448,7 @@ BEGIN
                      filled   := 0
                   END
                END ;
-               offset := lseek(unixfd, pos, SEEK_SET) ;
+               offset := lseek (unixfd, VAL (CSSIZE_T, pos), SEEK_SET) ;
                IF (offset>=0) AND (pos=offset)
                THEN
                   abspos := pos
@@ -1497,7 +1497,7 @@ BEGIN
                   filled   := 0
                END
             END ;
-            offset := lseek(unixfd, pos, SEEK_END) ;
+            offset := lseek (unixfd, VAL (CSSIZE_T, pos), SEEK_END) ;
             IF offset>=0
             THEN
                abspos := offset ;