taube@sm.luth.se (Lars-Gunnar Taube) (11/09/88)
Greetings!
First of all, I would like to thank all of you who sent me pointers
on how to build cfront 1.2 on SUN. I now have a working cfront.
Sort of.
I have started to build InterViews 2.3 (coming with X11.R2)
on our SUN-3:s under SunOS 3.5 with AT&T cfront 1.2.1. So far,
no good. Cfront complains about a header file (include/Graphics/ref.h),
which generates an internal error ("bus error or something nasty like that",
I found it to be segmentation fault).
A little poking with xgdb shows that it all happens in the cfront
source file "expand.c", function "needs_zero".
Does any of this sound familiar? Perhaps you know of a fix?
If so, *Please* tell me of it!
This is a plea for help. Any pointers, etc. deeply apprieciated.
lgt
--
taube@luth.UUCP Lars-Gunnar Taube
taube@sm.luth.se Dept of Math & CS
...{uunet,mcvax}!enea!sm.luth.se!taube U of Lule, SWEDENcalder@lurch.stanford.edu (Paul Calder) (11/12/88)
I have started to build InterViews 2.3 (coming with X11.R2)
on our SUN-3:s under SunOS 3.5 with AT&T cfront 1.2.1. So far,
no good.
This is a bug in cfront that is tickled by InterViews. As you
correctly point out, the problem is in expand.c. Here are the
cdiffs.
src/expand.c
***************
*** 79,87 ****
{
int val = 0, tmp = 1;
Pexpr ee = e->e1;
! if ( ee == 0 || ee->tp == 0 ) {
! return 0;
! }
xxx:
switch( ee->tp->base ) {
--- 79,85 ----
{
int val = 0, tmp = 1;
Pexpr ee = e->e1;
! if ( ee->tp == 0 ) return 0;
xxx:
switch( ee->tp->base ) {
***************
*** 95,101 ****
}
if ( tmp == 1 ) {
! tmp++; if ((ee = e->e2) && ee->tp) goto xxx;
}
return( val );
--- 93,99 ----
}
if ( tmp == 1 ) {
! tmp++; if (ee = e->e2) goto xxx;
}
return( val );