[gnu.g++.bug] Extern union declaration crashes g++1.35

tom@tnosoes.UUCP (Tom Vijlbrief) (10/03/89)

The following program crashes g++1.35
================externcrash.cc=============
extern "C" {
/* structure used to specify fields in a 32-bit pixel */
union fbunit {
    unsigned int    packed;            /* whole-sale deal */
    struct {
        unsigned int    A:8;           /* unused, for now */
        unsigned int    B:8;           /* blue channel */
        unsigned int    G:8;           /* green channel */
        unsigned int    R:8;           /* red channel */
    }               channel;           /* access per channel */
};
};


===============================
g++ -c -v externcrash.cc
g++ version 1.35.0
 /usr/local/lib/gcc-cpp -+ -v -undef -D__GNU__ -D__GNUG__ -D__cplusplus -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__HAVE_68881__ -Dmc68020 externcrash.cc /tmp/cca08984.cpp
 GNU CPP version 1.35
  /usr/local/lib/gcc-cc1plus /tmp/cca08984.cpp -quiet -dumpbase externcrash.cc -noreg -version -o /tmp/cca08984.s
  GNU C++ version 1.35.0 (68k, MIT syntax) compiled by GNU C version 1.35.
  externcrash.cc:11: Segmentation violation
  g++: Program cc1plus got fatal signal 11.
==============================

===============================================================================
Tom Vijlbrief
TNO Institute for Perception
P.O. Box 23				Phone: +31 34 63 562 11
3769 ZG  Soesterberg			E-mail: tnosoes!tom@mcvax.cwi.nl
The Netherlands				    or:	uunet!mcvax!tnosoes!tom
===============================================================================

schmidt@zola.ics.uci.edu (Doug Schmidt) (10/05/89)

In article <486@tnosoes.UUCP>, tom@tnosoes (Tom Vijlbrief) writes:
>The following program crashes g++1.35
>================externcrash.cc=============
>extern "C" {
>/* structure used to specify fields in a 32-bit pixel */
>union fbunit {
>    unsigned int    packed;            /* whole-sale deal */
>    struct {
>        unsigned int    A:8;           /* unused, for now */
>        unsigned int    B:8;           /* blue channel */
>        unsigned int    G:8;           /* green channel */
>        unsigned int    R:8;           /* red channel */
>    }               channel;           /* access per channel */
>};
>};

This problem is fixed in 1.36.0-

Doug
--
schmidt@ics.uci.edu (ARPA) |   Per me si va nella citta' dolente.
office: (714) 856-4043     |   Per me si va nell'eterno dolore.
                           |   Per me si va tra la perduta gente.
                           |   Lasciate ogni speranza o voi ch'entrate.