[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