diff options
Diffstat (limited to 'newlib/testsuite/newlib.stdlib/atexit.c')
-rw-r--r-- | newlib/testsuite/newlib.stdlib/atexit.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/newlib/testsuite/newlib.stdlib/atexit.c b/newlib/testsuite/newlib.stdlib/atexit.c new file mode 100644 index 000000000..48fdb6733 --- /dev/null +++ b/newlib/testsuite/newlib.stdlib/atexit.c @@ -0,0 +1,48 @@ +#include <stdlib.h> +#include <stdio.h> + +void a(void); +void b(void); +void c(int, void *); +static void newline(void); + +void a (void) +{ + printf("a"); +} + +void b (void) +{ + printf("b"); +} + +void c (int code, void *k) +{ + char *x = (char *)k; + printf("%d%c",code,x[0]); +} + +static void newline (void) +{ + printf("\n"); +} + +int main() +{ + if (atexit(newline) != 0) + abort(); + + if (atexit(a) != 0) + abort(); + + if (atexit(b) != 0) + abort(); + + if (on_exit(c,(void *)"c") != 0) + abort(); + + if (atexit(a) != 0) + abort(); + + exit(0); +} |