[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#581698: marked as done ([gdc-4.3] gdc 4.3 fails on anonymous nested classes)



Your message dated Mon, 24 May 2010 09:36:04 +0000
with message-id <E1OGU4q-0006Ez-G6@ries.debian.org>
and subject line Bug#581698: fixed in gdc-4.3 1:1.046-4.3.5-1
has caused the Debian Bug report #581698,
regarding [gdc-4.3] gdc 4.3 fails on anonymous nested classes
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
581698: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=581698
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: gdc-4.3
Version: 1:1.046-4.3.4-5
Severity: serious


Hi,

gdc-4.3 fails to compile code with anonymous nested classes. gdc-4.1
and dmd seem to have no problems, at least not with my code.
If I try to extend Thread, I get the following compiletime-error:

caedes@snaggletux:~/D_stuff$ gdc-4.3 gdc_bug.d
gdc_bug.d: In function ‘test1’:
gdc_bug.d:26: internal compiler error: in estimate_num_insns_1, at
tree-inline.c:2494
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gdc-4.3/README.Bugs> for instructions.

With a (simple) custom class, I get the following error:

caedes@snaggletux:~/D_stuff$ gdmd-4.3 gdc_bug.d
gdc_bug.o: In function `_D7gdc_bug5test2FZv':
gdc_bug.d:(.text+0x7a): undefined reference to
`_D7gdc_bug5test2FZv12__anonclass25_ctorMFZC7gdc_bug5test2FZv12__anonclass2'
gdc_bug.o:(.data+0xc4): undefined reference to
`_D7gdc_bug5test2FZv12__anonclass25_ctorMFZC7gdc_bug5test2FZv12__anonclass2'
gdc_bug.o:(.rodata+0x60): undefined reference to
`_D7gdc_bug5test2FZv12__anonclass23barMFZi'
collect2: ld returned 1 exit status

I've attached the testing-code and the verbose output of gdmd -v.

I consider this a serious bug because anonymous nested classes are a
standard feature of D.

Cheers,
- Daniel


--- System information. ---
Architecture: i386
Kernel:       Linux 2.6.32-3-686

Debian Release: squeeze/sid
  500 testing         security.debian.org
  500 testing         ftp.de.debian.org

--- Package information. ---
Depends                         (Version) | Installed
=========================================-+-====================
gcc-4.3-base                 (>= 4.3.4-1) | 4.3.4-10
g++-4.3                      (>= 4.3.4-1) | 4.3.4-10
libphobos-4.3-dev     (= 1:1.046-4.3.4-5) | 1:1.046-4.3.4-5
libc6                            (>= 2.3) | 2.10.2-6
libgcc1                      (>= 1:4.1.1) | 1:4.4.4-1
libgmp3c2                                 | 2:4.3.2+dfsg-1
libmpfr1ldbl                              | 2.4.2-3
libstdc++6                     (>= 4.1.1) | 4.4.4-1


Package's Recommends field is empty.

Package's Suggests field is empty.
####### bug==1 - Thread ##########
caedes@snaggletux:~/D_stuff$ gdmd-4.3 -v gdc_bug.d 
parse     gdc_bug
semantic  gdc_bug
import    object	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/object.d)
import    std.stdio	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/stdio.d)
import    std.c.stdio	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/stdio.d)
import    std.stdint	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/stdint.d)
import    gcc.builtins	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/gcc/builtins.d)
import    std.c.stddef	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/stddef.d)
import    gcc.config.libc	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/i486-linux-gnu/gcc/config/libc.d)
import    std.c.stdarg	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/stdarg.d)
import    std.format	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/format.d)
import    std.stdarg	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/stdarg.d)
import    std.utf	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/utf.d)
import    std.c.stdlib	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/stdlib.d)
import    gcc.config.errno	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/i486-linux-gnu/gcc/config/errno.d)
import    gcc.config.config	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/i486-linux-gnu/gcc/config/config.d)
import    std.c.string	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/string.d)
import    std.string	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/string.d)
import    std.uni	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/uni.d)
import    std.array	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/array.d)
import    std.ctype	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/ctype.d)
import    std.gc	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/gc.d)
import    gcstats	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/gcstats.d)
import    gcc.config.unix	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/i486-linux-gnu/gcc/config/unix.d)
import    std.thread	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/thread.d)
import    std.c.linux.linux	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/linux/linux.d)
import    std.c.unix.unix	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/unix/unix.d)
import    std.c.dirent	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/dirent.d)
import    std.intrinsic	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/intrinsic.d)
import    std.c.linux.linuxextern	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/linux/linuxextern.d)
import    gcc.threadsem	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/gcc/threadsem.d)
semantic2 gdc_bug
semantic3 gdc_bug
code      gdc_bug
gdc_bug.d: In function ‘test1’:
gdc_bug.d:26: internal compiler error: in estimate_num_insns_1, at tree-inline.c:2494
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gdc-4.3/README.Bugs> for instructions.

