[Issue 12278] New: __traits(classInstanceSize) returns wrong value if used before class is declared
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Fri Feb 28 10:21:07 PST 2014
    
    
  
https://d.puremagic.com/issues/show_bug.cgi?id=12278
           Summary: __traits(classInstanceSize) returns wrong value if
                    used before class is declared
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: destructionator at gmail.com
--- Comment #0 from Adam D. Ruppe <destructionator at gmail.com> 2014-02-28 10:21:05 PST ---
class Foo {
    InPlace!Bar inside;
}
class Bar { }
struct InPlace(T) {
        pragma(msg, __traits(classInstanceSize, T));
        private byte[__traits(classInstanceSize, T)] rawData;
        void initializeObject() {
                pragma(msg, __traits(classInstanceSize, T));
        }
}
dmd bug.d
0u
8u
The first one, where the static array is declared, gives 0. The correct value
of 8 is given inside the function.
If you move `class Bar{}` to above Foo's definition, it correctly gives 8 at
both msgs.
-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
    
    
More information about the Digitalmars-d-bugs
mailing list