Thread overview
GDC release 1d
Mar 25, 2004
David Friedman
Mar 25, 2004
s31552
Mar 29, 2004
David Friedman
Apr 10, 2004
s31552
March 25, 2004
Here's another update.

http://home.earthlink.net/~dvdfrdmn/d/d-for-gcc-r1d.tgz

* ICE when a struct was used before its definition

* Segfault on empty scope statements

* ICE for associative array properties
* Segfault on typedef'd floating point constants
* Handle calls to super

* Fix assignment ops on bit arrays
* Fix layout of struct stat for darwin

March 25, 2004
Thank you for fixing the bugs! It really helps me. I can already build some D applications. gdc is great.

But I found more bugs.

bug_foreach.d:

int main() {
    /* it's safe
    int[] os;
    os.length = 2;
    */
    int[2] os;
    foreach (inout int o; os) {
        o = 0;   // segmentation fault.
    }
    return 0;
}

bug_not.d:

void safe() {
    bit b = !1;
}
bit bug() {
    return !1;   // cannot compile
}

bug_for.d:

void bug() {
    for (int i=3; --i; ) {}   // cannot compile
}

And, I cannot compile phobos's gcc/config.d on MacOSX.

$ make
gdc -o gcc/config.o -g -O2 -I ../../gcc/d/phobos -I ../../gcc/d/phobos/internal/gc -c gcc/config.d
gcc/config.d:0: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make: *** [gcc/config.o] Error 1

I think gdc-1d may not work on MacOSX.

------------------
 shinichiro.h
  s31552@mail.ecc.u-tokyo.ac.jp
  http://user.ecc.u-tokyo.ac.jp/~s31552/wp/
March 29, 2004
I was not able to reproduce the crash for bug_not.d.  As for config.d, I once accidently did a partial rebuild with the new gcc in the path and ended up with a gdc that did not work.  That's my best guess.

The other bugs have been fixed in version 1e.  Please let me know if the problems persist.

David

On Fri, 26 Mar 2004 04:09:02 +0900, s31552 wrote:

> Thank you for fixing the bugs! It really helps me. I can already build some D applications. gdc is great.
> 
> But I found more bugs.
> 
> bug_foreach.d:
> 
> int main() {
>     /* it's safe
>     int[] os;
>     os.length = 2;
>     */
>     int[2] os;
>     foreach (inout int o; os) {
>         o = 0;   // segmentation fault.
>     }
>     return 0;
> }
> 
> bug_not.d:
> 
> void safe() {
>     bit b = !1;
> }
> bit bug() {
>     return !1;   // cannot compile
> }
> 
> bug_for.d:
> 
> void bug() {
>     for (int i=3; --i; ) {}   // cannot compile
> }
> 
> And, I cannot compile phobos's gcc/config.d on MacOSX.
> 
> $ make
> gdc -o gcc/config.o -g -O2 -I ../../gcc/d/phobos -I ../../gcc/d/phobos/internal/gc -c gcc/config.d
> gcc/config.d:0: internal compiler error: Segmentation fault
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://gcc.gnu.org/bugs.html> for instructions.
> make: *** [gcc/config.o] Error 1
> 
> I think gdc-1d may not work on MacOSX.
> 
> ------------------
>  shinichiro.h
>   s31552@mail.ecc.u-tokyo.ac.jp
>   http://user.ecc.u-tokyo.ac.jp/~s31552/wp/

April 10, 2004
> I was not able to reproduce the crash for bug_not.d.

Hmm... I cannot reproduce the crash too on MacOSX. It may be only linux's problem. I try to report a gdb trace. The crash happens with linux-2.4.22 (Fedora Core1) and gcc-3.3.2 and gdc-r1e.

> gdb /usr/local/stow/gcc-gdc-3.3.2/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/cc1d
(gdb) break expr.c:3165
Breakpoint 1 at 0x810ea76: file ../../gcc/expr.c, line 3165.
(gdb) run bug_not.d -dumpbase bug_not.d -auxbase bug_not -version -o /tmp/cc0o8f
RV.s
Starting program: /usr/local/stow/gcc-gdc-3.3.2/lib/gcc-lib/i686-pc-linux-gnu/3.
3.2/cc1d bug_not.d -dumpbase bug_not.d -auxbase bug_not -version -o /tmp/cc0o8fR
V.s
GNU D version 3.3.2 (i686-pc-linux-gnu)
        compiled by GNU C version 3.3.2.
GGC heuristics: --param ggc-min-expand=38 --param ggc-min-heapsize=15833
options passed:  -auxbase
options enabled:  -fpeephole -ffunction-cse -fkeep-static-consts
 -fpcc-struct-return -fgcse-lm -fgcse-sm -fsched-interblock -fsched-spec
 -fbranch-count-reg -fexceptions -fcommon -fgnu-linker -fargument-alias
 -fzero-initialized-in-bss -fident -fmath-errno -ftrapping-math
 -fbounds-check -m80387 -mhard-float -mno-soft-float -mieee-fp
 -mfp-ret-in-387 -maccumulate-outgoing-args -mcpu=pentiumpro -march=i386
 safe bug
Breakpoint 1, emit_move_insn (x=0xbf5b26c0, y=0xbf5b2714)
    at ../../gcc/expr.c:3165
3165        abort ();
(gdb) where
#0  emit_move_insn (x=0xbf5b26c0, y=0xbf5b2714) at ../../gcc/expr.c:3165
#1  0x08244343 in expand_value_return (val=0xbf5b2714) at ../../gcc/stmt.c:3000
#2  0x082444ec in expand_return (retval=0xbf5b2714) at ../../gcc/stmt.c:3239
#3  0x080b4f79 in ReturnStatement::toIR(IRState*) (this=0x9584108,
    irs=0x958f1d0) at ../../gcc/d/d-glue.cc:2672
#4  0x080b60e6 in CompoundStatement::toIR(IRState*) (this=0x958b418,
    irs=0x958f1d0) at ../../gcc/d/d-glue.cc:3040
#5  0x080b60e6 in CompoundStatement::toIR(IRState*) (this=0x958b480,
    irs=0x958f1d0) at ../../gcc/d/d-glue.cc:3040
#6  0x080b366c in FuncDeclaration::toObjFile() (this=0x9584008)
    at ../../gcc/d/d-glue.cc:2040
#7  0x080b382a in Module::genobjfile() (this=0x957ac48)
    at ../../gcc/d/d-glue.cc:2107
#8  0x080a49a7 in d_parse_file(int) () at ../../gcc/d/d-lang.cc:496
#9  0x0824d2ca in compile_file () at ../../gcc/toplev.c:2130
#10 0x082520c5 in do_compile () at ../../gcc/toplev.c:5402
#11 0x0825216d in toplev_main (argc=4, argv=0xbff16334)
    at ../../gcc/toplev.c:5432
#12 0x080bf08b in main (argc=4, argv=0x4) at ../../gcc/main.c:35

> As for config.d, I
> once accidently did a partial rebuild with the new gcc in the path and
> ended up with a gdc that did not work.  That's my best guess.

I'm sorry. It's my mistake. I built gdc with the gcc installed with earlier gdc. It seems I should build it with MacOSX's gcc.