-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Fix demangling template parameter packs #414
Fix demangling template parameter packs #414
Conversation
Clang 4.0.1-10 and gcc 7.3.0 both mangle the function "void add<int>(int)" as "_Z3addIJiEEvDpT_". The template parameter pack is of the form J <template-arg>* E The opening character for a param pack could be either I or J, as libiberty follows [1]. This change simply adds the J case. [1] https://github.com/gcc-mirror/gcc/blob/fbd263526ad105a953fd51d9f7bca2c3f268cf82/libiberty/cp-demangle.c#L3209
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about adding the examples to demangle_unittest.txt instead? Then they would be tested by the FromFile test case.
Done |
Thanks for the review. Could you also merge this for me? I don't think I have permission to do it myself |
I don't have permission either. I think you need one of the members in this group to do the merge: I'll ping them, since I have a pull request of my own that fixes the other outstanding issue with the demangle unit test. |
* Fix demangling template parameter packs Clang 4.0.1-10 and gcc 7.3.0 both mangle the function "void add<int>(int)" as "_Z3addIJiEEvDpT_". The template parameter pack is of the form J <template-arg>* E The opening character for a param pack could be either I or J, as libiberty follows [1]. This change simply adds the J case. [1] https://github.com/gcc-mirror/gcc/blob/fbd263526ad105a953fd51d9f7bca2c3f268cf82/libiberty/cp-demangle.c#L3209
Clang 4.0.1-10 and gcc 7.3.0 both mangle the function "void add<int>(int)" as
"_Z3addIJiEEvDpT_". The template parameter pack is of the form
J <template-arg>* E
The opening character for a param pack could be either I or J, as libiberty
follows [1]. This change simply adds the J case.
[1] https://github.com/gcc-mirror/gcc/blob/fbd263526ad105a953fd51d9f7bca2c3f268cf82/libiberty/cp-demangle.c#L3209