From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18511 invoked by alias); 23 May 2007 18:54:39 -0000 Received: (qmail 17035 invoked by uid 48); 23 May 2007 18:54:25 -0000 Date: Wed, 23 May 2007 18:54:00 -0000 Message-ID: <20070523185425.17030.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug libstdc++/29286] [4.0/4.1/4.2/4.3 Regression] placement new does not change the dynamic type as it should In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-05/txt/msg02056.txt.bz2 ------- Comment #134 from rguenth at gcc dot gnu dot org 2007-05-23 19:54 ------- But using a union for type-punning is a gcc extension (and of course the extension is only for access through the union), so with strict C99/C++ semantics we can avoid reloading d[i-1] even if a and d were in the same union because the code would then be invalid. So the union case is a non-issue here (it was only used to make available enough properly aligned storage for the particular testcase). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29286