d: Merge upstream dmd, druntime 4ca4140e58, phobos 454dff14d.
[official-gcc.git] / gcc / testsuite / gdc.test / runnable_cxx / test22898.d
blobf6890e0cbd41993d5c641a34f23adfedb80b3a1d
1 // EXTRA_CPP_SOURCES: test22898.cpp
3 import core.stdc.config;
5 extern(C++):
7 version (OSX)
8 version = Darwin;
9 else version (iOS)
10 version = Darwin;
11 else version (TVOS)
12 version = Darwin;
13 else version (WatchOS)
14 version = Darwin;
16 version (Darwin) { /* signed on ARM too */ } else
18 version (AArch64) version = UnsignedChar;
19 version (ARM) version = UnsignedChar;
20 version (RISCV32) version = UnsignedChar;
21 version (RISCV64) version = UnsignedChar;
22 version (PPC) version = UnsignedChar;
23 version (PPC64) version = UnsignedChar;
24 version (S390) version = UnsignedChar;
25 version (SystemZ) version = UnsignedChar;
28 version (UnsignedChar)
29 enum __c_char : ubyte;
30 else
31 enum __c_char : byte;
33 int testCppCMangle (cpp_ulonglong, __c_char);
35 void main()
37 auto val = cast(cpp_ulonglong)18446744073709551488UL;
38 auto ch = cast(__c_char)val;
39 assert(testCppCMangle(val, ch) == cast(int)ch);