tinycc/tests
Michael Matz 352e1d0fc4 Reinstate attribute alias handling
commit 2a0167a merged alias and asm symbol renaming, but broke
semantics of aliases, see testcase.  Basically the difference between
the two is that an asm rename doesn't generate a new symbol, i.e. with

  int foo __asm__("bar");

all source reference to 'foo' will be to 'bar', nothing of the name
'foo' will remain in the object file, and for instance reference to
'foo' from other compilation units won't be resolved to this one.

Aliases OTOH create an additional symbol.  With:

  void target (void) { return; }
  void afunc (void) __attribute__((alias("target")));

reference to 'afunc' will remain 'afunc' in the object file.  It will
generate two symbols, 'afunc' and 'target' referring to the same entity.
This difference matters if other compilation units make references to
'afunc'.

A side requirement of this is that for alias to work that the target
symbol needs to be defined in the same unit.  For TCC we even require a
stricter variant: it must be defined before the alias is created.

Now, with this I merely re-instated the old flow of events before above
commit.  It didn't seem useful anymore to place both names in the
asm_label member of attributes, and the asm_label member of Sym now
again only needs the hold the __asm__ rename.

It also follows that tcc_predefs.h can't make use of attribute alias to
e.g. map __builtin_memcpy to __bound_memcpy (simply because the latter
isn't defined in all units), but rather must use __asm__ renaming, which
in turn means that the underscore handling needs to be done by hand.
2020-09-30 17:46:01 +02:00
..
misc __builtin_/__bound_: A 'stay tiny' approach to the matter 2020-07-06 13:42:02 +02:00
pp Add make testspp.all/testspp.20 2018-01-05 02:19:26 +01:00
tests2 Reinstate attribute alias handling 2020-09-30 17:46:01 +02:00
42test.h tccpp: Allow computed include like 42.h 2016-12-15 17:47:10 +01:00
abitest.c Spelling fixes 2017-09-24 18:03:26 -07:00
asm-c-connect-1.c rework leading underscores 2020-07-06 13:00:47 +02:00
asm-c-connect-2.c rework leading underscores 2020-07-06 13:00:47 +02:00
asmtest.S tccasm: Accept suffixed cmovCC 2017-12-03 04:53:50 +01:00
boundtest.c Add vla bound support for arm,arm64 and riscv64 2020-06-17 11:24:17 +02:00
bug.c Allow strings in __builtin_constant_p 2020-09-17 09:11:10 +02:00
gcctestsuite.sh Fix gcc testsuite problems 2020-07-05 14:01:50 +02:00
libtcc_test_mt.c libtcc: accept tcc_define_symbol(s1, "sym=value", NULL) 2020-07-06 13:00:47 +02:00
libtcc_test.c Add error_func and error_opaque getters to libtcc 2019-10-14 09:36:14 +02:00
Makefile macos: tcc searches for libtcc.dyln in the same directory as its executable 2020-07-09 12:04:57 +02:00
tcctest.c Fix bitfields init : tiny solution 2020-09-25 12:23:48 +02:00
tcctest.h tccpp: Implement __BASE_FILE__ macro 2016-12-15 17:47:08 +01:00
testfp.c Remove misc. files 2016-10-01 20:27:41 +02:00
vla_test.c Improved variable length array support. 2013-04-27 22:58:52 +01:00