Thread overview
[Issue 1141] New: <Class>.classinfo.init.length does not give instance size on linux
Apr 13, 2007
d-bugmail
Apr 13, 2007
Lionello Lunesu
Apr 13, 2007
d-bugmail
April 13, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1141

           Summary: <Class>.classinfo.init.length does not give instance
                    size on linux
           Product: D
           Version: 1.012
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: benoit@tionex.de


While this seems to work on windows, on linux it doesn't.
module t;
extern (C) int printf( char*, ... );

class A1{
    int a;
    int b;
    int[3] c;
    int d;
    static void print(){
        printf( "%d %d %d %d %d\n",
                a.offsetof,
                b.offsetof,
                c.offsetof,
                d.offsetof,
                A1.classinfo.init.sizeof);
    }
}
class A2{
    int a;
    int[3] b;
    int c;
    int d;
    static void print(){
        printf( "%d %d %d %d %d\n",
                a.offsetof,
                b.offsetof,
                c.offsetof,
                d.offsetof,
                A2.classinfo.init.sizeof);
    }
}

void main(){
    A1.print;
    A2.print;
}


frank@lingurke:~$ dmd t
gcc t.o -o t -m32 -lphobos -lpthread -lm
frank@lingurke:~$ ./t
8 12 16 28 8
8 12 24 28 8


-- 

April 13, 2007
<d-bugmail@puremagic.com> wrote in message news:bug-1141-3@http.d.puremagic.com/issues/...
> http://d.puremagic.com/issues/show_bug.cgi?id=1141
>
>           Summary: <Class>.classinfo.init.length does not give instance
.length?

>                A2.classinfo.init.sizeof);
or .sizeof?

I think that .sizeof is correctly returning the size of an array (which is 8 on x86)

L.


April 13, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1141


benoit@tionex.de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID




------- Comment #1 from benoit@tionex.de  2007-04-13 17:56 -------
Like lionello said, this should be .length not .sizeof :/


--