Fix tests2/120_alias.c on macos

While MacOS doesn't natively support the alias attribute, let's support
it with TCC anyway.  This means we need to make a decision if the
string in the alias attribute is decorated or not due to the implicit
underscore on MacOS.  To make life easier we decide that it's the C name,
i.e. without underscore, and so TCC needs to emit alias names with
underscore handling.

Irrespective of that the test case needs to deal with the underscore
itself for __asm__ renaming which is always requiring the assembler name.
This commit is contained in:
Michael Matz 2020-10-01 17:52:16 +02:00
parent 0da93838c1
commit 78da4586a0
2 changed files with 5 additions and 1 deletions

View File

@ -8472,7 +8472,7 @@ found:
if (!esym)
tcc_error("unsupported forward __alias__ attribute");
put_extern_sym2(sym, esym->st_shndx,
esym->st_value, esym->st_size, 0);
esym->st_value, esym->st_size, 1);
}
} else {
if (type.t & VT_STATIC)

View File

@ -6,7 +6,11 @@ void target(void) {
}
void alias_for_target(void) __attribute__((alias("target")));
#ifdef __leading_underscore
void asm_for_target(void) __asm__("_target");
#else
void asm_for_target(void) __asm__("target");
#endif
/* This is not supposed to compile, alias targets must be defined in the
same unit. In TCC they even must be defined before the reference