-
-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rewrite Of C++ Demanglers #69
base: main
Are you sure you want to change the base?
Conversation
- Common types like int, signed char, etc... are being demangled in function params now - Support for custom types in function param list needs to be added. - Support for repeated parameter types.
Now 180 tests pass out of all. Two tests seem to be wrong at the moment, but will take a look later. TODO - Sequence of identical types - Templates - Function params that have qualifier list in their type
We do need to find a way to test the GNU v2 code more like we do for GNU v3. There are very few examples. Also due to lack of a precise grammar, things like special naming conventions are hard for me to cover. Any suggestions? |
There are some function parameter types for which tests don't exist. I haven't added them for now, because I won't have any way to test my implementation. |
From the beginning itself, a single test is passing. Now I just have to keep fixing tests to make the demangler work.
overall this looks very very good. great job! |
This PR is going to get a bit messy. I'm going to make a split of the very large (around 28k lines) Also, the split is done without any category. I'll focus on passing all tests in a single file at a time. Slowly cover all files. I used the following command for the split : split -d -l 1000 test_cxx.c test_cxx. |
My current focus is only on passing all tests cases and completing the demangler as soon as possible, and later on we can worry about other failing CI. Every CI is at the time of writing... |
Remove old GPL code from libiberty and completely rewrite both GNU v2 and GNU v3 demanglers with LGPL license.
Work plan :
src/gnu_v2
src/cxx
Test plan :
Attachments :