stergios@athsys.uucp (Stergios Marinopoulos) (08/27/88)
I was looking through the output of cfxx, Glockenspiel's port of
cfront, and was lead astray by one of the cfxx generated comments.
Specifically a comment is inserted next to the beginning of a class
declaration stating the classes size. Follow along and I'll point it
out.
---------------
// This is the example program, just a class and a global instance.
class Test {
public:
int field1 : 1 ;
int field2 : 1 ;
int field3 : 1 ;
int field4 : 1 ;
int field5 : 26 ;
} ;
Test globalTest ;
----------------
/* the cfxx compiled code */
/* << cfxx :- 1.2 Sun-Wk.2d >> */
struct Test { /* sizeof Test == 6 */ IT SHOULD ONLY BE 4
int _Test_field1 :1;
int _Test_field2 :1;
int _Test_field3 :1;
int _Test_field4 :1;
int _Test_field5 :26;
};
struct Test globalTest ;
------------------
# the ultimate in documentation
test.s
.data
.comm _globalTest,4 ONLY 4 BYTES WERE ALLOCATED
------------------
If you try taking the size by sizeof(class Test) the result is correctly
calculated as 4.
Just thought I would point this out.
Stergios Marinopoulos