####### bug==2 - my own class ##########
caedes@snaggletux:~/D_stuff$ gdmd-4.3 -v gdc_bug.d 
parse     gdc_bug
semantic  gdc_bug
import    object	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/object.d)
import    std.stdio	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/stdio.d)
import    std.c.stdio	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/stdio.d)
import    std.stdint	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/stdint.d)
import    gcc.builtins	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/gcc/builtins.d)
import    std.c.stddef	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/stddef.d)
import    gcc.config.libc	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/i486-linux-gnu/gcc/config/libc.d)
import    std.c.stdarg	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/stdarg.d)
import    std.format	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/format.d)
import    std.stdarg	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/stdarg.d)
import    std.utf	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/utf.d)
import    std.c.stdlib	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/stdlib.d)
import    gcc.config.errno	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/i486-linux-gnu/gcc/config/errno.d)
import    gcc.config.config	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/i486-linux-gnu/gcc/config/config.d)
import    std.c.string	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/string.d)
import    std.string	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/string.d)
import    std.uni	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/uni.d)
import    std.array	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/array.d)
import    std.ctype	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/ctype.d)
import    std.gc	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/gc.d)
import    gcstats	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/gcstats.d)
import    gcc.config.unix	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/i486-linux-gnu/gcc/config/unix.d)
import    std.thread	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/thread.d)
import    std.c.linux.linux	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/linux/linux.d)
import    std.c.unix.unix	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/unix/unix.d)
import    std.c.dirent	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/dirent.d)
import    std.intrinsic	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/intrinsic.d)
import    std.c.linux.linuxextern	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/std/c/linux/linuxextern.d)
import    gcc.threadsem	(/usr/lib/gcc/i486-linux-gnu/4.3.4/../../../../include/d/4.3.4/gcc/threadsem.d)
semantic2 gdc_bug
semantic3 gdc_bug
code      gdc_bug
gdc_bug.o: In function `_D7gdc_bug5test2FZv':
gdc_bug.d:(.text+0x7a): undefined reference to `_D7gdc_bug5test2FZv12__anonclass25_ctorMFZC7gdc_bug5test2FZv12__anonclass2'
gdc_bug.o:(.data+0xc4): undefined reference to `_D7gdc_bug5test2FZv12__anonclass25_ctorMFZC7gdc_bug5test2FZv12__anonclass2'
gdc_bug.o:(.rodata+0x60): undefined reference to `_D7gdc_bug5test2FZv12__anonclass23barMFZi'
collect2: ld returned 1 exit status
import std.stdio;
import std.thread;

const int bug = 2; // 1: Thread 2: own simple class

void main(){
	static if(bug==1)
		test1();
	static if(bug==2)
		test2();
}

static if(bug==1){
	// I cant build this test with gdc 4.3 on debian squeeze i386 (4.1 and dmd work fine)
	void test1(){
		int i=0; // this was in a loop..
		Thread t = new class Thread {
			int _i;
			this(){ _i=i; }
			int run(){
				writefln("Thread No. %s", _i);
				return 0;
			}
		};
		t.start(); 
		t.wait();
	}
}

static if(bug==2){
	class Foo {
		int x;
		this(){ x=42; }
		int bar(){
			return x;
		}
	}
	// I can't build this test with gdc 4.3 either, but there is a different error..
	void test2(){
		Foo f = new class Foo {
			int bar(){
				return 23;
			}
		};	
	}
}

--- End Message ---
--- Begin Message ---
Source: gdc-4.3
Source-Version: 1:1.046-4.3.5-1

We believe that the bug you reported is fixed in the latest version of
gdc-4.3, which is due to be installed in the Debian FTP archive:

