www.digitalmars.com         C & C++   DMDScript  

D.gnu - [Issue 2213] New: unrecognizable insn are generated when cross-compiling

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2213

           Summary: unrecognizable insn are generated when cross-compiling
           Product: DGCC aka GDC
           Version: unspecified
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: wrong-code
          Severity: major
          Priority: P2
         Component: glue layer
        AssignedTo: dvdfrdmn users.sf.net
        ReportedBy: forumer smartmobili.com


Hi,

When applying latest trunk to cegcc with mingw32ce configuration project I get
some issues but I think that more generally this report could help  people to
cross-compile D on different architectures.
Main issues are related to unrecognizable instruction due to some windows
functions.
Another issue is about x86 assembly used in some modules. 


1) in libphobos/std/c/windows/com.d
It seems that Windows InterlockedIncrement function generates bad instruction

make[3]: Entering directory
`/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/arm-mingw32ce/libphobos'
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
"CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc
-B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
-B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/
-isystem /opt/mingw32ce/arm-mingw32ce/include -isystem
/opt/mingw32ce/arm-mingw32ce/sys-include" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2
" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 "
"INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644"
"INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c"
"LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 "
"MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000  "
"PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS="
"exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info"
"libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include"
"prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce"
"gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar"
"AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as"
"LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld"
"RANLIB=arm-mingw32ce-ranlib"
"NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm"
"NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all
multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc
-B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
-B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/
-isystem /opt/mingw32ce/arm-mingw32ce/include -isystem
/opt/mingw32ce/arm-mingw32ce/sys-include -o std/c/windows/com.o -g -frelease
-O2  -nostdinc -pipe   \
    -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce
-c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d: In member
function 'AddRef':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d:224:
error: unrecognizable insn:
(call_insn/j 13 12 14 0
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d:223
(parallel [
            (set (reg:SI 0 r0)
                (call (mem:SI (reg/f:SI 105) [0 S4 A32])
                    (const_int 0 [0x0])))
            (return)
            (use (const_int 0 [0x0]))
        ]) -1 (nil)
    (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
        (nil)))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/windows/com.d:224:
internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[3]: *** [std/c/windows/com.o] Error 1
make[3]: Leaving directory
`/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/arm-mingw32ce/libphobos'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/arm-mingw32ce/libphobos'
make[1]: *** [all-target-libphobos] Error 2
make[1]: Leaving directory
`/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc'
make: *** [all] Error 2
------------------------------------------------------------------------------

2)Same kind of error in libphobos/std/mmfile.d due to FlushViewOfFile function

    /* Flush any pending output. */
    void flush()
    {
        debug (MMFILE) printf("MmFile.flush()\n");
        version (Win32)
        {
          FlushViewOfFile(data.ptr, data.length);<< BAD INSN
        }
        ...
    }

true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
"CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc
-B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
-B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/
-isystem /opt/mingw32ce/arm-mingw32ce/include -isystem
/opt/mingw32ce/arm-mingw32ce/sys-include" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2
" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 "
"INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644"
"INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c"
"LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 "
"MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000  "
"PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS="
"exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info"
"libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include"
"prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce"
"gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar"
"AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as"
"LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld"
"RANLIB=arm-mingw32ce-ranlib"
"NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm"
"NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all
multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc
-B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
-B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/
-isystem /opt/mingw32ce/arm-mingw32ce/include -isystem
/opt/mingw32ce/arm-mingw32ce/sys-include -o std/mmfile.o -g -frelease -O2 
-nostdinc -pipe   \
    -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce
-c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d: In member
function 'flush':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d:414: error:
unrecognizable insn:
(call_insn/j 15 14 16 0
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d:397 (parallel [
            (set (reg:SI 0 r0)
                (call (mem:SI (reg/f:SI 104) [0 S4 A32])
                    (const_int 0 [0x0])))
            (return)
            (use (const_int 0 [0x0]))
        ]) -1 (nil)
    (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SI 1 r1))
        (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
            (nil))))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/mmfile.d:414: internal
compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
with preprocessed source if appropriate.
------------------------------------------------------------------------------

3) Same kind of error in libphobos/std/perf.d:202:

static void _qpc(out epoch_type interval)
    {
        QueryPerformanceCounter(&interval);
    }

true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
"CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc
-B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
-B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/
-isystem /opt/mingw32ce/arm-mingw32ce/include -isystem
/opt/mingw32ce/arm-mingw32ce/sys-include" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2
" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 "
"INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644"
"INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c"
"LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 "
"MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000  "
"PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS="
"exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info"
"libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include"
"prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce"
"gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar"
"AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as"
"LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld"
"RANLIB=arm-mingw32ce-ranlib"
"NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm"
"NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all
multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc
-B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
-B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/
-isystem /opt/mingw32ce/arm-mingw32ce/include -isystem
/opt/mingw32ce/arm-mingw32ce/sys-include -o std/perf.o -g -frelease -O2 
-nostdinc -pipe   \
    -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce
-c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d: In function
'_qpc':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d:203: error:
unrecognizable insn:
(call_insn/j 14 13 15 0
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d:202 (parallel [
            (set (reg:SI 0 r0)
                (call (mem:SI (reg/f:SI 102) [0 S4 A32])
                    (const_int 0 [0x0])))
            (return)
            (use (const_int 0 [0x0]))
        ]) -1 (nil)
    (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
        (nil)))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/perf.d:203: internal
compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report
------------------------------------------------------------------------------

4) Missing variable declaration in libphobos/gcc/deh.d:327
private _Unwind_Reason_Code personalityImpl(int iversion,
    _Unwind_Action actions,
    bool foreign_exception,
    _Unwind_Exception *ue_header,
    _Unwind_Context *context)
{
    enum Found
      {
    nothing,
    terminate,
    cleanup,
    handler
      }

    Found found_type;
    lsda_header_info info;
    OurUnwindException * xh = OurUnwindException.fromHeader(ue_header);
    //ubyte *language_specific_data;
    ubyte *p;
    ubyte *action_record;
    //int handler_switch_value;
    _Unwind_Ptr /*landing_pad, */ip;
    Phase1Info phase1;

As you can see landing_pad and ip are commented ...
------------------------------------------------------------------------------

5) function defined in a plateform dependent manner(x86)
In thread.d void *os_query_stackBottom() is defined as x86 ASM so it cannot
work other architecture...



true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
"CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc
-B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
-B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/
-isystem /opt/mingw32ce/arm-mingw32ce/include -isystem
/opt/mingw32ce/arm-mingw32ce/sys-include" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2
" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 "
"INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644"
"INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c"
"LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 "
"MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000  "
"PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS="
"exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info"
"libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include"
"prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce"
"gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar"
"AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as"
"LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld"
"RANLIB=arm-mingw32ce-ranlib"
"NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm"
"NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all
multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc
-B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
-B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/
-isystem /opt/mingw32ce/arm-mingw32ce/include -isystem
/opt/mingw32ce/arm-mingw32ce/sys-include -o std/thread.o -g -frelease -O2 
-nostdinc -pipe   \
    -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce
-c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:522: function
std.thread.os_query_stackBottom expected to return a value of type void*
make[3]: *** [std/thread.o] Error 1

void *os_query_stackBottom()
{
    asm
    {
    naked            ;
    mov    EAX,FS:4    ;
    ret            ;
    }
}
------------------------------------------------------------------------------

6)BAD instruction in libphobos/std/thread.d:399 :

 static void yield()
    {
    Sleep(0);
    }


true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
"CC_FOR_TARGET=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/xgcc
-B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
-B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/
-isystem /opt/mingw32ce/arm-mingw32ce/include -isystem
/opt/mingw32ce/arm-mingw32ce/sys-include" "CFLAGS=-O2 -g -O2 " "CXXFLAGS=-g -O2
" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-O2 -g -O2 "
"INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644"
"INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c"
"LDFLAGS=" "LIBCFLAGS=-O2 -g -O2 " "LIBCFLAGS_FOR_TARGET=-O2 -g -O2 "
"MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000  "
"PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS="
"exec_prefix=/opt/mingw32ce" "infodir=/opt/mingw32ce/info"
"libdir=/opt/mingw32ce/lib" "includedir=/opt/mingw32ce/include"
"prefix=/opt/mingw32ce" "tooldir=/opt/mingw32ce/arm-mingw32ce"
"gdc_include_dir=/opt/mingw32ce/include/d2/4.1.0" "AR=arm-mingw32ce-ar"
"AS=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/as"
"LD=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/collect-ld"
"RANLIB=arm-mingw32ce-ranlib"
"NM=/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/nm"
"NM_FOR_BUILD=" "NM_FOR_TARGET=arm-mingw32ce-nm" "DESTDIR=" "WERROR=" DO=all
multi-do # make
/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/gdc
-B/d/Professionnel/Projets/cegcc/src/build-mingw32ce/gcc/./gcc/
-B/opt/mingw32ce/arm-mingw32ce/bin/ -B/opt/mingw32ce/arm-mingw32ce/lib/
-isystem /opt/mingw32ce/arm-mingw32ce/include -isystem
/opt/mingw32ce/arm-mingw32ce/sys-include -o std/thread.o -g -frelease -O2 
-nostdinc -pipe   \
    -I /d/Professionnel/Projets/cegcc/src/gcc/libphobos -I
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc -I ./arm-mingw32ce
-c /d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d: In function
'yield':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:400: error:
unrecognizable insn:
(call_insn/j 11 10 12 0
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:399 (parallel [
            (call (mem:SI (reg/f:SI 101) [0 S4 A32])
                (const_int 0 [0x0]))
            (return)
            (use (const_int 0 [0x0]))
        ]) -1 (nil)
    (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
        (nil)))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:400: internal
compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
with preprocessed source if appropriate.
------------------------------------------------------------------------------

7) same kind - BAD INSN

~this()
    {
        if (state != TS.FINISHED)
            CloseHandle(hdl); <<<<<< BAD INSN
    }

/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d: In member
function '_dtor':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:127: error:
unrecognizable insn:
(call_insn/j 19 18 20 1
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:126 (parallel [
            (set (reg:SI 0 r0)
                (call (mem:SI (reg/f:SI 104) [0 S4 A32])
                    (const_int 0 [0x0])))
            (return)
            (use (const_int 0 [0x0]))
        ]) -1 (nil)
    (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SI 0 r0))
        (nil)))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/thread.d:127: internal
compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,
------------------------------------------------------------------------------

8)invariant not recomputed when ADDR_EXPR changed error

/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d: In function
'stdout':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d:205: error:
invariant not recomputed when ADDR_EXPR changed
&_iobD.894[0];

/d/Professionnel/Projets/cegcc/src/gcc/libphobos/std/c/stdio.d:205: internal
compiler error: verify_stmts failed
Please submit a full bug report,
with preprocessed source if appropriate.
------------------------------------------------------------------------------

9) Same error as 5) in libphobos/internal/gc/win32.d due to x86 ASM

/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d:75:
function win32.os_query_stackBottom expected to return a value of type void*
make[3]: *** [internal/gc/win32.o] Error 1
------------------------------------------------------------------------------

10) BAD INSN in libphobos/internal/gc/win32.d:69

pthread_t pthread_self()
{
    //printf("pthread_self() = %x\n", GetCurrentThreadId());
    return cast(pthread_t) GetCurrentThreadId();
}


/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d: In
function 'pthread_self':
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d:69: error:
unrecognizable insn:
(call_insn/j 10 9 11 0
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d:68
(parallel [
            (set (reg:SI 0 r0)
                (call (mem:SI (reg/f:SI 103) [0 S4 A32])
                    (const_int 0 [0x0])))
            (return)
            (use (const_int 0 [0x0]))
        ]) -1 (nil)
    (nil)
    (nil))
/d/Professionnel/Projets/cegcc/src/gcc/libphobos/internal/gc/win32.d:69:
internal compiler error: in extract_insn, at recog.c:2084
Please submit a full bug report,


-- 
Jul 10 2008
parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=2213





------- Comment #1 from forumer smartmobili.com  2008-07-11 10:38 -------
compiled with gcc 4.1.0.
All the bad insn error seems to be fixed when passing
-fno-optimize-sibling-calls.


-- 
Jul 11 2008