diff options
Diffstat (limited to 'test/Feature')
-rw-r--r-- | test/Feature/Alias.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/test/Feature/Alias.c b/test/Feature/Alias.c index 29cc08d7..e1f58901 100644 --- a/test/Feature/Alias.c +++ b/test/Feature/Alias.c @@ -6,6 +6,10 @@ #include <assert.h> +// alias with bitcast +// NOTE: this does not have to be before b is known +extern short d __attribute__((alias("b"))); + // alias for global int b = 52; extern int a __attribute__((alias("b"))); @@ -18,13 +22,26 @@ extern int foo2() __attribute__((alias("foo"))); int __foo() { return 52; } extern int foo() __attribute__((alias("__foo"))); +// alias without bitcast +extern int foo3(void) __attribute__((alias("__foo"))); + int *c = &a; int main() { assert(a == 52); + assert(*c == 52); + assert((int)d == 52); + + assert(c == &b); + assert((int*)&d != &b); + assert(foo() == 52); assert(foo2() == 52); - assert(*c == 52); + assert(foo3() == 52); + + assert(foo != __foo); + assert(foo2 != __foo); + assert(foo3 == __foo); return 0; } |