gdc-4.3_1.046-4.3.5-1.diff.gz
  to main/g/gdc-4.3/gdc-4.3_1.046-4.3.5-1.diff.gz
gdc-4.3_1.046-4.3.5-1.dsc
  to main/g/gdc-4.3/gdc-4.3_1.046-4.3.5-1.dsc
gdc-4.3_1.046-4.3.5-1_amd64.deb
  to main/g/gdc-4.3/gdc-4.3_1.046-4.3.5-1_amd64.deb
gdc-4.3_1.046-4.3.5.orig.tar.gz
  to main/g/gdc-4.3/gdc-4.3_1.046-4.3.5.orig.tar.gz
libphobos-4.3-dev_1.046-4.3.5-1_amd64.deb
  to main/g/gdc-4.3/libphobos-4.3-dev_1.046-4.3.5-1_amd64.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 581698@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Matthias Klose <doko@debian.org> (supplier of updated gdc-4.3 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Sun, 23 May 2010 09:50:27 +0200
Source: gdc-4.3
Binary: gdc-4.3 libphobos-4.3-dev
Architecture: source amd64
Version: 1:1.046-4.3.5-1
Distribution: unstable
Urgency: low
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Changed-By: Matthias Klose <doko@debian.org>
Description: 
 gdc-4.3    - The D compiler
 libphobos-4.3-dev - The phobos D standard library
Closes: 581240 581698
Changes: 
 gdc-4.3 (1:1.046-4.3.5-1) unstable; urgency=low
 .
   * Based on GCC-4.3.5.
 .
   [ Iain Buclaw ]
   * Fix some wrong-code bugs. Closes: #581240, #581698.
Checksums-Sha1: 
 5cb0edcbeed0fd764d8f046dada5d2c8e6b17f04 2251 gdc-4.3_1.046-4.3.5-1.dsc
 831aa5339059f1f72b007229d8e9aba87de485d4 2972925 gdc-4.3_1.046-4.3.5.orig.tar.gz
 3ff5ef52e8e083a98acbaeb09383110bbfe0e61e 642771 gdc-4.3_1.046-4.3.5-1.diff.gz
 a4c5ccc151cbf1139a07734d5c5f7374a74fd34c 3769672 gdc-4.3_1.046-4.3.5-1_amd64.deb
 c80938f2f6e292612d7a4ed2c9011584eb62e8c3 734600 libphobos-4.3-dev_1.046-4.3.5-1_amd64.deb
Checksums-Sha256: 
 fb5e981087560ececc969f48d7d11ce8a265aa3a0a03ac8aafce0b677f27cf94 2251 gdc-4.3_1.046-4.3.5-1.dsc
 d9346d1a249bcabd1482b08053b0995c67c2696ea547126108ddeebbc31aa162 2972925 gdc-4.3_1.046-4.3.5.orig.tar.gz
 7822788ca4bb832e84549b846ff32059db0d50d6fb4b7989586314e781098bef 642771 gdc-4.3_1.046-4.3.5-1.diff.gz
 46d3253829b9a41cc0a415440b143b0229578af9bff21abef1cd5df84228bdff 3769672 gdc-4.3_1.046-4.3.5-1_amd64.deb
 dddfee9f5639a332fe69597096db042289c4f1b0e732e3495ac1e9610f2afd93 734600 libphobos-4.3-dev_1.046-4.3.5-1_amd64.deb
Files: 
 8885b1a1bb20e8264ee29496f41f6724 2251 devel optional gdc-4.3_1.046-4.3.5-1.dsc
 267dc6c24150eb3ae72966e98937fb28 2972925 devel optional gdc-4.3_1.046-4.3.5.orig.tar.gz
 3888adbb09d3ae121c02f70ab5f32eaa 642771 devel optional gdc-4.3_1.046-4.3.5-1.diff.gz
 55b381b8ccb6472c2d7aaf750a6a5626 3769672 devel optional gdc-4.3_1.046-4.3.5-1_amd64.deb
 e441f7a5a8686782711ce99be4c1c508 734600 libdevel optional libphobos-4.3-dev_1.046-4.3.5-1_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAkv49nUACgkQStlRaw+TLJz1rQCfRoddJVDs4PDI6tW0zqM8B23M
I9MAn2jpzBe5g2X5p/AAJO9TLqEluxr4
=7Grb
-----END PGP SIGNATURE-----



--- End Message ---

Reply to: