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: <372572F7.DA41FB2A@dgs.monash.edu.au> Date: Tue, 27 Apr 1999 08:19:04 +0000 From: Brendan Simon 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 , CygWin32 Subject: cygwin or egcs bug ? Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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