Index: src/tests/.expect/32/declarationSpecifier.txt
===================================================================
--- src/tests/.expect/32/declarationSpecifier.txt	(revision 765aa76862409353ed37ea5a4b89c1c041c843f7)
+++ src/tests/.expect/32/declarationSpecifier.txt	(revision 8f49a54ffd2ebee0164eb91c530d7625a9d1f910)
@@ -1,7 +1,7 @@
-extern void *malloc(unsigned int __size);
-extern void free(void *__ptr);
-extern void abort(void);
-extern int atexit(void (*__func)(void));
-extern void exit(int __status);
+__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
+__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
 extern int printf(const char *__restrict __format, ...);
 volatile const short __x1__CVs_1;
@@ -629,9 +629,9 @@
 }
 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); }
-extern void *malloc(unsigned int __size);
-extern void free(void *__ptr);
-extern void abort(void);
-extern int atexit(void (*__func)(void));
-extern void exit(int __status);
+__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
+__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
 extern int printf(const char *__restrict __format, ...);
 static inline int invoke_main(int argc, char **argv, char **envp);
Index: src/tests/.expect/32/extension.txt
===================================================================
--- src/tests/.expect/32/extension.txt	(revision 765aa76862409353ed37ea5a4b89c1c041c843f7)
+++ src/tests/.expect/32/extension.txt	(revision 8f49a54ffd2ebee0164eb91c530d7625a9d1f910)
@@ -1,7 +1,7 @@
-extern void *malloc(unsigned int __size);
-extern void free(void *__ptr);
-extern void abort(void);
-extern int atexit(void (*__func)(void));
-extern void exit(int __status);
+__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
+__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
 extern int printf(const char *__restrict __format, ...);
 __extension__ int __a__i_1;
Index: src/tests/.expect/32/gccExtensions.txt
===================================================================
--- src/tests/.expect/32/gccExtensions.txt	(revision 765aa76862409353ed37ea5a4b89c1c041c843f7)
+++ src/tests/.expect/32/gccExtensions.txt	(revision 8f49a54ffd2ebee0164eb91c530d7625a9d1f910)
@@ -1,7 +1,7 @@
-extern void *malloc(unsigned int __size);
-extern void free(void *__ptr);
-extern void abort(void);
-extern int atexit(void (*__func)(void));
-extern void exit(int __status);
+__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
+__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
 extern int printf(const char *__restrict __format, ...);
 extern int __x__i_1 asm ( "xx" );
@@ -166,9 +166,9 @@
 }
 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); }
-extern void *malloc(unsigned int __size);
-extern void free(void *__ptr);
-extern void abort(void);
-extern int atexit(void (*__func)(void));
-extern void exit(int __status);
+__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
+__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
 extern int printf(const char *__restrict __format, ...);
 static inline int invoke_main(int argc, char **argv, char **envp);
Index: src/tests/.expect/64/declarationSpecifier.txt
===================================================================
--- src/tests/.expect/64/declarationSpecifier.txt	(revision 765aa76862409353ed37ea5a4b89c1c041c843f7)
+++ src/tests/.expect/64/declarationSpecifier.txt	(revision 8f49a54ffd2ebee0164eb91c530d7625a9d1f910)
@@ -1,7 +1,7 @@
-extern void *malloc(long unsigned int __size);
-extern void free(void *__ptr);
-extern void abort(void);
-extern int atexit(void (*__func)(void));
-extern void exit(int __status);
+__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
+__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
 extern int printf(const char *__restrict __format, ...);
 volatile const short __x1__CVs_1;
@@ -629,9 +629,9 @@
 }
 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); }
-extern void *malloc(long unsigned int __size);
-extern void free(void *__ptr);
-extern void abort(void);
-extern int atexit(void (*__func)(void));
-extern void exit(int __status);
+__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
+__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
 extern int printf(const char *__restrict __format, ...);
 static inline int invoke_main(int argc, char **argv, char **envp);
Index: src/tests/.expect/64/extension.txt
===================================================================
--- src/tests/.expect/64/extension.txt	(revision 765aa76862409353ed37ea5a4b89c1c041c843f7)
+++ src/tests/.expect/64/extension.txt	(revision 8f49a54ffd2ebee0164eb91c530d7625a9d1f910)
@@ -1,7 +1,7 @@
-extern void *malloc(long unsigned int __size);
-extern void free(void *__ptr);
-extern void abort(void);
-extern int atexit(void (*__func)(void));
-extern void exit(int __status);
+__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
+__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
 extern int printf(const char *__restrict __format, ...);
 __extension__ int __a__i_1;
Index: src/tests/.expect/64/gccExtensions.txt
===================================================================
--- src/tests/.expect/64/gccExtensions.txt	(revision 765aa76862409353ed37ea5a4b89c1c041c843f7)
+++ src/tests/.expect/64/gccExtensions.txt	(revision 8f49a54ffd2ebee0164eb91c530d7625a9d1f910)
@@ -1,7 +1,7 @@
-extern void *malloc(long unsigned int __size);
-extern void free(void *__ptr);
-extern void abort(void);
-extern int atexit(void (*__func)(void));
-extern void exit(int __status);
+__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
+__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
 extern int printf(const char *__restrict __format, ...);
 extern int __x__i_1 asm ( "xx" );
@@ -166,9 +166,9 @@
 }
 static inline int invoke_main(int argc, char* argv[], char* envp[]) { (void)argc; (void)argv; (void)envp; return __main__Fi_iPPCc__1(argc, argv); }
-extern void *malloc(long unsigned int __size);
-extern void free(void *__ptr);
-extern void abort(void);
-extern int atexit(void (*__func)(void));
-extern void exit(int __status);
+__attribute__ ((__malloc__,__nothrow__,__leaf__)) extern void *malloc(long unsigned int __size);
+__attribute__ ((__nothrow__,__leaf__)) extern void free(void *__ptr);
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void abort(void);
+__attribute__ ((__nonnull__(1),__nothrow__,__leaf__)) extern int atexit(void (*__func)(void));
+__attribute__ ((__noreturn__,__nothrow__,__leaf__)) extern void exit(int __status);
 extern int printf(const char *__restrict __format, ...);
 static inline int invoke_main(int argc, char **argv, char **envp);
Index: src/tests/coroutine.c
===================================================================
--- src/tests/coroutine.c	(revision 765aa76862409353ed37ea5a4b89c1c041c843f7)
+++ src/tests/coroutine.c	(revision 8f49a54ffd2ebee0164eb91c530d7625a9d1f910)
@@ -1,4 +1,4 @@
 #include <fstream>
-#include <threads>
+#include <coroutines>
 
 struct Fibonacci {
@@ -15,5 +15,5 @@
 }
 
-void co_main(Fibonacci* this) {
+void main(Fibonacci* this) {
 #ifdef MORE_DEBUG
       sout | "Starting main of coroutine " | this | endl;
