Issue 150075
Summary [CFI] missing .cfi symbols when alias override weak function
Labels compiler-rt:cfi, LTO
Assignees
Reporter vitalybuka
    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)
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to