diff options
| author | Joe Soroka <gits@joesoroka.com> | 2011-02-01 00:37:53 -0800 |
|---|---|---|
| committer | Joe Soroka <gits@joesoroka.com> | 2011-02-01 00:37:53 -0800 |
| commit | 4d5105c8f1ff1ac4bae592d6c221e5737614bbad (patch) | |
| tree | da9af451435028f75a899031d6dc0b7abb5830a4 /tests | |
| parent | 6839382480b86362a3dc2807bac7e4bc5d7ef469 (diff) | |
| download | tinycc-4d5105c8f1ff1ac4bae592d6c221e5737614bbad.tar.gz tinycc-4d5105c8f1ff1ac4bae592d6c221e5737614bbad.tar.bz2 | |
support weak attribute on variables
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/tcctest.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/tcctest.c b/tests/tcctest.c index 14ad1e6..8c2b2a2 100644 --- a/tests/tcctest.c +++ b/tests/tcctest.c @@ -82,6 +82,7 @@ void local_label_test(void); void statement_expr_test(void); void asm_test(void); void builtin_test(void); +void weak_test(void); int fib(int n); void num(int n); @@ -537,6 +538,7 @@ int main(int argc, char **argv) local_label_test(); asm_test(); builtin_test(); + weak_test(); return 0; } @@ -2227,6 +2229,22 @@ void builtin_test(void) } +extern int __attribute__((weak)) weak_f1(void); +extern int __attribute__((weak)) weak_f2(void); +extern int __attribute__((weak)) weak_v1; +extern int __attribute__((weak)) weak_v2; + +void __attribute__((weak)) weak_test(void) +{ + printf("weak_f1=%d\n", weak_f1 ? weak_f1() : 123); + printf("weak_f2=%d\n", weak_f2 ? weak_f2() : 123); + printf("weak_v1=%d\n",&weak_v1 ? weak_v1 : 123); + printf("weak_v2=%d\n",&weak_v2 ? weak_v2 : 123); +} + +int __attribute__((weak)) weak_f2() { return 222; } +int __attribute__((weak)) weak_v2 = 222; + void const_func(const int a) { } |
