https://bugs.winehq.org/show_bug.cgi?id=44202
Bug ID: 44202 Summary: undname.c fails to parse symbols with rvalue-reference semantics '&&' Product: Wine Version: unspecified Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: shulgaaa@gmail.com Distribution: ---
For example, the symbol
??4QDnsDomainNameRecord@@QAEAAV0@$$QAV0@@Z
should be de-mangled as:
public: class QDnsDomainNameRecord & __thiscall QDnsDomainNameRecord::operator=(class QDnsDomainNameRecord &&)
undname returns NULL
https://bugs.winehq.org/show_bug.cgi?id=44202
--- Comment #1 from Ken Sharp imwellcushtymelike@gmail.com --- With what version of Wine?
https://bugs.winehq.org/show_bug.cgi?id=44202
--- Comment #2 from Andrey Shulga shulgaaa@gmail.com ---
With what version of Wine?
I am not sure. I am new to Wine. I believe it a current development version from a trunk.
https://bugs.winehq.org/show_bug.cgi?id=44202
Andrey Shulga shulgaaa@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |msvcrt
https://bugs.winehq.org/show_bug.cgi?id=44202
--- Comment #3 from Andrey Shulga shulgaaa@gmail.com --- Also, this symbol will crash __unDName:
??0QTextStreamManipulator@@QAE@P8QTextStream@@AEXH@ZH@Z
which expands to:
public: __thiscall QTextStreamManipulator::QTextStreamManipulator(void (__thiscall QTextStream::*)(int),int)
https://bugs.winehq.org/show_bug.cgi?id=44202
--- Comment #4 from Ken Sharp imwellcushtymelike@gmail.com --- (In reply to Andrey Shulga from comment #2)
With what version of Wine?
I am not sure. I am new to Wine. I believe it a current development version from a trunk.
Type "wine --version" to find out.
https://bugs.winehq.org/show_bug.cgi?id=44202
--- Comment #5 from Andrey Shulga shulgaaa@gmail.com --- Sorry I do not use Wine binaries. I compiled the source file (undname.c) and tried __unDName(), which is failing.
https://bugs.winehq.org/show_bug.cgi?id=44202
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mstefani@winehq.org
--- Comment #6 from Michael Stefaniuc mstefani@winehq.org --- The tests for __unDName() are in test_demangle() in dlls/msvcrt/tests/cpp.c Feel free to add those tests there and submit the patch.
https://bugs.winehq.org/show_bug.cgi?id=44202
Eric Zhang gd.yi@139.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gd.yi@139.com
--- Comment #7 from Eric Zhang gd.yi@139.com --- Confirmed ??0QTextStreamManipulator@@QAE@P8QTextStream@@AEXH@ZH@Z will crash __unDName on wine3.0-rc4
https://bugs.winehq.org/show_bug.cgi?id=44202
--- Comment #8 from Eric Zhang gd.yi@139.com --- Tested with Wine3.0-rc4.
??4QDnsDomainNameRecord@@QAEAAV0@$$QAV0@@Z seems is not a valid symbol. On Windows de-mangled ??4QDnsDomainNameRecord@@QAEAAV0@$$QAV0@@Z is still ??4QDnsDomainNameRecord@@QAEAAV0@$$QAV0@@Z. With this behavior, Wine is consistent with Windows.
https://bugs.winehq.org/show_bug.cgi?id=44202
--- Comment #9 from Eric Zhang gd.yi@139.com --- Using undname tool on Windows to demangle "??4QDnsDomainNameRecord@@QAEAAV0@$$QAV0@@Z" is successful with result as "public: class QDnsDomainNameRecord & __thiscall QDnsDomainNameRecord::operator=(class QDnsDomainNameRecord &&)".
However tests on Windows failed with: msvcrt_crosstest: cpp.c:1341: Test failed: 131: Got name "??4QDnsDomainNameRecord@@QAEAAV0@$$QAV0@@Z" cpp.c:1344: Test failed: 131: Expected "public: class QDnsDomainNameRecord & __thiscall QDnsDomainNameRecord::operator=(class QDnsDomainNameRecord &&)"
https://bugs.winehq.org/show_bug.cgi?id=44202
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED Fixed by SHA1| |a656a8b64459845dd68ea4aa436 | |39b06f452193b CC| |piotr.caban@gmail.com
--- Comment #10 from Piotr Caban piotr.caban@gmail.com --- Zhiyi: the problem with your test is that only never versions of runtime are supporting it. The test should have been added to e.g. ucrtbase.
a656a8b64459845dd68ea4aa43639b06f452193b adds rvalue support to unDName function. ??4QDnsDomainNameRecord@@QAEAAV0@$$QAV0@@Z is now demangled correctly. Marking as fixed.
https://bugs.winehq.org/show_bug.cgi?id=44202
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 7.2.
https://bugs.winehq.org/show_bug.cgi?id=44202
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |6.0.x
https://bugs.winehq.org/show_bug.cgi?id=44202
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|6.0.x |7.0.x
https://bugs.winehq.org/show_bug.cgi?id=44202
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|7.0.x |---
--- Comment #12 from Michael Stefaniuc mstefani@winehq.org --- Removing the 6.0.x milestone from bug fixes included in 6.0.4.
https://bugs.winehq.org/show_bug.cgi?id=44202
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |7.0.x
https://bugs.winehq.org/show_bug.cgi?id=44202
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|7.0.x |---
--- Comment #13 from Michael Stefaniuc mstefani@winehq.org --- Removing the 7.0.x milestone from bug fixes included in 7.0.1.