# This file holds test cases for the D demangler.
# Each test case looks like this:
#  options
#  input to be demangled
#  expected output
#
# See demangle-expected for documentation of supported options.
#
# A line starting with `#' is ignored.
# However, blank lines in this file are NOT ignored.
#
############
#
# Coverage Tests
#
--format=dlang
_Dmain
D main
#
--format=dlang
_D8demangle4testPFLAiYi
demangle.test
#
--format=dlang
_D8demangle4testFaZv
demangle.test(char)
#
--format=dlang
_D8demangle4testFbZv
demangle.test(bool)
#
--format=dlang
_D8demangle4testFcZv
demangle.test(creal)
#
--format=dlang
_D8demangle4testFdZv
demangle.test(double)
#
--format=dlang
_D8demangle4testFeZv
demangle.test(real)
#
--format=dlang
_D8demangle4testFfZv
demangle.test(float)
#
--format=dlang
_D8demangle4testFgZv
demangle.test(byte)
#
--format=dlang
_D8demangle4testFhZv
demangle.test(ubyte)
#
--format=dlang
_D8demangle4testFiZv
demangle.test(int)
#
--format=dlang
_D8demangle4testFjZv
demangle.test(ireal)
#
--format=dlang
_D8demangle4testFkZv
demangle.test(uint)
#
--format=dlang
_D8demangle4testFlZv
demangle.test(long)
#
--format=dlang
_D8demangle4testFmZv
demangle.test(ulong)
#
--format=dlang
_D8demangle4testFnZv
demangle.test(none)
#
--format=dlang
_D8demangle4testFoZv
demangle.test(ifloat)
#
--format=dlang
_D8demangle4testFpZv
demangle.test(idouble)
#
--format=dlang
_D8demangle4testFqZv
demangle.test(cfloat)
#
--format=dlang
_D8demangle4testFrZv
demangle.test(cdouble)
#
--format=dlang
_D8demangle4testFsZv
demangle.test(short)
#
--format=dlang
_D8demangle4testFtZv
demangle.test(ushort)
#
--format=dlang
_D8demangle4testFuZv
demangle.test(wchar)
#
--format=dlang
_D8demangle4testFvZv
demangle.test(void)
#
--format=dlang
_D8demangle4testFwZv
demangle.test(dchar)
#
--format=dlang
_D8demangle4testFziZv
demangle.test(cent)
#
--format=dlang
_D8demangle4testFzkZv
demangle.test(ucent)
#
--format=dlang
_D8demangle4testFOaZv
demangle.test(shared(char))
#
--format=dlang
_D8demangle4testFxaZv
demangle.test(const(char))
#
--format=dlang
_D8demangle4testFyaZv
demangle.test(immutable(char))
#
--format=dlang
_D8demangle4testFNgaZv
demangle.test(inout(char))
#
--format=dlang
_D8demangle4testFOxaZv
demangle.test(shared(const(char)))
#
--format=dlang
_D8demangle4testFONgaZv
demangle.test(shared(inout(char)))
#
--format=dlang
_D8demangle4testFAaZv
demangle.test(char[])
#
--format=dlang
_D8demangle4testFAAaZv
demangle.test(char[][])
#
--format=dlang
_D8demangle4testFAAAaZv
demangle.test(char[][][])
#
--format=dlang
_D8demangle4testFG42aZv
demangle.test(char[42])
#
--format=dlang
_D8demangle4testFG42G42aZv
demangle.test(char[42][42])
#
--format=dlang
_D8demangle4testFG42G42G42aZv
demangle.test(char[42][42][42])
#
--format=dlang
_D8demangle4testFG1234567890aZv
demangle.test(char[1234567890])
#
--format=dlang
_D8demangle4testFHaaZv
demangle.test(char[char])
#
--format=dlang
_D8demangle4testFHHaaaZv
demangle.test(char[char[char]])
#
--format=dlang
_D8demangle4testFPaZv
demangle.test(char*)
#
--format=dlang
_D8demangle4testFPPaZv
demangle.test(char**)
#
--format=dlang
_D8demangle4testFPPPaZv
demangle.test(char***)
#
--format=dlang
_D8demangle4testFNhG8gZv
demangle.test(__vector(byte[8]))
#
--format=dlang
_D8demangle4testFNhG16gZv
demangle.test(__vector(byte[16]))
#
--format=dlang
_D8demangle4testFNhG32gZv
demangle.test(__vector(byte[32]))
#
--format=dlang
_D8demangle4testFNhG4sZv
demangle.test(__vector(short[4]))
#
--format=dlang
_D8demangle4testFNhG8sZv
demangle.test(__vector(short[8]))
#
--format=dlang
_D8demangle4testFNhG16sZv
demangle.test(__vector(short[16]))
#
--format=dlang
_D8demangle4testFNhG2iZv
demangle.test(__vector(int[2]))
#
--format=dlang
_D8demangle4testFNhG4iZv
demangle.test(__vector(int[4]))
#
--format=dlang
_D8demangle4testFNhG8iZv
demangle.test(__vector(int[8]))
#
--format=dlang
_D8demangle4testFNhG1lZv
demangle.test(__vector(long[1]))
#
--format=dlang
_D8demangle4testFNhG2lZv
demangle.test(__vector(long[2]))
#
--format=dlang
_D8demangle4testFNhG4lZv
demangle.test(__vector(long[4]))
#
--format=dlang
_D8demangle4testFNhG2fZv
demangle.test(__vector(float[2]))
#
--format=dlang
_D8demangle4testFNhG4fZv
demangle.test(__vector(float[4]))
#
--format=dlang
_D8demangle4testFNhG8fZv
demangle.test(__vector(float[8]))
#
--format=dlang
_D8demangle4testFNhG1dZv
demangle.test(__vector(double[1]))
#
--format=dlang
_D8demangle4testFNhG2dZv
demangle.test(__vector(double[2]))
#
--format=dlang
_D8demangle4testFNhG4dZv
demangle.test(__vector(double[4]))
#
--format=dlang
_D8demangle4testFI5identZv
demangle.test(ident)
#
--format=dlang
_D8demangle4testFI5ident4testZv
demangle.test(ident.test)
#
--format=dlang
_D8demangle4testFC5classZv
demangle.test(class)
#
--format=dlang
_D8demangle4testFC5class4testZv
demangle.test(class.test)
#
--format=dlang
_D8demangle4testFS6structZv
demangle.test(struct)
#
--format=dlang
_D8demangle4testFS6struct4testZv
demangle.test(struct.test)
#
--format=dlang
_D8demangle4testFE4enumZv
demangle.test(enum)
#
--format=dlang
_D8demangle4testFE4enum4testZv
demangle.test(enum.test)
#
--format=dlang
_D8demangle4testFT7typedefZv
demangle.test(typedef)
#
--format=dlang
_D8demangle4testFT7typedef4testZv
demangle.test(typedef.test)
#
--format=dlang
_D8demangle4testFJaZv
demangle.test(out char)
#
--format=dlang
_D8demangle4testFKaZv
demangle.test(ref char)
#
--format=dlang
_D8demangle4testFLaZv
demangle.test(lazy char)
#
--format=dlang
_D8demangle4testFMaZv
demangle.test(scope char)
#
--format=dlang
_D8demangle4testFNjaZv
demangle.test(char)
#
--format=dlang
_D8demangle4testFNkaZv
demangle.test(return char)
#
--format=dlang
_D8demangle4testFaXv
demangle.test(char...)
#
--format=dlang
_D8demangle4testFaYv
demangle.test(char, ...)
#
--format=dlang
_D8demangle4testFaaYv
demangle.test(char, char, ...)
#
--format=dlang
_D8demangle4testFYv
demangle.test(...)
#
--format=dlang
_D8demangle4testFaaZv
demangle.test(char, char)
#
--format=dlang
_D8demangle4testFB0Zv
demangle.test(Tuple!())
#
--format=dlang
_D8demangle4testFB1aZv
demangle.test(Tuple!(char))
#
--format=dlang
_D8demangle4testFB2aaZv
demangle.test(Tuple!(char, char))
#
--format=dlang
_D8demangle4testFB3aaaZv
demangle.test(Tuple!(char, char, char))
#
--format=dlang
_D8demangle4testFB2OaaZv
demangle.test(Tuple!(shared(char), char))
#
--format=dlang
_D8demangle4testFB3aDFZaaZv
demangle.test(Tuple!(char, char() delegate, char))
#
--format=dlang
_D8demangle4testFDFZaZv
demangle.test(char() delegate)
#
--format=dlang
_D8demangle4testFDUZaZv
demangle.test(extern(C) char() delegate)
#
--format=dlang
_D8demangle4testFDWZaZv
demangle.test(extern(Windows) char() delegate)
#
--format=dlang
_D8demangle4testFDVZaZv
demangle.test(extern(Pascal) char() delegate)
#
--format=dlang
_D8demangle4testFDRZaZv
demangle.test(extern(C++) char() delegate)
#
--format=dlang
_D8demangle4testFDYZaZv
demangle.test(extern(Objective-C) char() delegate)
#
--format=dlang
_D8demangle4testFPFZaZv
demangle.test(char() function)
#
--format=dlang
_D8demangle4testFPUZaZv
demangle.test(extern(C) char() function)
#
--format=dlang
_D8demangle4testFPWZaZv
demangle.test(extern(Windows) char() function)
#
--format=dlang
_D8demangle4testFPVZaZv
demangle.test(extern(Pascal) char() function)
#
--format=dlang
_D8demangle4testFPRZaZv
demangle.test(extern(C++) char() function)
#
--format=dlang
_D8demangle4testFPYZaZv
demangle.test(extern(Objective-C) char() function)
#
--format=dlang
_D8demangle4testFDFNaZaZv
demangle.test(char() pure delegate)
#
--format=dlang
_D8demangle4testFDFNbZaZv
demangle.test(char() nothrow delegate)
#
--format=dlang
_D8demangle4testFDFNcZaZv
demangle.test(char() ref delegate)
#
--format=dlang
_D8demangle4testFDFNdZaZv
demangle.test(char() @property delegate)
#
--format=dlang
_D8demangle4testFDFNeZaZv
demangle.test(char() @trusted delegate)
#
--format=dlang
_D8demangle4testFDFNfZaZv
demangle.test(char() @safe delegate)
#
--format=dlang
_D8demangle4testFDFNiZaZv
demangle.test(char() @nogc delegate)
#
--format=dlang
_D8demangle4testFDFNaNbZaZv
demangle.test(char() pure nothrow delegate)
#
--format=dlang
_D8demangle4testFDFNbNaZaZv
demangle.test(char() nothrow pure delegate)
#
--format=dlang
_D8demangle4testFDFNdNfNaZaZv
demangle.test(char() @property @safe pure delegate)
#
--format=dlang
_D8demangle4testFNjDFZaZv
demangle.test(char() delegate)
#
--format=dlang
_D8demangle4testFNkDFZaZv
demangle.test(return char() delegate)
#
--format=dlang
_D8demangle4testFDFNjZaZv
demangle.test(char() return delegate)
#
--format=dlang
_D8demangle4testFNjNkDFNjZaZv
demangle.test(return char() return delegate)
#
--format=dlang
_D8demangle4testFPFNaZaZv
demangle.test(char() pure function)
#
--format=dlang
_D8demangle4testFPFNbZaZv
demangle.test(char() nothrow function)
#
--format=dlang
_D8demangle4testFPFNcZaZv
demangle.test(char() ref function)
#
--format=dlang
_D8demangle4testFPFNdZaZv
demangle.test(char() @property function)
#
--format=dlang
_D8demangle4testFPFNeZaZv
demangle.test(char() @trusted function)
#
--format=dlang
_D8demangle4testFPFNfZaZv
demangle.test(char() @safe function)
#
--format=dlang
_D8demangle4testFPFNiZaZv
demangle.test(char() @nogc function)
#
--format=dlang
_D8demangle4testFPFNaNbZaZv
demangle.test(char() pure nothrow function)
#
--format=dlang
_D8demangle4testFPFNbNaZaZv
demangle.test(char() nothrow pure function)
#
--format=dlang
_D8demangle4testFPFNdNfNaZaZv
demangle.test(char() @property @safe pure function)
#
--format=dlang
_D8demangle4testFNjPFZaZv
demangle.test(char() function)
#
--format=dlang
_D8demangle4testFNkPFZaZv
demangle.test(return char() function)
#
--format=dlang
_D8demangle4testFPFNjZaZv
demangle.test(char() return function)
#
--format=dlang
_D8demangle4testFNjNkPFNjZaZv
demangle.test(return char() return function)
#
--format=dlang
_D8demangle4test6__initZ
demangle.test.init$
#
--format=dlang
_D8demangle4test6__vtblZ
vtable for demangle.test
#
--format=dlang
_D8demangle4test7__ClassZ
ClassInfo for demangle.test
#
--format=dlang
_D8demangle4test11__InterfaceZ
Interface for demangle.test
#
--format=dlang
_D8demangle4test12__ModuleInfoZ
ModuleInfo for demangle.test
#
--format=dlang
_D8demangle4test6__ctorMFZv
demangle.test.this()
#
--format=dlang
_D8demangle4test6__dtorMFZv
demangle.test.~this()
#
--format=dlang
_D8demangle4test10__postblitMFZv
demangle.test.this(this)
#
--format=dlang
_D8demangle4testFHAbaZv
demangle.test(char[bool[]])
#
--format=dlang
_D8demangle4testFHG42caZv
demangle.test(char[creal[42]])
#
--format=dlang
_D8demangle4testFAiXv
demangle.test(int[]...)
#
--format=dlang
_D8demangle4testFLAiXv
demangle.test(lazy int[]...)
#
--format=dlang
_D8demangle4testFAiYv
demangle.test(int[], ...)
#
--format=dlang
_D8demangle4testFLAiYv
demangle.test(lazy int[], ...)
#
--format=dlang
_D8demangle4testFLilZv
demangle.test(lazy int, long)
#
--format=dlang
_D8demangle4testFLliZv
demangle.test(lazy long, int)
#
--format=dlang
_D8demangle4testFLC6ObjectLDFLiZiZi
demangle.test(lazy Object, lazy int(lazy int) delegate)
#
--format=dlang
_D8demangle9__T4testZv
demangle.test!()
#
--format=dlang
_D8demangle11__T4testTaZv
demangle.test!(char)
#
--format=dlang
_D8demangle13__T4testTaTaZv
demangle.test!(char, char)
#
--format=dlang
_D8demangle15__T4testTaTaTaZv
demangle.test!(char, char, char)
#
--format=dlang
_D8demangle16__T4testTaTOiTaZv
demangle.test!(char, shared(int), char)
#
--format=dlang
_D8demangle17__T4testS6symbolZv
demangle.test!(symbol)
#
--format=dlang
_D8demangle23__T4testS116symbol3fooZv
demangle.test!(symbol.foo)
#
--format=dlang
_D8demangle32__T4testS20_D6symbol3foo3barFZvZv
demangle.test!(symbol.foo.bar())
#
--format=dlang
_D8demangle19__T4testTaS6symbolZv
demangle.test!(char, symbol)
#
--format=dlang
_D8demangle19__T4testS6symbolTaZv
demangle.test!(symbol, char)
#
--format=dlang
_D8demangle12__T4testHTaZv
demangle.test!(char)
#
--format=dlang
_D8demangle13__T4testVPinZv
demangle.test!(null)
#
--format=dlang
_D8demangle14__T4testVg123Zv
demangle.test!(123)
#
--format=dlang
_D8demangle14__T4testVi123Zv
demangle.test!(123)
#
--format=dlang
_D8demangle14__T4testVs123Zv
demangle.test!(123)
#
--format=dlang
_D8demangle14__T4testVh123Zv
demangle.test!(123u)
#
--format=dlang
_D8demangle14__T4testVk123Zv
demangle.test!(123u)
#
--format=dlang
_D8demangle14__T4testVt123Zv
demangle.test!(123u)
#
--format=dlang
_D8demangle14__T4testVl123Zv
demangle.test!(123L)
#
--format=dlang
_D8demangle14__T4testVm123Zv
demangle.test!(123uL)
#
--format=dlang
_D8demangle15__T4testViN123Zv
demangle.test!(-123)
#
--format=dlang
_D8demangle15__T4testVkN123Zv
demangle.test!(-123u)
#
--format=dlang
_D8demangle15__T4testVlN123Zv
demangle.test!(-123L)
#
--format=dlang
_D8demangle15__T4testVmN123Zv
demangle.test!(-123uL)
#
--format=dlang
_D8demangle12__T4testVb1Zv
demangle.test!(true)
#
--format=dlang
_D8demangle12__T4testVb0Zv
demangle.test!(false)
#
--format=dlang
_D8demangle13__T4testVa10Zv
demangle.test!('\x0a')
#
--format=dlang
_D8demangle13__T4testVa32Zv
demangle.test!(' ')
#
--format=dlang
_D8demangle13__T4testVa65Zv
demangle.test!('A')
#
--format=dlang
_D8demangle14__T4testVa126Zv
demangle.test!('~')
#
--format=dlang
_D8demangle15__T4testVu1000Zv
demangle.test!('\u03e8')
#
--format=dlang
_D8demangle17__T4testVw100000Zv
demangle.test!('\U000186a0')
#
--format=dlang
_D8demangle17__T4testVde0A8P6Zv
demangle.test!(0x0.A8p6)
#
--format=dlang
_D8demangle16__T4testVdeA8P2Zv
demangle.test!(0xA.8p2)
#
--format=dlang
_D8demangle18__T4testVdeN0A8P6Zv
demangle.test!(-0x0.A8p6)
#
--format=dlang
_D8demangle31__T4testVde0F6E978D4FDF3B646P7Zv
demangle.test!(0x0.F6E978D4FDF3B646p7)
#
--format=dlang
_D8demangle15__T4testVdeNANZv
demangle.test!(NaN)
#
--format=dlang
_D8demangle15__T4testVdeINFZv
demangle.test!(Inf)
#
--format=dlang
_D8demangle16__T4testVdeNINFZv
demangle.test!(-Inf)
#
--format=dlang
_D8demangle23__T4testVfe0FFFFFFP128Zv
demangle.test!(0x0.FFFFFFp128)
#
--format=dlang
_D8demangle32__T4testVde0FFFFFFFFFFFFF8P1024Zv
demangle.test!(0x0.FFFFFFFFFFFFF8p1024)
#
--format=dlang
_D8demangle19__T4testVfe08PN125Zv
demangle.test!(0x0.8p-125)
#
--format=dlang
_D8demangle20__T4testVde08PN1021Zv
demangle.test!(0x0.8p-1021)
#
--format=dlang
_D8demangle51__T4testVrc0C4CCCCCCCCCCCCCDP4c0B666666666666666P6Zv
demangle.test!(0x0.C4CCCCCCCCCCCCCDp4+0x0.B666666666666666p6i)
#
--format=dlang
_D8demangle52__T4testVrcN0C4CCCCCCCCCCCCCDP4c0B666666666666666P6Zv
demangle.test!(-0x0.C4CCCCCCCCCCCCCDp4+0x0.B666666666666666p6i)
#
--format=dlang
_D8demangle22__T4testVG3ua3_616263Zv
demangle.test!("abc")
#
--format=dlang
_D8demangle22__T4testVG3ud3_616263Zv
demangle.test!("abc"d)
#
--format=dlang
_D8demangle22__T4testVG3uw3_616263Zv
demangle.test!("abc"w)
#
--format=dlang
_D8demangle22__T4testVAiA4i1i2i3i4Zv
demangle.test!([1, 2, 3, 4])
#
--format=dlang
_D8demangle25__T4testVAdA2e08P1eN08P1Zv
demangle.test!([0x0.8p1, -0x0.8p1])
#
--format=dlang
_D8demangle23__T4testVHiiA2i1i2i3i4Zv
demangle.test!([1:2, 3:4])
#
--format=dlang
_D8demangle39__T4testVHAxaiA2a3_616263i1a3_646566i2Zv
demangle.test!(["abc":1, "def":2])
#
--format=dlang
_D8demangle28__T4testVS8demangle1SS2i1i2Zv
demangle.test!(demangle.S(1, 2))
#
--format=dlang
_D8demangle35__T4testVS8demangle1SS2i1a3_616263Zv
demangle.test!(demangle.S(1, "abc"))
#
--format=dlang
_D8demangle4testMxFZv
demangle.test() const
#
--format=dlang
_D8demangle4testMyFZv
demangle.test() immutable
#
--format=dlang
_D8demangle4testMNgFZv
demangle.test() inout
#
--format=dlang
_D8demangle4testMNgxFZv
demangle.test() inout const
#
--format=dlang
_D8demangle4testMOFZv
demangle.test() shared
#
--format=dlang
_D8demangle4testMOxFZv
demangle.test() shared const
#
--format=dlang
_D8demangle4testMONgFZv
demangle.test() shared inout
#
--format=dlang
_D8demangle4testMONgxFZv
demangle.test() shared inout const
#
--format=dlang
_D8demangle4testFDxFZaZv
demangle.test(char() delegate const)
#
--format=dlang
_D8demangle4testFDyFZaZv
demangle.test(char() delegate immutable)
#
--format=dlang
_D8demangle4testFDNgFZaZv
demangle.test(char() delegate inout)
#
--format=dlang
_D8demangle4testFDNgxFZaZv
demangle.test(char() delegate inout const)
#
--format=dlang
_D8demangle4testFDOFZaZv
demangle.test(char() delegate shared)
#
--format=dlang
_D8demangle4testFDOxFZaZv
demangle.test(char() delegate shared const)
#
--format=dlang
_D8demangle4testFDONgFZaZv
demangle.test(char() delegate shared inout)
#
--format=dlang
_D8demangle4testFDONgxFZaZv
demangle.test(char() delegate shared inout const)
#
# Unittests
#
--format=dlang
printf
printf
#
--format=dlang
_foo
_foo
#
--format=dlang
_D88
_D88
#
--format=dlang
_D5__T1aZv
_D5__T1aZv
#
--format=dlang
_D4test3fooAa
test.foo
#
--format=dlang
_D8demangle8demangleFAaZAa
demangle.demangle(char[])
#
--format=dlang
_D6object6Object8opEqualsFC6ObjectZi
object.Object.opEquals(Object)
#
--format=dlang
_D6object6Object8opAssignFC6ObjectZi
object.Object.opAssign(Object)
#
--format=dlang
_D4test2dgDFiYd
test.dg
#
--format=dlang
_D1a1bi
a.b
#
--format=dlang
_D1a1bPFiZi
a.b
#
--format=dlang
_D4test34__T3barVG3uw3_616263VG3wd3_646566Z1xi
test.bar!("abc"w, "def"d).x
#
--format=dlang
_D6plugin8generateFiiZAya
plugin.generate(int, int)
#
--format=dlang
_D6plugin8generateFiiZAxa
plugin.generate(int, int)
#
--format=dlang
_D6plugin8generateFiiZAOa
plugin.generate(int, int)
#
--format=dlang
_D8demangle3fnAFZ3fnBMFZv
demangle.fnA().fnB()
#
--format=dlang
_D8demangle4mainFZ1S3fnCMFZv
demangle.main().S.fnC()
#
--format=dlang
_D8demangle4mainFZ1S3fnDMFZv
demangle.main().S.fnD()
#
--format=dlang
_D8demangle4mainFZ5localMFZi
demangle.main().local()
#
--format=dlang
_D3std5ascii9uppercaseyAa
std.ascii.uppercase
#
--format=dlang
_D3std6stream9BOMEndianyG5E3std6system6Endian
std.stream.BOMEndian
#
--format=dlang
_D3std8internal7uni_tab10unicodeNkoyS3std8internal3uni12CodepointSet
std.internal.uni_tab.unicodeNko
#
--format=dlang
_D2gc2gc2GC6addrOfMFPvZPv
gc.gc.GC.addrOf(void*)
#
--format=dlang
_D3std7process10setCLOEXECFibZv
std.process.setCLOEXEC(int, bool)
#
--format=dlang
_D3std6digest2md3MD53putMFNaNbNeMAxhXv
std.digest.md.MD5.put(scope const(ubyte)[]...)
#
--format=dlang
_D3std6mmfile6MmFile13opIndexAssignMFhmZh
std.mmfile.MmFile.opIndexAssign(ubyte, ulong)
#
--format=dlang
_D3std7process18escapeShellCommandFxAAaXAya
std.process.escapeShellCommand(const(char[][])...)
#
--format=dlang
_D4core4sync5mutex5Mutex6__ctorMFC6ObjectZC4core4sync5mutex5Mutex
core.sync.mutex.Mutex.this(Object)
#
--format=dlang
_D6object14TypeInfo_Array8argTypesMFNbNfJC8TypeInfoJC8TypeInfoZi
object.TypeInfo_Array.argTypes(out TypeInfo, out TypeInfo)
#
--format=dlang
_D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ7tryExecMFMDFZvZv
rt.dmain2._d_run_main(int, char**, extern(C) int(char[][]) function).tryExec(scope void() delegate)
#
--format=dlang
_D6object9Exception6__ctorMFNaNbNfAyaAyamC6object9ThrowableZC9Exception
object.Exception.this(immutable(char)[], immutable(char)[], ulong, object.Throwable)
#
--format=dlang
_D3gcc3deh17parse_lsda_headerFPS3gcc6unwind7generic15_Unwind_ContextPhPS3gcc3deh16lsda_header_infoZPh
gcc.deh.parse_lsda_header(gcc.unwind.generic._Unwind_Context*, ubyte*, gcc.deh.lsda_header_info*)
#
--format=dlang
_D3std6socket23UnknownAddressReference6__ctorMFPS4core3sys5posix3sys6socket8sockaddrkZC3std6socket23UnknownAddressReference
std.socket.UnknownAddressReference.this(core.sys.posix.sys.socket.sockaddr*, uint)
#
--format=dlang
_D8demangle20__T2fnVAiA4i1i2i3i4Z2fnFZv
demangle.fn!([1, 2, 3, 4]).fn()
#
--format=dlang
_D8demangle10__T2fnVi1Z2fnFZv
demangle.fn!(1).fn()
#
--format=dlang
_D8demangle26__T2fnVS8demangle1SS2i1i2Z2fnFZv
demangle.fn!(demangle.S(1, 2)).fn()
#
--format=dlang
_D8demangle13__T2fnVeeNANZ2fnFZv
demangle.fn!(NaN).fn()
#
--format=dlang
_D8demangle14__T2fnVeeNINFZ2fnFZv
demangle.fn!(-Inf).fn()
#
--format=dlang
_D8demangle13__T2fnVeeINFZ2fnFZv
demangle.fn!(Inf).fn()
#
--format=dlang
_D8demangle21__T2fnVHiiA2i1i2i3i4Z2fnFZv
demangle.fn!([1:2, 3:4]).fn()
#
--format=dlang
_D8demangle2fnFNgiZNgi
demangle.fn(inout(int))
#
--format=dlang
_D8demangle29__T2fnVa97Va9Va0Vu257Vw65537Z2fnFZv
demangle.fn!('a', '\x09', '\x00', '\u0101', '\U00010001').fn()
#
--format=dlang
_D2gc11gctemplates56__T8mkBitmapTS3std5range13__T4iotaTiTiZ4iotaFiiZ6ResultZ8mkBitmapFNbNiNfPmmZv
gc.gctemplates.mkBitmap!(std.range.iota!(int, int).iota(int, int).Result).mkBitmap(ulong*, ulong)
#
--format=dlang
_D8serenity9persister6Sqlite69__T15SqlitePersisterTS8serenity9persister6Sqlite11__unittest6FZ4TestZ15SqlitePersister12__T7opIndexZ7opIndexMFmZS8serenity9persister6Sqlite11__unittest6FZ4Test
serenity.persister.Sqlite.SqlitePersister!(serenity.persister.Sqlite.__unittest6().Test).SqlitePersister.opIndex!().opIndex(ulong)
#
--format=dlang
_D3std6socket12InternetHost221__T13getHostNoSyncVAyaa96_0a09202020206175746f2078203d2068746f6e6c28706172616d293b0a09202020206175746f206865203d20676574686f73746279616464722826782c20342c206361737428696e74294164647265737346616d696c792e494e4554293b0a09TkZ13getHostNoSyncMFkZb
std.socket.InternetHost.getHostNoSync!("\n\t    auto x = htonl(param);\n\t    auto he = gethostbyaddr(&x, 4, cast(int)AddressFamily.INET);\n\t", uint).getHostNoSync(uint)
#
--format=dlang
_D2gc6config13__T5parseHTfZ5parseFNbNiAxaKAxaKfZb
gc.config.parse!(float).parse(const(char)[], ref const(char)[], ref float)
#
--format=dlang
_D3std11parallelism273__T4TaskS213std11parallelism3runTDFS3std9algorithm87__T9MapResultS27_D4test4mainFZ7getTermMFiZeTS3std5range13__T4iotaTiTiZ4iotaFiiZ6ResultZ9MapResultmmZeTS3std9algorithm87__T9MapResultS27_D4test4mainFZ7getTermMFiZeTS3std5range13__T4iotaTiTiZ4iotaFiiZ6ResultZ9MapResultTmTmZ4Task4implFPvZv
std.parallelism.Task!(std.parallelism.run, real(std.algorithm.MapResult!(test.main().getTerm(int), std.range.iota!(int, int).iota(int, int).Result).MapResult, ulong, ulong) delegate, std.algorithm.MapResult!(test.main().getTerm(int), std.range.iota!(int, int).iota(int, int).Result).MapResult, ulong, ulong).Task.impl(void*)
#
--format=dlang
_D2rt5minfo16__unittestL518_6FZ12UTModuleInfo6__ctorMFNckZS2rt5minfo16__unittestL518_6FZ12UTModuleInfo
rt.minfo.__unittestL518_6().UTModuleInfo.this(uint)
#
--format=dlang
_D3std6traits37__T7fqnTypeTC6ObjectVbi0Vbi0Vbi0Vbi0Z13addQualifiersFAyabbbbZAya
std.traits.fqnType!(Object, false, false, false, false).addQualifiers(immutable(char)[], bool, bool, bool, bool)
#
--format=dlang
_D3std9algorithm117__T9MapResultS153std5range4onlyTS3std9algorithm53__T12FilterResultS28_D3std3uni7isUpperFNaNbNfwZbTAyaZ12FilterResultZ9MapResult5frontMFNaNdNfZS3std5range22__T10OnlyResultTwVmi1Z10OnlyResult
std.algorithm.MapResult!(std.range.only, std.algorithm.FilterResult!(std.uni.isUpper(dchar), immutable(char)[]).FilterResult).MapResult.front()
#
--format=dlang
_D3std6traits17__T6fqnSymS43stdZ11adjustIdentFAyaZAya
std.traits.fqnSym!(std).adjustIdent(immutable(char)[])
#
--format=dlang
_D2rt8lifetime36__T14_d_newarrayOpTS13_d_newarrayiTZ14_d_newarrayOpTFNaNbxC8TypeInfomPmZAv
rt.lifetime._d_newarrayOpT!(_d_newarrayiT)._d_newarrayOpT(const(TypeInfo), ulong, ulong*)
