[gnu.gcc.bug] && bug

raulmill%aludra.usc.edu@USC.EDU (Raul Deluth Rockwell) (11/20/89)

Code:
	a->Rest_Length = t	/* refigure length count */
	    && 1 + a->Rest->Rest_Length;

Code purpose: If t is a null pointer, count is zero, otherwise count
indicates list length.

Problem: works fine for generating a->Rest_Length = 0 or
a->Rest_Length = 1, won't make a->Rest_Length = 2.

Types:
struct arg_list_struct {
    unsigned Line;
    char * Source;
    union {
        signed short Integer;
        unsigned Coord;
        struct arg_list_struct * List;
        char * String;
        struct sym_struct * Sym;
    } Arg;
    arg_type_t Arg_Type;        /* an enum */
    struct arg_list_struct * Rest;
    unsigned Rest_Length;
} *a, *t;

compiler version: gcc version 1.36
compiler options: -g -sun4

environment: Sun-4/260 with 32 MB of memory, running SunOS Release 4.0.3-GFX

steps taken to verify presence of compiler problem rather than user
problem: ran offending computation through gdb (gdb gave 2 where
compiled code gave 1).

Raul Rockwell
INTERNET:   raulmill@usc.edu                       !
UUCP:       ...uunet!usc!raulmill                  !  55 mph = 82 nc
U.S.SNAIL:  721 E Windsor #4,  GLENDALE CA  91205  !