<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Siva,<div class=""><br class=""></div><div class="">two things:</div><div class=""><br class=""></div><div class=""><ul class="MailOutline"><li class="">the reason I prefer to have it return a vector is that we could have a variety of problems, e.g. missing “const” in the debug info, and I don’t want to have special-casing everywhere for each one.</li><li class="">I just noticed that in your suggestion ("Is it more meaningful this way”) you dropped the reference off the std::vector<ConstString> – it should definitely be passed in by reference.</li></ul><div class=""><br class=""></div><div class="">Sean</div><div class=""><br class=""></div><div class=""><br class=""></div><div><blockquote type="cite" class=""><div class="">On Apr 6, 2015, at 4:01 PM, Siva Chandra <<a href="mailto:sivachandra@google.com" class="">sivachandra@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">On Mon, Apr 6, 2015 at 3:32 PM, Sean Callanan <<a href="mailto:scallanan@apple.com" class="">scallanan@apple.com</a>> wrote:<br class=""><br class=""><blockquote type="cite" class="">I like this; we could have the CXXLanguageRuntime return a list of<br class=""></blockquote><br class=""><blockquote type="cite" class=""> “candidate” remangled names if you can’t find a given one, and then try<br class=""></blockquote><br class=""><blockquote type="cite" class=""> those.<br class=""></blockquote><br class=""><blockquote type="cite" class=""> The function would have the signature<br class=""></blockquote><br class=""><blockquote type="cite" class=""><br class=""></blockquote><br class=""><blockquote type="cite" class="">size_t<br class=""></blockquote><br class=""><blockquote type="cite" class=""> CXXLanguageRuntime::GetAlternateManglings(ConstString mangled_name,<br class=""></blockquote><br class=""><blockquote type="cite" class=""> std::vector<ConstString> &alternate_names);<br class=""></blockquote><br class=""><blockquote type="cite" class=""><br class=""></blockquote><br class=""><blockquote type="cite" class="">What do you folks think?<br class=""></blockquote><br class=""><br class="">This sounds good. I will move the meat of this change into CPPLanguageRuntime.<br class=""><br class="">A question: why would there be more than one alternate candidate for a given mangled name? There would either be a full mangling (the original) or a compressed mangling (the alternate).<br class=""><br class="">[There could be a case where the compressed name is the original and the full name is the alternate. But, this case would mean that the clang generated name (compressed name) was not found in the target. That is scary because it could mean that clang compiled code cannot be linked with code generated by other compilers.]<br class=""><br class=""><br class=""><a href="http://reviews.llvm.org/D8846" class="">http://reviews.llvm.org/D8846</a><br class=""><br class="">EMAIL PREFERENCES<br class="">  http://reviews.llvm.org/settings/panel/emailpreferences/<br class=""><br class=""><br class=""></div></blockquote></div><br class=""></div></body></html>