[Issue 9969] dmd ABI mistake (cfloat static array initialisation)
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Sun Nov  3 04:41:41 UTC 2019
    
    
  
https://issues.dlang.org/show_bug.cgi?id=9969
Nicholas Wilson <iamthewilsonator at hotmail.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |iamthewilsonator at hotmail.co
                   |                            |m
         Resolution|---                         |WORKSFORME
--- Comment #7 from Nicholas Wilson <iamthewilsonator at hotmail.com> ---
extern(C) int printf(const char*, ... );
extern(C) long *_memset64(long *p, long value, size_t count);
void main()
{
    cfloat[2] arr = void;
    _memset64(cast(long*)arr.ptr, 1, 2);
    printf("%d %d\n", *(cast(long*)&arr[0]), *(cast(long*)&arr[1]));
}
works on current as does
extern(C) int printf(const char*, ... );
extern(C) long *_memset64(cfloat *p, long value, size_t count);
void main()
{
    cfloat[2] arr = void;
    _memset64(arr.ptr, 1, 2);
    printf("%d %d\n", *(cast(long*)&arr[0]), *(cast(long*)&arr[1]));
}
as does 
void main()
{
    cfloat[2] a;
}
--
    
    
More information about the Digitalmars-d-bugs
mailing list