[builder-ac-amd64@pld-linux.org: ERRORS: scorched3d.spec]

Jakub Bogusz qboosh w pld-linux.org
Wto, 13 Kwi 2004, 20:05:56 CEST


On Tue, Apr 13, 2004 at 06:35:16PM +0200, Adam Gołębiowski wrote:
> ----- Forwarded message from PLD ac-amd64 builder <builder-ac-amd64 w pld-linux.org> -----
> 
> From: PLD ac-amd64 builder <builder-ac-amd64 w pld-linux.org>
> To: adamg w pld-linux.org
> Cc: pld-logs-builder w pld-linux.org
> Subject: ERRORS: scorched3d.spec 
> Date: Tue, 13 Apr 2004 08:49:57 +0000
> 
> ICE - są chętni do naprawy?

> ../ode/lcp.cpp:186: warning: cast from pointer to integer of different size
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> ../ode/lcp.cpp:186: warning: cast to pointer from integer of different size
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> ../ode/lcp.cpp:218: error: unrecognizable insn:
> (insn 541 217 220 19 0x2a95ab3c00 (set (reg:SI 0 eax [116])
>         (subreg:SI (plus:DI (subreg:DI (reg:SI 7 esp) 0)
>                 (const_int -1 [0xffffffffffffffff])) 0)) -1 (nil)
>     (nil))
> ../ode/lcp.cpp:218: internal compiler error: in extract_insn, at recog.c:2175

Ano ICE, tyle że kod jest błędny (tzn. poprawny składniowo, ale mógłby
zrobić tylko SEGV po skompilowaniu... i zrobi to na alphie).

typedef double dReal;

    dReal *tmprow = (dReal*) ((char*)((((((int)(__builtin_alloca ((n * sizeof(dReal))+(16 -1)))))-1)|(16 -1))+1));
                                           ^^^

Co się stanie z 64-bitowym wskaźnikiem po zrzutowaniu na 32-bitowego
inta i rozszerzeniu z powrotem do 64-bitowego wskaźnika, łatwo
przewidzieć.

Może i zgłoszę to (jako "ICE-on-invalid"), ale już widzę co powiedzą po
zobaczeniu takiego potworka ;>


-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl