# Copyright (C) 2014-2026 Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# Test support for D demangling.  The tests here intentionally do not
# require a D compiler, it simply calls the internal demangler with
# synthesized strings and tests the results.

load_lib "d-support.exp"

require allow_d_tests

### Utility function for test_demangling and test_demangling_exact.
proc test_demangling {test result} {
    gdb_test_exact "demangle $test" $result $test
}

proc test_d_demangling {} {

    #  Test D demangler
    test_demangling "_Dmain" "D main"

    test_demangling "_D8demangle4testFaZv" "demangle.test(char)"
    test_demangling "_D8demangle4testFbZv" "demangle.test(bool)"
    test_demangling "_D8demangle4testFcZv" "demangle.test(creal)"
    test_demangling "_D8demangle4testFdZv" "demangle.test(double)"
    test_demangling "_D8demangle4testFeZv" "demangle.test(real)"
    test_demangling "_D8demangle4testFfZv" "demangle.test(float)"
    test_demangling "_D8demangle4testFgZv" "demangle.test(byte)"
    test_demangling "_D8demangle4testFhZv" "demangle.test(ubyte)"
    test_demangling "_D8demangle4testFiZv" "demangle.test(int)"
    test_demangling "_D8demangle4testFjZv" "demangle.test(ireal)"
    test_demangling "_D8demangle4testFkZv" "demangle.test(uint)"
    test_demangling "_D8demangle4testFlZv" "demangle.test(long)"
    test_demangling "_D8demangle4testFmZv" "demangle.test(ulong)"
    test_demangling "_D8demangle4testFnZv" "demangle.test(typeof(null))"
    test_demangling "_D8demangle4testFoZv" "demangle.test(ifloat)"
    test_demangling "_D8demangle4testFpZv" "demangle.test(idouble)"
    test_demangling "_D8demangle4testFqZv" "demangle.test(cfloat)"
    test_demangling "_D8demangle4testFrZv" "demangle.test(cdouble)"
    test_demangling "_D8demangle4testFsZv" "demangle.test(short)"
    test_demangling "_D8demangle4testFtZv" "demangle.test(ushort)"
    test_demangling "_D8demangle4testFuZv" "demangle.test(wchar)"
    test_demangling "_D8demangle4testFvZv" "demangle.test(void)"
    test_demangling "_D8demangle4testFwZv" "demangle.test(dchar)"

    test_demangling "_D8demangle4testFOaZv" "demangle.test(shared(char))"
    test_demangling "_D8demangle4testFxaZv" "demangle.test(const(char))"
    test_demangling "_D8demangle4testFyaZv" "demangle.test(immutable(char))"
    test_demangling "_D8demangle4testFNgaZv" "demangle.test(inout(char))"
    test_demangling "_D8demangle4testFOxaZv" "demangle.test(shared(const(char)))"
    test_demangling "_D8demangle4testFONgaZv" "demangle.test(shared(inout(char)))"
    test_demangling "_D8demangle4testFAaZv" "demangle.test(char\[\])"
    test_demangling "_D8demangle4testFAAaZv" "demangle.test(char\[\]\[\])"
    test_demangling "_D8demangle4testFAAAaZv" "demangle.test(char\[\]\[\]\[\])"
    test_demangling "_D8demangle4testFG42aZv" "demangle.test(char\[42\])"
    test_demangling "_D8demangle4testFG42G42aZv" "demangle.test(char\[42\]\[42\])"
    test_demangling "_D8demangle4testFG42G42G42aZv" "demangle.test(char\[42\]\[42\]\[42\])"
    test_demangling "_D8demangle4testFG1234567890aZv" "demangle.test(char\[1234567890\])"
    test_demangling "_D8demangle4testFHaaZv" "demangle.test(char\[char\])"
    test_demangling "_D8demangle4testFHHaaaZv" "demangle.test(char\[char\[char\]\])"
    test_demangling "_D8demangle4testFPaZv" "demangle.test(char*)"
    test_demangling "_D8demangle4testFPPaZv" "demangle.test(char**)"
    test_demangling "_D8demangle4testFPPPaZv" "demangle.test(char***)"

    test_demangling "_D8demangle4testFNhG8gZv" "demangle.test(__vector(byte\[8\]))"
    test_demangling "_D8demangle4testFNhG16gZv" "demangle.test(__vector(byte\[16\]))"
    test_demangling "_D8demangle4testFNhG32gZv" "demangle.test(__vector(byte\[32\]))"
    test_demangling "_D8demangle4testFNhG4sZv" "demangle.test(__vector(short\[4\]))"
    test_demangling "_D8demangle4testFNhG8sZv" "demangle.test(__vector(short\[8\]))"
    test_demangling "_D8demangle4testFNhG16sZv" "demangle.test(__vector(short\[16\]))"
    test_demangling "_D8demangle4testFNhG2iZv" "demangle.test(__vector(int\[2\]))"
    test_demangling "_D8demangle4testFNhG4iZv" "demangle.test(__vector(int\[4\]))"
    test_demangling "_D8demangle4testFNhG8iZv" "demangle.test(__vector(int\[8\]))"
    test_demangling "_D8demangle4testFNhG1lZv" "demangle.test(__vector(long\[1\]))"
    test_demangling "_D8demangle4testFNhG2lZv" "demangle.test(__vector(long\[2\]))"
    test_demangling "_D8demangle4testFNhG4lZv" "demangle.test(__vector(long\[4\]))"
    test_demangling "_D8demangle4testFNhG2fZv" "demangle.test(__vector(float\[2\]))"
    test_demangling "_D8demangle4testFNhG4fZv" "demangle.test(__vector(float\[4\]))"
    test_demangling "_D8demangle4testFNhG8fZv" "demangle.test(__vector(float\[8\]))"
    test_demangling "_D8demangle4testFNhG1dZv" "demangle.test(__vector(double\[1\]))"
    test_demangling "_D8demangle4testFNhG2dZv" "demangle.test(__vector(double\[2\]))"
    test_demangling "_D8demangle4testFNhG4dZv" "demangle.test(__vector(double\[4\]))"

    test_demangling "_D8demangle4testFC5classZv" "demangle.test(class)"
    test_demangling "_D8demangle4testFC5class4testZv" "demangle.test(class.test)"
    test_demangling "_D8demangle4testFS6structZv" "demangle.test(struct)"
    test_demangling "_D8demangle4testFS6struct4testZv" "demangle.test(struct.test)"
    test_demangling "_D8demangle4testFE4enumZv" "demangle.test(enum)"
    test_demangling "_D8demangle4testFE4enum4testZv" "demangle.test(enum.test)"
    test_demangling "_D8demangle4testFT7typedefZv" "demangle.test(typedef)"
    test_demangling "_D8demangle4testFT7typedef4testZv" "demangle.test(typedef.test)"

    test_demangling "_D8demangle4testFIaZv" "demangle.test(in char)"
    test_demangling "_D8demangle4testFIKaZv" "demangle.test(in ref char)"
    test_demangling "_D8demangle4testFJaZv" "demangle.test(out char)"
    test_demangling "_D8demangle4testFKaZv" "demangle.test(ref char)"
    test_demangling "_D8demangle4testFLaZv" "demangle.test(lazy char)"
    test_demangling "_D8demangle4testFMaZv" "demangle.test(scope char)"
    test_demangling "_D8demangle4testFaXv" "demangle.test(char...)"
    test_demangling "_D8demangle4testFaYv" "demangle.test(char, ...)"
    test_demangling "_D8demangle4testFaaYv" "demangle.test(char, char, ...)"
    test_demangling "_D8demangle4testFYv" "demangle.test(...)"
    test_demangling "_D8demangle4testFaaZv" "demangle.test(char, char)"

    test_demangling "_D8demangle4testFDFZaZv" "demangle.test(char() delegate)"
    test_demangling "_D8demangle4testFDUZaZv" "demangle.test(extern(C) char() delegate)"
    test_demangling "_D8demangle4testFDWZaZv" "demangle.test(extern(Windows) char() delegate)"
    test_demangling "_D8demangle4testFDVZaZv" "demangle.test(extern(Pascal) char() delegate)"
    test_demangling "_D8demangle4testFDRZaZv" "demangle.test(extern(C++) char() delegate)"
    test_demangling "_D8demangle4testFDYZaZv" "demangle.test(extern(Objective-C) char() delegate)"

    test_demangling "_D8demangle4testFPFZaZv" "demangle.test(char() function)"
    test_demangling "_D8demangle4testFPUZaZv" "demangle.test(extern(C) char() function)"
    test_demangling "_D8demangle4testFPWZaZv" "demangle.test(extern(Windows) char() function)"
    test_demangling "_D8demangle4testFPVZaZv" "demangle.test(extern(Pascal) char() function)"
    test_demangling "_D8demangle4testFPRZaZv" "demangle.test(extern(C++) char() function)"
    test_demangling "_D8demangle4testFPYZaZv" "demangle.test(extern(Objective-C) char() function)"

    test_demangling "_D8demangle4testFDFNaZaZv" "demangle.test(char() pure delegate)"
    test_demangling "_D8demangle4testFDFNbZaZv" "demangle.test(char() nothrow delegate)"
    test_demangling "_D8demangle4testFDFNcZaZv" "demangle.test(char() ref delegate)"
    test_demangling "_D8demangle4testFDFNdZaZv" "demangle.test(char() @property delegate)"
    test_demangling "_D8demangle4testFDFNeZaZv" "demangle.test(char() @trusted delegate)"
    test_demangling "_D8demangle4testFDFNfZaZv" "demangle.test(char() @safe delegate)"

    test_demangling "_D8demangle4testFPFNaZaZv" "demangle.test(char() pure function)"
    test_demangling "_D8demangle4testFPFNbZaZv" "demangle.test(char() nothrow function)"
    test_demangling "_D8demangle4testFPFNcZaZv" "demangle.test(char() ref function)"
    test_demangling "_D8demangle4testFPFNdZaZv" "demangle.test(char() @property function)"
    test_demangling "_D8demangle4testFPFNeZaZv" "demangle.test(char() @trusted function)"
    test_demangling "_D8demangle4testFPFNfZaZv" "demangle.test(char() @safe function)"
    test_demangling "_D8demangle4testFPFNaNbZaZv" "demangle.test(char() pure nothrow function)"
    test_demangling "_D8demangle4testFPFNbNaZaZv" "demangle.test(char() nothrow pure function)"
    test_demangling "_D8demangle4testFPFNdNfNaZaZv" "demangle.test(char() @property @safe pure function)"

    test_demangling "_D8demangle4test6__vtblZ" "vtable for demangle.test"
    test_demangling "_D8demangle4test6__initZ" "initializer for demangle.test"
    test_demangling "_D8demangle4test12__ModuleInfoZ" "ModuleInfo for demangle.test"
    test_demangling "_D8demangle4test7__ClassZ" "ClassInfo for demangle.test"
    test_demangling "_D8demangle4test11__InterfaceZ" "Interface for demangle.test"

    test_demangling "_D8demangle4test6__ctorMFZv" "demangle.test.this()"
    test_demangling "_D8demangle4test6__dtorMFZv" "demangle.test.~this()"
    test_demangling "_D8demangle4test10__postblitMFZv" "demangle.test.this(this)"

    test_demangling "_D8demangle4testFHAbaZv" "demangle.test(char\[bool\[\]\])"
    test_demangling "_D8demangle4testFHG42caZv" "demangle.test(char\[creal\[42\]\])"
    test_demangling "_D8demangle4testFAiXv" "demangle.test(int\[\]...)"
    test_demangling "_D8demangle4testFLAiXv" "demangle.test(lazy int\[\]...)"
    test_demangling "_D8demangle4testFAiYv" "demangle.test(int\[\], ...)"
    test_demangling "_D8demangle4testFLAiYv" "demangle.test(lazy int\[\], ...)"
    test_demangling "_D8demangle4testFLilZv" "demangle.test(lazy int, long)"
    test_demangling "_D8demangle4testFLliZv" "demangle.test(lazy long, int)"

    test_demangling "_D8demangle4testPFLAiYi" "demangle.test"
    test_demangling "_D1a1bi" "a.b"
    test_demangling "_D1a1bPFiZi" "a.b"
    test_demangling "_D4test3fooAa" "test.foo"
    test_demangling "_D4test2dgDFiYd" "test.dg"
    test_demangling "_D8demangle8demangleFAaZAa" "demangle.demangle(char\[\])"
    test_demangling "_D6object6Object8opAssignFC6ObjectZi" "object.Object.opAssign(Object)"
    test_demangling "_D6object6Object8opEqualsFC6ObjectZi" "object.Object.opEquals(Object)"
    test_demangling "_D8demangle4testFLC6ObjectLDFLiZiZi" "demangle.test(lazy Object, lazy int(lazy int) delegate)"
    test_demangling "_D6plugin8generateFiiZAya" "plugin.generate(int, int)"
    test_demangling "_D8demangle3fnAFZ3fnBMFZv" "demangle.fnA().fnB()"
    test_demangling "_D8demangle4mainFZ1S3fnCMFZv" "demangle.main().S.fnC()"
    test_demangling "_D8demangle4mainFZ1S3fnDMFZv" "demangle.main().S.fnD()"
    test_demangling "_D8demangle2fnFNgiZNgi" "demangle.fn(inout(int))"
    test_demangling "_D8demangle4mainFZ5localMFZi" "demangle.main().local()"
    test_demangling "_D3std5ascii9uppercaseyAa" "std.ascii.uppercase"
    test_demangling "_D3std6stream9BOMEndianyG5E3std6system6Endian" "std.stream.BOMEndian"
    test_demangling "_D3std8internal7uni_tab10unicodeNkoyS3std8internal3uni12CodepointSet" "std.internal.uni_tab.unicodeNko"
    test_demangling "_D2gc2gc2GC6addrOfMFPvZPv" "gc.gc.GC.addrOf(void*)"
    test_demangling "_D3std7process10setCLOEXECFibZv" "std.process.setCLOEXEC(int, bool)"
    test_demangling "_D3std6digest2md3MD53putMFNaNbNeMAxhXv" "std.digest.md.MD5.put(scope const(ubyte)\[\]...)"
    test_demangling "_D3std6mmfile6MmFile13opIndexAssignMFhmZh" "std.mmfile.MmFile.opIndexAssign(ubyte, ulong)"
    test_demangling "_D3std7process18escapeShellCommandFxAAaXAya" "std.process.escapeShellCommand(const(char\[\]\[\])...)"
    test_demangling "_D4core4sync5mutex5Mutex6__ctorMFC6ObjectZC4core4sync5mutex5Mutex" "core.sync.mutex.Mutex.this(Object)"
    test_demangling "_D6object14TypeInfo_Array8argTypesMFNbNfJC8TypeInfoJC8TypeInfoZi" "object.TypeInfo_Array.argTypes(out TypeInfo, out TypeInfo)"
    test_demangling "_D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ7tryExecMFMDFZvZv" "rt.dmain2._d_run_main(int, char**, extern(C) int(char\[\]\[\]) function).tryExec(scope void() delegate)"
    test_demangling "_D6object9Exception6__ctorMFNaNbNfAyaAyamC6object9ThrowableZC9Exception" "object.Exception.this(immutable(char)\[\], immutable(char)\[\], ulong, object.Throwable)"
    test_demangling "_D3gcc3deh17parse_lsda_headerFPS3gcc6unwind7generic15_Unwind_ContextPhPS3gcc3deh16lsda_header_infoZPh" "gcc.deh.parse_lsda_header(gcc.unwind.generic._Unwind_Context*, ubyte*, gcc.deh.lsda_header_info*)"
    test_demangling "_D3std6socket23UnknownAddressReference6__ctorMFPS4core3sys5posix3sys6socket8sockaddrkZC3std6socket23UnknownAddressReference" "std.socket.UnknownAddressReference.this(core.sys.posix.sys.socket.sockaddr*, uint)"
}

clean_restart

if {[set_lang_d]} {
    gdb_test_no_output "set width 0"

    test_d_demangling

    # Verify we can specify the d language to demangle.
    gdb_test_exact "demangle -l d -- _Dmain" "D main"
} else {
    warning "D demangling tests suppressed."
}
