summaryrefslogtreecommitdiffstats
path: root/llvm/test/Demangle/ms-basic.test
Commit message (Collapse)AuthorAgeFilesLines
* llvm-undname: Correctly demangle vararg parametersNico Weber2019-06-041-2/+4
| | | | | | | FunctionSignatureNode already had an IsVariadic field, but it wasn't used anywhere yet. Set it and use it. llvm-svn: 362541
* llvm-undname: More coverage-related cleanupsNico Weber2019-06-041-0/+4
| | | | | | | | | | | | | | | | | | | | - The loop in demangleFunctionParameterList() only exits on Error, @, and Z. All 3 cases were handled, so the rest of the function is DEMANGLE_UNREACHABLE. - The loop in demangleTemplateParameterList() always returns on Error, so there's no need to check for that in the loop header and after the loop. - Add test cases for invalid function parameter manglings. - Add a (redundant) test case for a simple template parameter list mangling. - Add a test case pointing out that varargs functions aren't demangled correctly. llvm-svn: 362540
* llvm-undname: Several behavior-preserving changes to increase coverageNico Weber2019-06-041-0/+3
| | | | | | | | | | | | | | | | | - Replace `Error = true` in a few branches that are truly unreachable with DEMANGLE_UNREACHABLE - Remove early return early in startsWithLocalScopePattern() because it's redundant with the next two early returns - Remove unreachable `case '0'` (it's handled in the branch below) - Remove an unused bool return - Add test coverage for several early error returns, mostly in array type parsing llvm-svn: 362506
* Add demangling test coverage for unsigned short, unsigned longNico Weber2019-06-021-0/+6
| | | | llvm-svn: 362332
* llvm-undname: add a missing CHECK: to a passing testNico Weber2019-04-161-2/+2
| | | | llvm-svn: 358488
* [MS Demangler] Re-write the Microsoft demangler.Zachary Turner2018-08-271-5/+2
| | | | | | | | | | | | | | | | | | | | This is a pretty large refactor / re-write of the Microsoft demangler. The previous one was a little hackish because it evolved as I was learning about all the various edge cases, exceptions, etc. It didn't have a proper AST and so there was lots of custom handling of things that should have been much more clean. Taking what was learned from that experience, it's now re-written with a completely redesigned and much more sensible AST. It's probably still not perfect, but at least it's comprehensible now to someone else who wants to come along and make some modifications or read the code. Incidentally, this fixed a couple of bugs, so I've enabled the tests which now pass. llvm-svn: 340710
* [MS Demangler] Properly demangle anonymous namespaces.Zachary Turner2018-08-201-0/+2
| | | | llvm-svn: 340237
* [MS Demangler] Print calling convention inside parentheses.Zachary Turner2018-07-261-4/+4
| | | | | | | | | | | | | | | For function pointers, we would print something like int __cdecl (*)(int) We need to move the calling convention inside, and print int (__cdecl *)(int) This patch implements this change for regular function pointers as well as member function pointers. llvm-svn: 338068
* [MS Demangler] Demangle pointers to member functions.Zachary Turner2018-07-261-5/+5
| | | | | | | | | | | After this patch, we can now properly demangle pointers to member functions. The calling convention is located in the wrong place, but this will be fixed in a followup since it also affects non member function pointers. Differential Revision: https://reviews.llvm.org/D49639 llvm-svn: 338065
* Add a Microsoft Demangler.Zachary Turner2018-07-201-0/+230
This adds initial support for a demangling library (LLVMDemangle) and tool (llvm-undname) for demangling Microsoft names. This doesn't cover 100% of cases and there are some known limitations which I intend to address in followup patches, at least until such time that we have (near) 100% test coverage matching up with all of the test cases in clang/test/CodeGenCXX/mangle-ms-*. Differential Revision: https://reviews.llvm.org/D49552 llvm-svn: 337584
OpenPOWER on IntegriCloud