<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/150075>150075</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[CFI] missing .cfi symbols when alias override weak function
</td>
</tr>
<tr>
<th>Labels</th>
<td>
compiler-rt:cfi,
LTO
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
vitalybuka
</td>
</tr>
</table>
<pre>
cat ../a.c
```
__attribute__((alias("g"), visibility("default"))) void f(void);
__attribute__((visibility("default"))) void g(void) {}
```
cat ../b.c
```
__attribute__((weak, visibility("default"))) void f(void) { }
int main(int argc, char **argv) {
argv[0] = (char *)f;
void (*fp)(void) = (void (*)(void))argv[0];
fp();
}
```
clang ../a.c ../b.c -fsanitize=cfi-icall -flto=thin -fvisibility=hidden -fuse-ld=lld -o x -Wl,-save-temps -Wl,--thinlto-jobs=1
```
ld.lld: error: undefined hidden symbol: f.cfi
>>> referenced by ld-temp.o
>>> x.lto.o:(f)
>>> did you mean: g.cfi
>>> defined in: /tmp/x.lto.a-3b6dcc.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVFFvqzgT_TXDywjkmBLIAw-0fJE-aaV9WWkfK2MPZG4NjrChzf76lUnSpnv34WolS5l4hnPOnLGtvOdhIqqheIaiTdQSTm6uVw7KXrrlTSWdM5daq4BZBvKoMg2igb24LdG8vqoQZu6WQK-vICuQlbKs_BbKAaQEeQD5git77thyuFxThnq12HAviAtXxwZ7kFUM4l7-_O8Uvww2fIEhlM9Qtv_QD6L57K77le7eSb39136iBLxpEA1PAUfFE8gqhmoedATWJzUjyAZko-ZhvSsXDeL2v3gWULQIeYsgq6_qQ3-1C6-0m6qmP29SvgRcv3qo-JYHeXjguONFkOpzHD97qK2ahs8D8uklpr1XEwf-iyBvdc8pa2Utpr0NDvI2nHjCtH8wMm9PbAzF3cVTag3krbUGU4cfmP5pQb6kXq2UBhrP_r6TRiAbXPrDdR7ydne191GhNZmNaA3SPLs5BstkqOeJDN44_WXsnI2pPtM9R4T8f9eFM_U006TJYHdBazYBmftW85HZ4DIHeQOy6qNdj1nDBi9uwZHUFDmGnzjucnjLgzyG8QzyeIVVad7tjdYb5-b3t2YsT280o3bjqCaDvWJLBt85nJA-OKB2hnAXJ754wnTF4NATIU-r0yqwm256754lps7NIT-ohOpdWeRSlHlZJqd6Vx1kuXsq6CBKlZtdZ5QoxX6fV92ToXKfcC2FLEQp5a4Ssiiz_KBJiKLbGSOfJBXwJGhUbDNr1zFz85Cw9wvVu0KIskis6sj67UGSUrvxzJbmdA6QN9GxeL1eQMrf_vg9xkWbzHUESrtl8PAkLPvgv6ADB7u9bi_H_8dbM7L3HA-r7vk2cY_vJ5pwe7XQrTTPbAjjNcd-mXQ0J1lmW59COPttukeQx4HDaeky7UaQx0h3-0nPs_tBOoA8bm15kMdbZ2st_w4AAP__GnSZJQ">