|
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 |
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
**********************************************
[Prev in Thread] | Current Thread | [Next in Thread] |