Open llvmbot opened 13 years ago
I'm pretty sure what the error in question is trying to say is that we support weakref, but not any other kind of alias, due to limitations of MachO. It might be worth clarifying the error a bit.
Wow, this issue existed for over a decade. The compiler still claims that weak aliases aren't supported but when you use #pragma
to define your weak aliases, it works and behaves as expected. See #71001
Extended Description
When compiling the following (simplified) code fragment:
int get_value(int value) { return value; }
int get_value_alias(int *high) attribute ((weak, alias ("get_value")));
for MacOS X, clang reports the following error:
% clang -ccc-host-triple i386-apple-darwin -c -o bug.o bug.c bug.c:6:54: error: only weak aliases are supported on darwin int get_value_alias(int *high) attribute ((weak, alias ("get_value")));
It would appear that clang does not support weak aliases on MacOS X (I asked on the cfe-dev list, but nobody suggested a solution). If it is not possible to support weak aliases for this target, I suggest changing the error message to indicate this fact.