From 4d5105c8f1ff1ac4bae592d6c221e5737614bbad Mon Sep 17 00:00:00 2001 From: Joe Soroka Date: Tue, 1 Feb 2011 00:37:53 -0800 Subject: support weak attribute on variables --- tests/tcctest.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests') 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) { } -- cgit v1.3.1