c/2164: ICE on NetBSD/i386, gcc 3.0 20010303 (prerelease)

anonymous@sourceware.cygnus.com anonymous@sourceware.cygnus.com
Sat Mar 3 12:46:00 GMT 2001


>Number:         2164
>Category:       c
>Synopsis:       ICE on NetBSD/i386, gcc 3.0 20010303 (prerelease)
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 03 12:46:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Krister Walfridsson
>Release:        gcc version 3.0 20010303 (prerelease)
>Organization:
>Environment:
NetBSD/i386 1.5S (built as a.out)
>Description:
GCC CVS:ed today from the 3.0 branch gives me an ICE when I
try to compile the NetBSD kernel:

gcc -O2 ice.c
ice.c: In function `foo':
ice.c:26: Internal error: Segmentation fault

where ice.c is the small file below (that has been cut out
from the NetBSD sys/dev/ic/aic6360.c)

   /Krister


#define   I386_BUS_SPACE_IO       0
#define bus_space_read_multi_1(t, h, o, a, c)                           \
do {                                                                    \
        if ((t) == I386_BUS_SPACE_IO) {                                 \
                insb((h) + (o), (a), (c));                              \
        } else {                                                        \
                void *dummy1;                                           \
                int dummy2;                                             \
                int __x __asm__("%eax");                                \
                __asm __volatile("                                      \
                        cld                                     ;       \
                1:      movb (%1),%%al                          ;       \
                        stosb                                   ;       \
                        loop 1b"                                :       \
                    "=&a" (__x), "=D" (dummy1), "=c" (dummy2)   :       \
                    "r" ((h) + (o)), "1" ((a)), "2" ((c))       :       \
                    "memory");                                          \
        }                                                               \
} while (0)


void
foo(void)
{
	char chip_id[32];
	bus_space_read_multi_1(0, 0, 0, chip_id, 31);
}
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
 From: cato@df.lth.se
 Reply-To: cato@df.lth.se
 X-Send-Pr-Version: gnatsweb-2.6 (1.135)
 X-GNATS-Notify: 
 
 
 



More information about the Gcc-bugs mailing list