If you are using cfront 1.2 on a Sun (or any machine that will fault on a load of location 0), you should modify the file src/expand.c according to the diffs below. Note that the new code is first, not second, in the diffs. 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 );