<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 13, 2016 at 1:10 PM, Paul Robinson via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">probinson added a comment.<br>
<span class=""><br>
In <a href="http://reviews.llvm.org/D18706#400222" rel="noreferrer" target="_blank">http://reviews.llvm.org/D18706#400222</a>, @dblaikie wrote:<br>
<br>
> Also - depending on how far you want to go, you could probably skip the mangled name for abstract subprograms that have a concrete definition (it'd mean having to search through the DWARF to find the concrete subprogram, then looking at its high/low pc to find the symbol in the symbol table with the mangled name there)<br>
<br>
<br>
</span>If the concrete out-of-line instance gets LTO'd away, that won't work.<br></blockquote><div><br></div><div>Sorry, I meant actually checking/making this choice here, in LLVM's codegen - at that point we know if the out of line instance exists or doesn't.<br><br>Ah, linker (I see your follow up mail). Fair enough. Good to know - thanks!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class=""><br>
<br>
================<br>
Comment at: lib/CodeGen/AsmPrinter/DwarfDebug.cpp:108-112<br>
@@ -107,8 +107,7 @@<br>
<br>
-static cl::opt<DefaultOnOff><br>
-DwarfLinkageNames("dwarf-linkage-names", cl::Hidden,<br>
-                  cl::desc("Emit DWARF linkage-name attributes."),<br>
-                  cl::values(clEnumVal(Default, "Default for platform"),<br>
-                             clEnumVal(Enable, "Enabled"),<br>
-                             clEnumVal(Disable, "Disabled"), clEnumValEnd),<br>
-                  cl::init(Default));<br>
+enum LinkageNameOption {<br>
+  DefaultLinkageNames,<br>
+  AllLinkageNames,<br>
+  AbstractLinkageNames<br>
+};<br>
+static cl::opt<LinkageNameOption><br>
----------------<br>
</span><span class="">dblaikie wrote:<br>
> Why did this need to become a 3 state when it was a boolean before? (when it's still only about 2 states, I think - before it was all-or-nothing, and now it's all-or-abstract)<br>
</span>This is about the command-line option, which used to be the 3-state DefaultOnOff and is now this new enum because the choices aren't really On and Off anymore.</blockquote><div><br></div><div>Seems like that's just a matter of how you name the flag, but no big deal in any case. Carry on.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">  The DwarfDebug flag is still a bool.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<a href="http://reviews.llvm.org/D18706" rel="noreferrer" target="_blank">http://reviews.llvm.org/D18706</a><br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div></div>