view dmd2/hdrgen.h @ 1004:45ed9e125a00

Remove initialization of padding of reals, ireals and creals. According to the spec and C ABIs, the contents of padding is undefined. This was breaking dstress creal_01,02,03,07,08,09 and 20 on x86-64. The code was apparently added to fix creal_13,14 and 15, which explicitly compare padding and assert if it's different. I'd argue those tests are broken. (Also, on x86-64 they *also* fail) The tests this fixes, on the other hand, are basic arithmetic.
author Frits van Bommel <fvbommel wxs.nl>
date Fri, 27 Feb 2009 19:41:25 +0100
parents f04dde6e882c
children
line wrap: on
line source


// Compiler implementation of the D programming language
// Copyright (c) 1999-2006 by Digital Mars
// All Rights Reserved
// initial header generation implementation by Dave Fladebo
// http://www.digitalmars.com
// License for redistribution is by either the Artistic License
// in artistic.txt, or the GNU General Public License in gnu.txt.
// See the included readme.txt for details.


struct HdrGenState
{
    int hdrgen;		// 1 if generating header file
    int ddoc;		// 1 if generating Ddoc file
    int console;	// 1 if writing to console
    int tpltMember;
    int inCallExp;
    int inPtrExp;
    int inSlcExp;
    int inDotExp;
    int inBinExp;
    int inArrExp;
    int emitInst;
    struct
    {
        int init;
        int decl;
    } FLinit;

    HdrGenState() { memset(this, 0, sizeof(HdrGenState)); }
};