🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Derek Jones Mon, 07 Sep 1992 13:43
struct returns in 2.2.2 + cc under SunOS 8-(
#1079
Author: Derek Jones
Date: Mon, 07 Sep 1992 13:43
90 lines
2319 bytes
Problems with struct returns from cc compiled code and gcc compiled
code under SunOS.

Header file:
/* smc_struct.h */

#include <stdio.h>
 
typedef struct
{
        int a;
        double b;
} smc_struct;


Code to be compiled with cc on a sun....


/* smc_cc.c */

#include "smc_struct.h"
 
smc_struct func(smc1)
smc_struct smc1;
{
  smc_struct smc2;
 
  smc2.a = 35; smc2.b = 39.425;
 
  printf("smc1.a = %d, smc1.b= %lf\n", smc1.a, smc1.b);
 
  printf("smc2.a = %d, smc2.b= %lf\n", smc2.a, smc2.b);
 
  return smc2;
}
 
Now, code to be compiled with gcc on a sun....


/* smc_gcc.c */

#include "smc_struct.h"
 
extern smc_struct func(smc_struct);
 
int main(void)
{
 
  smc_struct smc_main;
 
  smc_main.a = 11; smc_main.b = 88.793;
 
  smc_main = func(smc_main);
 
  printf("smc_main.a = %d, smc_main.b= %lf\n",
          smc_main.a, smc_main.b);
 
  return 0;
 
}
 
The gcc command line was tried with and without the -fpcc-struct-return
flag viz:

cc -c -g smc_cc.c 
gcc -c -g -fpcc-struct-return smc_gcc.c
gcc  -g -fpcc-struct-return  -o smc_test smc_cc.o smc_gcc.o

****BUT*** running the program gives:
smc1.a = 11, smc1.b= 88.793000
smc2.a = 35, smc2.b= 39.425000
%1   29303 Illegal instruction - core dumped smc_test 

It seemed as though this was fixed in 2.2.1 (unless I missed it), but
is now broken again. Any ideas? 

Running 2.2.2 on Sunos 4.1.1 / 4.1.2 on sparc.

(Please reply to derek@aivru.sheffield.ac.uk in preference to the return address
of this message as I don't pick up this mail too frequently, and I don't
read this news group regularly),

Many Thanks

Derek Jones
-- 
Derek Jones, System Manager, AI Vision Research Unit, University of Sheffield ,
Sheffield, S10 2TN, UK	Tel:(+44) (0)742 768555 X 6551 Fax:(+44) (0)742 766515
email: derek@aivru.sheffield.ac.uk   derek@ibmpcug.co.uk  
Compu$: 70374,1355
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads