// EXTRA_CPP_SOURCES: test22898.cpp

import core.stdc.config;

extern(C++):

version (AArch64) version = UnsignedChar;
version (ARM)     version = UnsignedChar;
version (RISCV32) version = UnsignedChar;
version (RISCV64) version = UnsignedChar;
version (PPC)     version = UnsignedChar;
version (PPC64)   version = UnsignedChar;
version (S390)    version = UnsignedChar;
version (SystemZ) version = UnsignedChar;

version (UnsignedChar)
    enum __c_char : ubyte;
else
    enum __c_char : byte;

int testCppCMangle (cpp_ulonglong, __c_char);

void main()
{
    auto val = cast(cpp_ulonglong)18446744073709551488UL;
    auto ch = cast(__c_char)val;
    assert(testCppCMangle(val, ch) == cast(int)ch);
}
