gnucobol-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [open-cobol-list] open-cobol-list Digest, Vol 86, Issue 2


From: James Lemmon
Subject: Re: [open-cobol-list] open-cobol-list Digest, Vol 86, Issue 2
Date: Mon, 15 Dec 2014 14:14:02 +0200

Any linkage item is passed to a program in a call statement and must be declared with a using clause in the Procedure Division heading, if it is referenced in the program, which in the example would be PROCEDURE DIVISION USING Y2.


Best Regards

On Mon, Dec 15, 2014 at 12:12 PM, <address@hidden> wrote:
Send open-cobol-list mailing list submissions to
        address@hidden

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.sourceforge.net/lists/listinfo/open-cobol-list
or, via email, send a message with subject or body 'help' to
        address@hidden

You can reach the person managing the list at
        address@hidden

When replying, please edit your Subject line so it is more specific
than "Re: Contents of open-cobol-list digest..."


Today's Topics:

   1. [GNU Cobol 2.0] crash on Solaris (sparc) while executing SET
      ADDRESS OF Y2 UP BY 4 (address@hidden)


----------------------------------------------------------------------

Message: 1
Date: Mon, 15 Dec 2014 11:12:15 +0100
From: address@hidden
Subject: [open-cobol-list] [GNU Cobol 2.0] crash on Solaris (sparc)
        while executing SET ADDRESS OF Y2 UP BY 4
To: address@hidden
Message-ID:
        <address@hidden>

Content-Type: text/plain; charset="us-ascii"

Hello,

the following small program causes a crash (Signal SIGSEGV) on Solaris
(sparc). The same program runs without problems on Windows and shows the
expected results.

prog.cob: 16: Attempt to reference unallocated memory (Signal SIGSEGV)
Abnormal termination - File contents may be incorrect

I used the gnu cobol branch 2.0 r470

       IDENTIFICATION   DIVISION.
       PROGRAM-ID.      prog.
       DATA             DIVISION.
       WORKING-STORAGE  SECTION.
       01 XX.
         02 XX-1           PIC X(4) VALUE "1234".
         02 XX-2           PIC X(4) VALUE "5678".
       01 P-XX-1        POINTER.
       01 P-XX-2        POINTER.
       LINKAGE          SECTION.
       01 Y2            PIC X(4).
       PROCEDURE        DIVISION.
         SET P-XX-1 TO ADDRESS OF XX-1
         SET P-XX-2 TO ADDRESS OF XX-2
         SET ADDRESS OF Y2 TO ADDRESS OF XX-1
         SET ADDRESS OF Y2 UP BY 4
         IF Y2 NOT = XX-2
            DISPLAY "Test 2 '" Y2 "'"
            END-DISPLAY
         END-IF
         IF ADDRESS OF Y2 NOT= P-XX-2
            DISPLAY "Pointer test failed"
         END-IF
         STOP RUN.

The crash occurs in the first memcpy call of

cob_pointer_manip (cob_field *f1, cob_field *f2, const unsigned int
addsub)
{
        unsigned char   *tmptr;
        memcpy (&tmptr, f1->data, sizeof(void *));
        if (addsub) {
                tmptr -= cob_get_int (f2);
        } else {
                tmptr += cob_get_int (f2);
        }
        memcpy (f1->data, &tmptr, sizeof(void *));
}

the following call to cob_pointer_manip in the generated C code shows the
problem:

  /* Line: 16        : SET                : prog.cob */
  cob_set_location (st_1, 16, NULL, NULL, st_2);
  cob_pointer_manip (b_10, (cob_field *)&c_1, 0);

the variable b_10 is defined as:

/* LINKAGE SECTION (Items not referenced by USING clause) */
static unsigned char    *b_10 = NULL;  /* Y2 */

but the cob_pointer_manip function expects a pointer to a cob_field
structure and therefore f1->data points to nowhere.

During compilation I get the following warnings:

address@hidden: ~/pme-test/cob-address $ cobc -g -x prog.cob
prog.c: In function 'prog_':
prog.c:124:3: warning: passing argument 1 of 'cob_pointer_manip' from
incompatible pointer type
prog.c.h:33:1: note: expected 'struct cob_field *' but argument is of type
'unsigned char *'

The enclosed ZIP (crash.zip) file contains the sample program and the
generated C source and config.log.zip contains the configure log file.

Some data about my solaris system:

uname -a
SunOS sol10d 5.10 Generic_142909-17 sun4u sparc SUNW,Sun-Fire-V440

Any suggestions?



Best Regards

Paul Meinhardt
(Development)

-------------- next part --------------
An HTML attachment was scrubbed...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: crash.zip
Type: application/zip
Size: 3667 bytes
Desc: not available
-------------- next part --------------
A non-text attachment was scrubbed...
Name: config.log.zip
Type: application/zip
Size: 14799 bytes
Desc: not available

------------------------------

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk

------------------------------

_______________________________________________
open-cobol-list mailing list
address@hidden
https://lists.sourceforge.net/lists/listinfo/open-cobol-list


End of open-cobol-list Digest, Vol 86, Issue 2
**********************************************


--
James Lemmon
Cell +27825663095

reply via email to

[Prev in Thread] Current Thread [Next in Thread]