This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project. See the Cygwin home page for more information.
Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: cygwin or egcs bug ?


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@sourceware.cygnus.com


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com