dmd/compiler/test/runnable/test21301.d

116 lines
2.1 KiB
D

/* RUN_OUTPUT:
---
int AAAA0000
int AAAA0001
int AAAA0002
int AAAA0003
float FFFF0004
float FFFF0005
float FFFF0006
float FFFF0007
float FFFF0008
float FFFF0009
float FFFF0010
float FFFF0011
float FFFF0012
float FFFF0013
float FFFF0014
float FFFF0015
int AAAA0016
int AAAA0017
int AAAA0018
int AAAA0019
int AAAA0020
int AAAA0021
---
*/
// https://issues.dlang.org/show_bug.cgi?id=21301
//extern (C)
void func(
int p0, int[3] p1, float[3] p2, float p3, float p4, float p5, float p6, float p7,
float p8, float p9, float p10, float p11, int p12, int[2] p13, int p14, int p15, int p16
) {
print(p0);
print(p1[0]);
print(p1[1]);
print(p1[2]);
print(p2[0]);
print(p2[1]);
print(p2[2]);
print(p3);
print(p4);
print(p5);
print(p6);
print(p7);
print(p8);
print(p9);
print(p10);
print(p11);
print(p12);
print(p13[0]);
print(p13[1]);
print(p14);
print(p15);
print(p16);
}
static if (0)
{
void print(int x);
void print(float x);
}
else
{
import core.stdc.stdio;
union U
{
int[22] i = [
0xAAAA_0000,
0xAAAA_0001,
0xAAAA_0002,
0xAAAA_0003,
0xFFFF_0004,
0xFFFF_0005,
0xFFFF_0006,
0xFFFF_0007,
0xFFFF_0008,
0xFFFF_0009,
0xFFFF_0010,
0xFFFF_0011,
0xFFFF_0012,
0xFFFF_0013,
0xFFFF_0014,
0xFFFF_0015,
0xAAAA_0016,
0xAAAA_0017,
0xAAAA_0018,
0xAAAA_0019,
0xAAAA_0020,
0xAAAA_0021,
];
float[22] f;
}
void print(int x) { printf("int %08X\n", x); }
void print(float x) { printf("float %08X\n", *(cast(int*) &x)); }
int main()
{
func(U.init.i[0],
[U.init.i[1], U.init.i[2], U.init.i[3]],
[U.init.f[4], U.init.f[5], U.init.f[6]],
U.init.f[7], U.init.f[8], U.init.f[9], U.init.f[10], U.init.f[11], U.init.f[12], U.init.f[13],
U.init.f[14], U.init.f[15], U.init.i[16],
[U.init.i[17], U.init.i[18]],
U.init.i[19], U.init.i[20], U.init.i[21]
);
return 0;
}
}