Hi Eli,<br><br><div class="gmail_quote">On Thu, Apr 2, 2009 at 8:46 PM, Eli Friedman <span dir="ltr"><<a href="mailto:eli.friedman@gmail.com">eli.friedman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Thu, Apr 2, 2009 at 5:57 PM, Daniel Dunbar <<a href="mailto:daniel@zuster.org">daniel@zuster.org</a>> wrote:<br>
> +  /// getUnicodeStringSymbolPrefix - Get the default symbol prefix to<br>
> +  /// use for string literals.<br>
> +  virtual const char *getUnicodeStringSymbolPrefix() const {<br>
> +    return ".str";<br>
> +  }<br>
<br>
</div>Shouldn't this be called "getUnicodeCFStringSymbolPrefix"?</blockquote><div><br>Perhaps; I think that the distinction probably should go away for regular strings, but when I first added I didn't want to change our behavior for regular strings.<br>
 <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Also, I'm kind of curious, why does this matter?  It's an internal<br>
symbol, nothing should be able to see it...<br><div class="im"></div></blockquote><div><br>You'd think! It matters because the name of the internal symbol on Darwin influences the linker. Symbols prefixed with L have special behavior, which I don't claim to fully understand...<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">> +  /// getUnicodeStringSymbolPrefix - Get the default symbol prefix to<br>

> +  /// use for string literals.<br>
<br>
</div>Comment is wrong.<br><div class="im"></div></blockquote><div><br>Fixed.<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">
> +  virtual const char *getUnicodeStringSymbolPrefix() const {<br>
> +    return "__utf16_string_";<br>
> +  }<br>
<br>
</div>Should this be prefixed with \01 for consistency?<br><div class="im"></div></blockquote><div><br>It could, but I'm not sure it makes the intent clearer. In this case, I just chose the name to make the IR look more like llvm-gcc; these names are ignored by the linker.<br>
 <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">
> +  if (isUTF16) {<br>
> +    unsigned Align = getContext().getTypeAlign(getContext().ShortTy)/8;<br>
> +    GV->setAlignment(Align);<br>
> +  }<br>
<br>
</div>Would it be more natural to make UTF-16 strings arrays of i16's<br>
instead of manually messing with the alignment?</blockquote><div><br>Currently we match llvm-gcc, which is somewhat of a good thing. Although that seems reasonable, I don't really know anything about Unicode strings. For example, I can't even say whether it is correct that we output them in the host endianness!<br>
<br> - Daniel<br>q<br></div></div><br>