ado@NCIFCRF.GOV (Arthur David Olson) (05/01/89)
(We're also running SunOS 4.0.1 on a Sun386i.) Description: Gcc 1.35 on a Sun386i can yield unassemblable code if the -finline-functions option is used. Repeat-By: Script started on Mon May 1 11:40:09 1989 bossie$ cat try.c typedef struct { int callback; } CallbackRec; typedef CallbackRec * CallbackList; typedef struct { int external_form; } CallbackStruct; extern CallbackStruct ** FetchCallbackStruct(); extern CallbackStruct * XtNew(); static CallbackList * FetchCallbackList(widget, name, create) int widget; char * name; char create; { register CallbackStruct **callbacks = FetchCallbackStruct(); if (callbacks == 0) return 0; if (*callbacks == 0) { if (!create) { static CallbackList emptyList = 0; return &emptyList; } *callbacks = XtNew(); (*callbacks)->external_form = 0; } return 0; } void XtAddCallback() { (void) FetchCallbackList(0, 0, 0); } bossie$ /usr/local/bin/gcc -v -O -finline-functions -c try.c gcc version 1.35 /usr/local/lib/gcc-cpp -v -undef -D__GNUC__ -Dunix -Di386 -Dsun386 -Dsun -D__unix__ -D__i386__ -D__sun386__ -D__sun__ -D__OPTIMIZE__ try.c /tmp/cca01547.cpp GNU CPP version 1.35 /usr/local/lib/gcc-cc1 /tmp/cca01547.cpp -quiet -dumpbase try.c -finline-functions -O -version -o /tmp/cca01547.s GNU C version 1.35 (80386, Sun syntax) compiled by GNU C version 1.35. as -i386 -o try.o /tmp/cca01547.s Assembler: try.c aline 24 : syntax error bossie$ /usr/local/bin/gcc -v -O -finline-functions -S try.c gcc version 1.35 /usr/local/lib/gcc-cpp -v -undef -D__GNUC__ -Dunix -Di386 -Dsun386 -Dsun -D__unix__ -D__i386__ -D__sun386__ -D__sun__ -D__OPTIMIZE__ try.c /tmp/cca01551.cpp GNU CPP version 1.35 /usr/local/lib/gcc-cc1 /tmp/cca01551.cpp -quiet -dumpbase try.c -finline-functions -O -version -o try.s GNU C version 1.35 (80386, Sun syntax) compiled by GNU C version 1.35. bossie$ cat try.s .file "try.c" .version "GNU C 1.35" .optim gcc_compiled.: .data .align 4 emptyList.0: .long 0 .text .align 4 .globl XtAddCallback XtAddCallback: pushl %ebp movl %esp,%ebp pushl %esi pushl %ebx xorl %esi,%esi call FetchCallbackStruct movl %eax,%ebx testl %ebx,%ebx je .L14 cmpl $0,(%ebx) jne .L14 testb %si,%si je .L14 call XtNew movl %eax,(%ebx) movl $0,(%eax) .L14: leal -8(%ebp),%esp popl %ebx popl %esi leave ret bossie$ exit script done on Mon May 1 11:40:47 1989 -- Space: Canada, 0 tries ever. Arthur David Olson ado@ncifcrf.gov ADO is a trademark of Ampex.