Your message dated 29 Nov 2002 14:41:40 +0100 with message-id <[EMAIL PROTECTED]> and subject line Bug#171123: g++-3.2: incorrect use of default assignment operator? has caused the attached Bug report 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 I am talking about this indicates a serious mail system misconfiguration somewhere. Please contact me immediately.) Debian bug tracking system administrator (administrator, Debian Bugs database) -------------------------------------- Received: (at submit) by bugs.debian.org; 29 Nov 2002 04:38:43 +0000 >From [EMAIL PROTECTED] Thu Nov 28 22:38:41 2002 Return-path: <[EMAIL PROTECTED]> Received: from tincan.ms.unimelb.edu.au [128.250.24.200] by master.debian.org with esmtp (Exim 3.12 1 (Debian)) id 18HcvI-0002zb-00; Thu, 28 Nov 2002 22:38:41 -0600 Received: from phoenix.ms.unimelb.edu.au (bab.ms.unimelb.edu.au [128.250.24.139]) by tincan.ms.unimelb.edu.au (Postfix) with ESMTP id 2B9DE194E0; Fri, 29 Nov 2002 15:38:38 +1100 (EST) Received: from bab by phoenix.ms.unimelb.edu.au with local (Exim 3.36 #1 (Debian)) id 18Hctn-0008VM-00; Fri, 29 Nov 2002 15:37:07 +1100 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Ben Burton <[EMAIL PROTECTED]> To: Debian Bug Tracking System <[EMAIL PROTECTED]> Subject: g++-3.2: incorrect use of default assignment operator? X-Mailer: reportbug 2.9 Date: Fri, 29 Nov 2002 15:37:06 +1100 Message-Id: <[EMAIL PROTECTED]> Sender: Ben Burton <[EMAIL PROTECTED]> Delivered-To: [EMAIL PROTECTED] X-Spam-Status: No, hits=0.6 required=5.0 tests=SPAM_PHRASE_00_01 version=2.41 X-Spam-Level: Package: g++-3.2 Version: 1:3.2.1-1 Severity: normal Hi. Both g++-3.2 and g++-2.95 seem to have problems with the following code. #include <iostream> struct Foo { int val; Foo(int newVal) { val = newVal; } Foo& operator = (const Foo& other) { val = 2; } }; int main() { Foo foo(5); Foo bar = foo; std::cout << bar.val << std::endl; return 0; } Under both compilers, the program compiles fine and then runs, outputting the integer 5. I would have expected a compile error, since the declaration "Foo bar = foo;" tries to use the non-existant default constructor for class Foo. But even if it did build, I would have expected the program to output the integer 2, since the = operator has been explicitly overridden. What it seems to be doing is making its own default constructor and then calling its own default assignment operator instead of the custom one that has been defined. Perhaps I'm just misunderstanding the finer details of the C++ specs? Thanks - Ben. -- System Information: Debian Release: testing/unstable Architecture: i386 Kernel: Linux phoenix 2.4.19-686 #1 Sun Oct 6 18:37:38 EST 2002 i686 Locale: LANG=C, LC_CTYPE=C Versions of packages g++-3.2 depends on: ii gcc-3.2 1:3.2.1-1 The GNU C compiler. ii gcc-3.2-base 1:3.2.1-1 The GNU Compiler Collection (base ii libc6 2.3.1-5 GNU C Library: Shared libraries an ii libstdc++5-dev 1:3.2.1-1 The GNU stdc++ library version 3 ( -- no debconf information --------------------------------------- Received: (at 171123-done) by bugs.debian.org; 29 Nov 2002 13:41:55 +0000 >From [EMAIL PROTECTED] Fri Nov 29 07:41:55 2002 Return-path: <[EMAIL PROTECTED]> Received: from mailout11.sul.t-online.com [194.25.134.85] by master.debian.org with esmtp (Exim 3.12 1 (Debian)) id 18HlP0-0006bE-00; Fri, 29 Nov 2002 07:41:55 -0600 Received: from fwd04.sul.t-online.de by mailout11.sul.t-online.com with smtp id 18HlOz-0001Og-01; Fri, 29 Nov 2002 14:41:53 +0100 Received: from mira.informatik.hu-berlin.de ([EMAIL PROTECTED]) by fmrl04.sul.t-online.com with esmtp id 18HlOl-1m4mpcC; Fri, 29 Nov 2002 14:41:39 +0100 Received: from mira.informatik.hu-berlin.de (localhost [127.0.0.1]) by mira.informatik.hu-berlin.de (8.12.6/8.11.6/SuSE Linux 0.5) with ESMTP id gATDfg2i001794 for <[EMAIL PROTECTED]>; Fri, 29 Nov 2002 14:41:42 +0100 Received: (from [EMAIL PROTECTED]) by mira.informatik.hu-berlin.de (8.12.6/8.12.6/Submit) id gATDffHd001791; Fri, 29 Nov 2002 14:41:41 +0100 X-Authentication-Warning: mira.informatik.hu-berlin.de: martin set sender to [EMAIL PROTECTED] using -f Sender: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Subject: Re: Bug#171123: g++-3.2: incorrect use of default assignment operator? References: <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> From: [EMAIL PROTECTED] (Martin v. =?iso-8859-15?q?L=F6wis?=) Date: 29 Nov 2002 14:41:40 +0100 In-Reply-To: <[EMAIL PROTECTED]> Message-ID: <[EMAIL PROTECTED]> Lines: 12 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Sender: [EMAIL PROTECTED] Delivered-To: [EMAIL PROTECTED] X-Spam-Status: No, hits=-11.0 required=5.0 tests=EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT,REFERENCES, SPAM_PHRASE_00_01,USER_AGENT,X_AUTH_WARNING version=2.41 X-Spam-Level: Ben Burton <[EMAIL PROTECTED]> writes: > Hmm, okay, my bad. I'm reading through 12.8 now and it seems the > implicit copy constructor is always available, not just when no other > constructors are defined as I had thought. > > If you agree with this then please go ahead and close this bug. I certainly agree; there is no bug in the compiler. Regards, Martin