Issue |
150070
|
Summary |
[CFI] duplicate symbols on aliased weak function
|
Labels |
compiler-rt:cfi,
LTO
|
Assignees |
|
Reporter |
vitalybuka
|
cat ../b.c
```
void f(void) {}
int main(int argc, char **argv) {
argv[0] = (char *)f;
void (*fp)(void) = (void (*)(void))argv[0];
fp();
}
```
cat ../a.c
```
__attribute__((weak)) void f(void) {}
extern void ff(void) __attribute__((alias("f")));
```
clang ../b.c ../a.c -fsanitize=cfi-icall -flto=thin -fvisibility=hidden -fuse-ld=lld -o x -Wl,-save-temps -Wl,--thinlto-jobs=1
```
ld.lld: error: duplicate symbol: f.cfi
>>> defined at b.c
>>> /tmp/x.lto.b-0cd040.o:(f.cfi)
>>> defined at a.c
>>> /tmp/x.lto.a-1b6f8e.o:(.text.f.cfi+0x0)
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs