-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
types: explicitly instantiate map_type_impl::deserialize() #22136
base: master
Are you sure you want to change the base?
types: explicitly instantiate map_type_impl::deserialize() #22136
Conversation
The definition of the template is in a source translation unit, but there are also uses outside the translation unit. Without lto/pgo it worked due to the definition in the translation unit, but with lto/pgo we can presume the definition was inlined, so callers outside the translation unit did not have anything to link with. Fix by explicitly instantiating the template function.
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.
@avikivity You already fixed this once, in 27bcd29. But you only fixed it in enterprise, not in master.
Yes, that's how I knew what to fix. I should have ported the fix to master, but didn't. |
🟢 CI State: SUCCESS✅ - Build Build Details:
|
@nyh please review |
The definition of the template is in a source translation unit, but there are also uses outside the translation unit. Without lto/pgo it worked due to the definition in the translation unit, but with lto/pgo we can presume the definition was inlined, so callers outside the translation unit did not have anything to link with.
Fix by explicitly instantiating the template function.
Fixes a bug newly introduced (or rather, a latenct bug that only now has impact), so no backport is needed.