From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30196 invoked by alias); 13 Aug 2014 05:05:50 -0000 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 Received: (qmail 30127 invoked by uid 48); 13 Aug 2014 05:05:42 -0000 From: "vagran.ast at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/60336] empty struct value is passed differently in C and C++ Date: Wed, 13 Aug 2014 05:05:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 4.10.0 X-Bugzilla-Keywords: ABI, wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: vagran.ast at gmail dot com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-08/txt/msg00814.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336 --- Comment #24 from vagran --- Just to be on a safe side, please, also do not forget that empty struct (or class) is really zero in the case when another structure (or class) is derived from it. For example, such test would be useful after fix: struct A {}; struct B: A { int i; }; assert(sizeof(B) == sizeof(int)); And something like this: struct A {}; struct B: A {}; struct C: B {}; struct D: C {}; assert(sizeof(D) == 1);