[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [open-cobol-list] [GNU Cobol 2.0] crash on Solaris (sparc) while exe
From: |
Paul . Meinhardt |
Subject: |
Re: [open-cobol-list] [GNU Cobol 2.0] crash on Solaris (sparc) while executing SET ADDRESS OF Y2 UP BY 4 |
Date: |
Mon, 15 Dec 2014 16:06:16 +0100 |
Hello,
yes, but this doesn't change anything.
Best regards
Paul Meinhardt
(Development)
From:
"HECHT, G JOHN"
<address@hidden>
To:
"address@hidden"
<address@hidden>, James Lemmon <address@hidden>
Cc:
"address@hidden"
<address@hidden>
Date:
15.12.2014 16:00
Subject:
RE: [open-cobol-list]
[GNU Cobol 2.0] crash on Solaris (sparc) while executing SET ADDRESS OF
Y2 UP BY 4
Have you tried W-DUMMY. I
never recommend using a correctly spelled word for any user defined object.
John H
From: address@hidden
[mailto:address@hidden]
Sent: Monday, December 15, 2014 8:51 AM
To: James Lemmon
Cc: address@hidden
Subject: Re: [open-cobol-list] [GNU Cobol 2.0] crash on Solaris (sparc)
while executing SET ADDRESS OF Y2 UP BY 4
EXTERNAL SENDER.
DO NOT click links if sender is unknown. DO NOT provide your user ID or
password.
Hello,
I am calling prog from a this small program
IDENTIFICATION DIVISION.
PROGRAM-ID. CALL-IT.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DUMMY PIC X(4).
PROCEDURE DIVISION.
CALL "prog" USING DUMMY
STOP RUN.
the module prog.cob:
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 USING
Y2.
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.
compile command: cobc -g -x call-it.cob prog.cob
the generated C code for prog.cob
int
prog (cob_u8_t *b_10)
{
return prog_ (0, b_10);
}
static int
prog_ (const int entry, cob_u8_t *b_10)
{
/* Program local variables */
#include "prog.c.l.h"
/* Start of function code */
... many lines omitted
/* Line: 17 : SET
: prog.cob */
cob_set_location (st_1, 17, NULL, NULL, st_2);
{
void *temp_ptr;
temp_ptr = b_5;
b_10 = temp_ptr;
}
/* Line: 18 : SET
: prog.cob */
cob_set_location (st_1, 18, NULL, NULL, st_2);
cob_pointer_manip (b_10, (cob_field *)&c_1, 0);
... rest of C code omitted.
and these are the compiler warnings:
prog.c: In function 'prog_':
prog.c:116: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 *'
Best Regards
Paul Meinhardt
(Development)