<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, May 1, 2018 at 11:43 PM, Evan Driscoll <span dir="ltr"><<a href="mailto:evaned@gmail.com" target="_blank">evaned@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div>  $ cat huh.cc<br>  extern "C" {<br>    static __attribute__((used)) void dummy1(int x) { }<br>  }<br>  $ clang -c huh.cc && nm huh.o<br>  0000000000000000 t f<br>  0000000000000000 t _ZL1fi<br>  $ clang -c huh.cc && nm huh.o | c++filt<br>  0000000000000000 t f<br>  0000000000000000 t f(int)<br></div></div></div></div></div></div></div></blockquote><div><br>In the interest of hopefully eliminating confusion -- sorry for the 
output not exactly matching up with the examples in terms of function 
names. I was working half in Compiler Explorer and half with a file on a
 local file system. I noticed as I was finishing the email, and thought I'd try to align the names by editing the command output to match... but of course that is always a bad idea. :-)<br><br></div><div>Anyway, of course that code doesn't produce an object file with a symbol 'f' in it, it'd be 'dummy1'. The presence of both the unmangled and mangled symbols is the same though.<br><br></div><div>Evan<br></div><div><br><br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><br></div><br></div>So I tried using the mangled name in the alias, and that works:<br><br>  extern "C" {<br>    static __attribute__((used)) void f1 () {}<br>    void f () __attribute__ ((weak, alias("_ZL2f1v"))); // OK<br>  }<br><br></div>and of course then so does this<br><br>  static __attribute__((used)) void f1 () {}<br>  extern "C" {<br>    void f () __attribute__ ((weak, alias("_ZL2f1v")));<br>  }<br><br><br></div>Furthermore, if I browse the Itanium ABI page, I can't even figure out how you get a "_ZL..." mangled symbol, but I'm sure I'm missing something (e.g. c++filt demangles it fine...)<br><br><br></div>Anyway, I can easily work around this is my actual code, but how much of this is expected behavior?<span class="HOEnZb"><font color="#888888"><br><br></font></span></div><span class="HOEnZb"><font color="#888888">Evan<br><br></font></span></div>
</blockquote></div><br></div></div>