Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com Sender: brendan AT edison DOT dialix DOT com DOT au Message-ID: <372576B5.89D9DB6C@dgs.monash.edu.au> Date: Tue, 27 Apr 1999 08:35:01 +0000 From: Brendan Simon <brendan AT dgs DOT monash DOT edu DOT au> Reply-To: brendan AT dgs DOT monash DOT edu DOT au Organization: CTAM Pty Ltd X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.0.36 i586) X-Accept-Language: en MIME-Version: 1.0 To: egcs mailing list <egcs AT cygnus DOT com>, CygWin32 <cygwin AT sourceware DOT cygnus DOT com> Subject: Re: cygwin or egcs bug ? References: <372572F7 DOT DA41FB2A AT dgs DOT monash DOT edu DOT au> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit I've done some more tests and it seems to be an egcs problem. Both gcc and g++ (ver 2.7.2.3) compile fine (after adding a few typedefs for the C structs). The egcs-gcc and egcs-g++ (ver 1.0.3 on linux) barf with the sample code. Brendan. Brendan Simon wrote: > The following code compiles fine with gcc-2.7.2.3 (using linux) but > barfs with an internal compiler error when using egcs-1.1.2 (using > Mingw32 or Cygwin32). I haven't tried it with linux egcs yet but I will > try that when I get home tonight. > > The error message is > "/home/noer/src/b20/comp-tools/devo/gcc/expr.c:2468: Internal compiler > error in function emit_move_insn_1" > > Is this a bug or have I got some kind of weird code that should be > changed to be more portable ? > Any ideas or patches ?? > > Thanks, > Brendan Simon. > > struct GEN_REG > { > volatile unsigned long status[4]; > volatile unsigned long control[4]; > }; > > struct DEV > { > volatile GEN_REG genReg; > }; > > #define DevPtr ( (volatile DEV * const) 0x1000000 ) > > int main() > { > // This works OK. > DevPtr->genReg.status[0] = 0x00000000; > DevPtr->genReg.status[1] = 0x00000000; > DevPtr->genReg.status[2] = 0x00000000; > DevPtr->genReg.status[3] = 0x00000000; > > // This causes compiler to barf !!! > for( int i = 0; i < 4; i++ ) > { > DevPtr->genReg.status[i] = 0x00000000; > } > > return 0; > } > > -- > Want to unsubscribe from this list? > Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com