Previously we were only saving plain TemplateParams.
Details
- Reviewers
rsmith jlebar - Group Reviewers
Restricted Project - Commits
- rGc962491a41c3: Save/restore OuterTemplateParams in AbstractManglingParser::parseEncoding.
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Event Timeline
@rsmith I have no idea if the other test change is correct, and gnu cxxfilt doesn't work with that mangled name. Hope this doesn't actually break something...
libcxxabi/test/test_demangle.pass.cpp | ||
---|---|---|
29595 | It's suspicious that spclsr3stdE7forwardIT_Efp_EE appears here but there's no corresponding call to std::forward<...> whatsoever in the demangling any more. Demangling this by hand I get: template<typename ...T> auto Ncr::Silver::Utility::detail::CallOnThread<X::$_5>::operator()(T &&...params) const -> decltype(F()(std::forward<T>(params) ...)) where X is the (presumably) Objective C symbol -[DeploymentSetupController handleManualServerEntry:] So: it's right that std::forward disappears: it's within a pack expansion that was expanded zero times. And the new demangling appears to be correct. |
Just stumbled upon this while looking at the review queue. Can you briefly explain what this change is about? How is this changing the behavior of the demangler? I don't see something wrong with the patch, but I also don't understand it so..
Also, rebasing onto main would be nice as it would trigger CI again. It would be good to have green CI on this.
It's suspicious that spclsr3stdE7forwardIT_Efp_EE appears here but there's no corresponding call to std::forward<...> whatsoever in the demangling any more. Demangling this by hand I get:
where X is the (presumably) Objective C symbol -[DeploymentSetupController handleManualServerEntry:]
and F is X::$_5 &Ncr::Silver::Utility::detail::getT<X::$_5>()
and T is an empty pack
So: it's right that std::forward disappears: it's within a pack expansion that was expanded zero times. And the new demangling appears to be correct.