Index: example/io/cat.c
===================================================================
--- example/io/cat.c	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ example/io/cat.c	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,78 @@
+/*
+This is a simple "cat" example that uses io_uring in IORING_SETUP_IOPOLL mode.
+It demonstrates the bare minimum needed to use io_uring in polling mode.
+It uses liburing for simplicity.
+*/
+
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+
+#include <fcntl.h>
+#include <liburing.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+struct io_uring ring;
+
+__attribute__((aligned(1024))) char data[1024];
+
+int main(int argc,  char * argv[]) {
+      if(argc != 2) {
+            printf("usage:   %s FILE - prints file to console.\n", argv[0]);
+            return 1;
+      }
+
+      int fd = open(argv[1], O_DIRECT);
+      if(fd < 0) {
+            printf("Could not open file %s.\n", argv[1]);
+            return 2;
+      }
+
+      /* prep the array */
+      struct iovec iov = { data, 1024 };
+
+      /* init liburing */
+      io_uring_queue_init(256, &ring, IORING_SETUP_IOPOLL);
+
+      /* declare required structs */
+      struct io_uring_sqe * sqe;
+      struct io_uring_cqe * cqe;
+
+      /* get an sqe and fill in a READV operation */
+      sqe = io_uring_get_sqe(&ring);
+      io_uring_prep_readv(sqe, fd, &iov, 1, 0);
+      // io_uring_prep_read(sqe, fd, data, 1024, 0);
+
+      sqe->user_data = (uint64_t)(uintptr_t)data;
+
+      /* tell the kernel we have an sqe ready for consumption */
+      io_uring_submit(&ring);
+
+      /* wait for the sqe to complete */
+      int ret = io_uring_wait_cqe(&ring, &cqe);
+
+      /* read and process cqe event */
+      if(ret == 0) {
+            char * out = (char *)(uintptr_t)cqe->user_data;
+            signed int len = cqe->res;
+            io_uring_cqe_seen(&ring, cqe);
+
+            if(len > 0) {
+                  printf("%.*s", len, out);
+            }
+            else if( len < 0 ) {
+                  fprintf(stderr, "readv/read returned error : %s\n", strerror(-len));
+            }
+      }
+      else {
+            printf("%d\n", ret);
+            io_uring_cqe_seen(&ring, cqe);
+      }
+
+      io_uring_queue_exit(&ring);
+
+      close(fd);
+}
Index: example/io/filereader.c
===================================================================
--- example/io/filereader.c	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ example/io/filereader.c	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,122 @@
+/*
+This is a file reading example that users io_uring in non-blocking mode.
+It demonstrates the bare minimum needed to use io_uring.
+It also optionally pre-registers the file descriptors (and a pipe, just to show it works).
+It uses liburing for simplicity.
+*/
+
+
+#include <errno.h>
+#include <fcntl.h>
+#include <liburing.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+int main(int argc, char * argv[]) {
+	if(argc != 3 && argc != 4) {
+            printf("usage:   %s FILE TIMES [fixed] - read FILE from disk TIMES times\n", argv[0]);
+            return EXIT_FAILURE;
+      }
+
+	bool fixed = false;
+	if(argc == 4) {
+		fixed = 0 == strcmp(argv[3], "fixed");
+	}
+
+      int times = atoi( argv[2] );
+      if(times <= 0) {
+            printf("Invalid number of times %d (from %s).\n", times, argv[2]);
+            return EXIT_FAILURE;
+      }
+
+      int fd = open(argv[1], 0);
+      if(fd < 0) {
+            printf("Could not open file %s.\n", argv[1]);
+            return EXIT_FAILURE;
+      }
+
+	int rfd = fd;
+
+	/* prep the array */
+      char data[100];
+      struct iovec iov = { data, 100 };
+
+	/* init liburing */
+	struct io_uring ring;
+      io_uring_queue_init(256, &ring, 0);
+
+	int pipefds[2];
+	if(fixed) {
+		int ret = pipe(pipefds);
+		if( ret < 0 ) {
+			printf("Pipe Error : %s\n", strerror( errno ));
+			return EXIT_FAILURE;
+		}
+		rfd = 0;
+		int fds[] = {
+			fd, pipefds[0], pipefds[1]
+		};
+		int cnt = sizeof(fds) / sizeof(fds[0]);
+		printf("Registering %d files as fixed\n", cnt);
+		ret = io_uring_register_files(&ring, fds, cnt);
+		if( ret < 0 ) {
+			printf("Register Error : %s\n", strerror( -ret ));
+			return EXIT_FAILURE;
+		}
+	}
+
+      /* declare required structs */
+	printf("Reading %s(%d) %d times\n", argv[1], fd, times);
+	size_t counter = 0;
+	for(int i = 0; i < times; i++) {
+		/* get an sqe and fill in a READV operation */
+	      struct io_uring_sqe * sqe = io_uring_get_sqe(&ring);
+		io_uring_prep_readv(sqe, rfd, &iov, 1, 0);
+		if(fixed) {
+			sqe->flags = IOSQE_FIXED_FILE;
+		}
+
+		/* tell the kernel we have an sqe ready for consumption */
+      	io_uring_submit(&ring);
+
+		/* poll the cq and count how much polling we did */
+		while(true) {
+			struct io_uring_cqe * cqe = NULL;
+			/* wait for the sqe to complete */
+			int ret = io_uring_wait_cqe_nr(&ring, &cqe, 0);
+
+			/* read and process cqe event */
+			switch(ret) {
+			case 0:
+				if( cqe->res < 0 ) {
+					printf("Completion Error : %s\n", strerror( -cqe->res ));
+					return EXIT_FAILURE;
+				}
+				io_uring_cqe_seen(&ring, cqe);
+				goto LOOP;
+			case -EAGAIN:
+				counter++;
+				break;
+			default:
+				printf("Wait Error : %s\n", strerror( -ret ));
+				return EXIT_FAILURE;
+			}
+		}
+
+		LOOP:;
+	}
+
+	printf("%zu\n", counter);
+
+      io_uring_queue_exit(&ring);
+
+      close(fd);
+
+	if(fixed) {
+		close(pipefds[0]);
+		close(pipefds[1]);
+	}
+}
Index: example/io/simple/client.c
===================================================================
--- example/io/simple/client.c	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ example/io/simple/client.c	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,85 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <netdb.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/socket.h>
+
+int main(int argc, char * argv[]) {
+      if(argc != 2) {
+            printf("usage:    %s portnumber\n", argv[0]);
+            exit( EXIT_FAILURE );
+      }
+      int port = atoi(argv[1]);
+      if(port < 1) {
+            printf("Invalid port : %d (from %s)\n", port, argv[1]);
+            exit( EXIT_FAILURE );
+      }
+
+      int sock = socket(AF_INET, SOCK_STREAM, 0);
+      if(sock < 0) {
+            perror( "socket" );
+            exit( EXIT_FAILURE );
+      }
+
+      struct hostent * server = gethostbyname("localhost");
+      if(server == NULL) {
+            perror("localhost not found");
+            exit( EXIT_FAILURE );
+      }
+
+      struct sockaddr_in serv_addr;
+      memset(&serv_addr, 0, sizeof(serv_addr));
+      serv_addr.sin_family = AF_INET;
+      memcpy(&serv_addr.sin_addr.s_addr, server->h_addr, server->h_length);
+      serv_addr.sin_port = htons(port);
+
+      int ret = connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr));
+      if(ret < 0) {
+            perror( "connect" );
+            exit( EXIT_FAILURE );
+      }
+
+      char buffer[256];
+      struct iovec iov = { buffer, 0 };
+      struct msghdr msg;
+      msg.msg_name = NULL;
+      msg.msg_namelen = 0;
+      msg.msg_control = NULL;
+      msg.msg_controllen = 0;
+      msg.msg_iov = &iov;
+      msg.msg_iovlen = 1;
+      msg.msg_flags = 0;
+
+
+      int rd;
+      while(0 != (rd = read(STDIN_FILENO, buffer, 256))) {
+            if(rd < 0) {
+                  perror( "read" );
+                  exit( EXIT_FAILURE );
+            }
+
+            iov.iov_len = rd;
+            int sent = sendmsg(sock, &msg, 0);
+            if( sent < 0 ) {
+                  perror( "read" );
+                  exit( EXIT_FAILURE );
+            }
+
+            if(sent != rd) {
+                  printf("Expected to send %d bytes, sent %d\n", rd, sent);
+                  exit( EXIT_FAILURE );
+            }
+      }
+
+      ret = close(sock);
+      if(ret < 0) {
+            perror( "close" );
+            exit( EXIT_FAILURE );
+      }
+
+      exit( EXIT_SUCCESS );
+}
Index: example/io/simple/server.c
===================================================================
--- example/io/simple/server.c	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ example/io/simple/server.c	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,143 @@
+/*
+This is a simple server that users io_uring in blocking mode.
+It demonstrates the bare minimum needed to use io_uring.
+It uses liburing for simplicity.
+*/
+
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+#include <liburing.h>
+
+struct io_uring ring;
+
+char data[256];
+struct iovec iov = { data, 256 };
+struct msghdr msg = { (void *)"", 0, &iov, 1, NULL, 0, 0 };
+static void async_read(int sock) {
+	/* get an sqe and fill in a READ operation */
+      struct io_uring_sqe * sqe = io_uring_get_sqe(&ring);
+      io_uring_prep_recvmsg(sqe, sock, &msg, 0);
+      sqe->user_data = 0;
+
+      /* tell the kernel we have an sqe ready for consumption */
+      int ret = io_uring_submit(&ring);
+      assert(ret == 1);
+}
+
+int main(int argc, char *argv[]) {
+	if(argc != 2) {
+            printf("usage:    %s portnumber\n", argv[0]);
+            exit( EXIT_FAILURE );
+      }
+      int port = atoi(argv[1]);
+      if(port < 1) {
+            printf("Invalid port : %d (from %s)\n", port, argv[1]);
+            exit( EXIT_FAILURE );
+      }
+
+	int sock = socket(AF_INET, SOCK_STREAM, 0);
+	if(sock < 0) {
+		perror( "socket" );
+		exit( EXIT_FAILURE );
+	}
+
+	struct sockaddr_in serv_addr;
+      memset(&serv_addr, 0, sizeof(serv_addr));
+      serv_addr.sin_family = AF_INET;
+      serv_addr.sin_addr.s_addr = INADDR_ANY;
+      serv_addr.sin_port = htons(port);
+
+	int ret = bind(sock, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
+	if(ret < 0) {
+		perror( "bind" );
+		exit( EXIT_FAILURE );
+	}
+
+
+     	listen(sock,1);
+
+	struct sockaddr_in cli_addr;
+     	__socklen_t clilen = sizeof(cli_addr);
+	int newsock = accept(sock, (struct sockaddr *) &cli_addr, &clilen);
+     	if (newsock < 0) {
+		perror( "accept" );
+		exit( EXIT_FAILURE );
+	}
+
+	io_uring_queue_init( 16, &ring, 0 );
+
+	async_read( newsock );
+
+	while(1) {
+		struct io_uring_cqe * cqe;
+		struct __kernel_timespec ts = { 2, 0 };
+		// int ret = io_uring_wait_cqes( &ring, &cqe, 1, &ts, NULL); // Requires Linux 5.4
+		int ret = io_uring_wait_cqe( &ring, &cqe );
+
+		if( ret < 0 ) {
+                  printf( "Main Loop Error : %s\n", strerror(-ret) );
+			close( sock );
+                  exit( EXIT_FAILURE );
+            }
+
+		switch(cqe->user_data) {
+                  // Read completed
+                  case 0:
+                        // If it is the end of file we are done
+                        if( cqe->res == 0 ) {
+                              goto END;
+                        }
+
+				if( cqe->res < 0 ) {
+					perror( "Main Loop Error" );
+					close( sock );
+					exit( EXIT_FAILURE );
+				}
+
+				printf("'%.*s'\n", cqe->res, data);
+
+				async_read( newsock );
+
+                        // otherwise prepare a new read
+                        break;
+                  // Wait timed out, time to print
+			// Requires Linux 5.4
+                  case LIBURING_UDATA_TIMEOUT:
+                  	printf(".");
+                        break;
+                  // Problem
+                  default:
+                        printf("Unexpected user data : %llu", cqe->user_data);
+                        exit( EXIT_FAILURE );
+            }
+
+     		io_uring_cqe_seen( &ring, cqe );
+	}
+END:
+
+	io_uring_queue_exit( &ring );
+
+	ret = close(newsock);
+      if(ret < 0) {
+            perror( "close new" );
+            exit( EXIT_FAILURE );
+      }
+
+	ret = close(sock);
+      if(ret < 0) {
+            perror( "close old" );
+            exit( EXIT_FAILURE );
+      }
+
+	return 0;
+}
Index: example/io/simple/server.cfa
===================================================================
--- example/io/simple/server.cfa	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ example/io/simple/server.cfa	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,137 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <unistd.h>
+
+extern "C" {
+	#include <sys/types.h>
+	#include <sys/socket.h>
+	#include <netinet/in.h>
+}
+
+#include <time.hfa>
+#include <thread.hfa>
+
+//----------
+monitor Printer {};
+
+void heartbeat( Printer & mutex ) {
+	fprintf(stderr, ".");
+}
+
+void message( Printer & mutex, char * msg, size_t len ) {
+	fprintf(stderr, "'%.*s'", len, msg);
+}
+
+void status( Printer & mutex, const char * st ) {
+	fprintf(stderr, "%s\n", st);
+}
+
+void error( Printer & mutex, const char * msg, int error) {
+	fprintf(stderr, "%s - %s\n", msg, strerror(error));
+}
+
+Printer printer;
+
+//----------
+thread HeartBeat {};
+
+void ^?{}( HeartBeat & mutex ) {}
+
+void main( HeartBeat & this ) {
+	while(true) {
+		waitfor( ^?{} : this ) { break; }
+		or else{
+			sleep( 5`s );
+			heartbeat( printer );
+		}
+	}
+}
+
+//----------
+extern ssize_t cfa_recvmsg(int sockfd, struct msghdr *msg, int flags);
+extern int cfa_accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags);
+extern int cfa_close(int fd);
+
+//----------
+thread Server { int port; };
+void main( Server & this ) {
+	char data[256];
+	struct iovec iov = { data, 256 };
+	struct msghdr msg = { "", 0, &iov, 1, NULL, 0, 0 };
+
+	int sock = socket(AF_INET, SOCK_STREAM, 0);
+	if(sock < 0) {
+		error( printer, "socket", -sock);
+		exit( EXIT_FAILURE );
+	}
+
+	status( printer, "Socket created" );
+
+	struct sockaddr_in serv_addr;
+      memset(&serv_addr, 0, sizeof(serv_addr));
+      serv_addr.sin_family = AF_INET;
+      serv_addr.sin_addr.s_addr = INADDR_ANY;
+      serv_addr.sin_port = htons(this.port);
+
+	int ret = bind(sock, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
+	if(ret < 0) {
+		error( printer, "bind", -ret);
+		exit( EXIT_FAILURE );
+	}
+
+	status( printer, "Socket bound" );
+
+     	listen(sock,1);
+
+	struct sockaddr_in cli_addr;
+     	__socklen_t clilen = sizeof(cli_addr);
+	int newsock = cfa_accept4(sock, (struct sockaddr *) &cli_addr, &clilen, 0);
+     	if (newsock < 0) {
+		error( printer, "accept", -newsock);
+		exit( EXIT_FAILURE );
+	}
+
+	status( printer, "Socket accepted, looping" );
+
+	while(1) {
+		int res = cfa_recvmsg(newsock, &msg, 0);
+		if(res == 0) break;
+		if(res < 0) {
+			error( printer, "recvmsg", -res);
+			exit( EXIT_FAILURE );
+		}
+
+		message(printer, data, res);
+	}
+
+	ret = cfa_close(newsock);
+      if(ret < 0) {
+            error( printer, "close new", -ret);
+            exit( EXIT_FAILURE );
+      }
+
+	ret = cfa_close(sock);
+      if(ret < 0) {
+            error( printer, "close old", -ret);
+            exit( EXIT_FAILURE );
+      }
+}
+
+//----------
+int main(int argc, char * argv []) {
+	if(argc != 2) {
+            printf("usage:    %s portnumber\n", argv[0]);
+            exit( EXIT_FAILURE );
+      }
+      int port = atoi(argv[1]);
+      if(port < 1) {
+            printf("Invalid port : %d (from %s)\n", port, argv[1]);
+            exit( EXIT_FAILURE );
+      }
+
+	HeartBeat heartbeat;
+	Server server = { port };
+	// while(true);
+}
Index: example/io/simple/server_epoll.c
===================================================================
--- example/io/simple/server_epoll.c	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ example/io/simple/server_epoll.c	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,177 @@
+/*
+Similar to the server in servier.c, this is a simple server
+that instead uses epoll to block.
+It opens the door to have several polling user-thread per cluster.
+It uses liburing for simplicity.
+*/
+
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <unistd.h>
+
+#include <sys/epoll.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+#include <liburing.h>
+
+#define MAX_EVENTS 10
+struct epoll_event ev, events[MAX_EVENTS];
+
+struct io_uring ring;
+
+char data[256];
+struct iovec iov = { data, 256 };
+struct msghdr msg = { (void *)"", 0, &iov, 1, NULL, 0, 0 };
+static void async_read(int sock) {
+	/* get an sqe and fill in a READ operation */
+      struct io_uring_sqe * sqe = io_uring_get_sqe(&ring);
+      io_uring_prep_recvmsg(sqe, sock, &msg, 0);
+      sqe->user_data = 0;
+
+      /* tell the kernel we have an sqe ready for consumption */
+      int ret = io_uring_submit(&ring);
+      assert(ret == 1);
+}
+
+int main(int argc, char *argv[]) {
+	if(argc != 2) {
+            printf("usage:    %s portnumber\n", argv[0]);
+            exit( EXIT_FAILURE );
+      }
+      int port = atoi(argv[1]);
+      if(port < 1) {
+            printf("Invalid port : %d (from %s)\n", port, argv[1]);
+            exit( EXIT_FAILURE );
+      }
+
+	int sock = socket(AF_INET, SOCK_STREAM, 0);
+	if(sock < 0) {
+		perror( "socket" );
+		exit( EXIT_FAILURE );
+	}
+
+	struct sockaddr_in serv_addr;
+      memset(&serv_addr, 0, sizeof(serv_addr));
+      serv_addr.sin_family = AF_INET;
+      serv_addr.sin_addr.s_addr = INADDR_ANY;
+      serv_addr.sin_port = htons(port);
+
+	int ret = bind(sock, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
+	if(ret < 0) {
+		perror( "bind" );
+		exit( EXIT_FAILURE );
+	}
+
+
+     	listen(sock,1);
+
+	struct sockaddr_in cli_addr;
+     	__socklen_t clilen = sizeof(cli_addr);
+	int newsock = accept(sock, (struct sockaddr *) &cli_addr, &clilen);
+     	if (newsock < 0) {
+		perror( "accept" );
+		exit( EXIT_FAILURE );
+	}
+
+	io_uring_queue_init( 16, &ring, 0 );
+
+      int epollfd = epoll_create1(0);
+      if (epollfd == -1) {
+            perror("epoll_create1");
+            exit(EXIT_FAILURE);
+      }
+
+      ev.events = EPOLLIN | EPOLLONESHOT;
+      ev.data.u64 = (uint64_t)&ring;
+      if (epoll_ctl(epollfd, EPOLL_CTL_ADD, ring.ring_fd, &ev) == -1) {
+            perror("epoll_ctl: first");
+            exit(EXIT_FAILURE);
+      }
+
+
+	async_read( newsock );
+
+	while(1) {
+            BLOCK:
+            int nfds = epoll_wait(epollfd, events, MAX_EVENTS, -1);
+            if (nfds == -1) {
+                  perror("epoll_wait");
+                  exit(EXIT_FAILURE);
+            }
+
+
+		while(1) {
+                  struct io_uring_cqe * cqe;
+                  int ret = io_uring_peek_cqe( &ring, &cqe );
+
+                  if( ret < 0 ) {
+                        if(-ret == EAGAIN) {
+                              if (epoll_ctl(epollfd, EPOLL_CTL_MOD, ring.ring_fd, &ev) == -1) {
+                                    perror("epoll_ctl: loop");
+                                    exit(EXIT_FAILURE);
+                              }
+                              goto BLOCK;
+                        }
+                        printf( "Main Loop Error : %s\n", strerror(-ret) );
+                        close( sock );
+                        exit( EXIT_FAILURE );
+                  }
+
+                  switch(cqe->user_data) {
+                        // Read completed
+                        case 0:
+                              // If it is the end of file we are done
+                              if( cqe->res == 0 ) {
+                                    goto END;
+                              }
+
+                              if( cqe->res < 0 ) {
+                                    perror( "Main Loop Error" );
+                                    close( sock );
+                                    exit( EXIT_FAILURE );
+                              }
+
+                              printf("'%.*s'\n", cqe->res, data);
+
+                              async_read( newsock );
+
+                              // otherwise prepare a new read
+                              break;
+                        // Wait timed out, time to print
+                        // Requires Linux 5.4
+                        case LIBURING_UDATA_TIMEOUT:
+                              printf(".");
+                              break;
+                        // Problem
+                        default:
+                              printf("Unexpected user data : %llu", cqe->user_data);
+                              exit( EXIT_FAILURE );
+                  }
+
+                  io_uring_cqe_seen( &ring, cqe );
+            }
+	}
+END:
+
+	io_uring_queue_exit( &ring );
+
+	ret = close(newsock);
+      if(ret < 0) {
+            perror( "close new" );
+            exit( EXIT_FAILURE );
+      }
+
+	ret = close(sock);
+      if(ret < 0) {
+            perror( "close old" );
+            exit( EXIT_FAILURE );
+      }
+
+	return 0;
+}
Index: sts/.expect/KRfunctions.arm64.txt
===================================================================
--- tests/.expect/KRfunctions.arm64.txt	(revision 3233b91b36dc8cf1126178068a300f99697b4dec)
+++ 	(revision )
@@ -1,116 +1,0 @@
-signed int _X2f0Fi_iPKii__1(signed int _X1ai_1, const signed int *_X1bPKi_1, signed int _X1ci_1){
-    __attribute__ ((unused)) signed int _X10_retval_f0i_1;
-}
-signed int _X2f1Fi_PiiPi__1(signed int *_X1aPi_1, __attribute__ ((unused)) signed int _X1bi_1, signed int *_X1cPi_1){
-    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
-}
-signed int _X2f2Fi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
-    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
-}
-struct S {
-    signed int _X1ii_1;
-};
-static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
-static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
-static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
-static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
-static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1);
-static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
-    {
-        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
-    {
-        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
-    {
-        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ^?{} */);
-    }
-
-}
-static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
-    struct S _X4_retS1S_1;
-    {
-        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S1SS1S_autogen___1((&_X4_retS1S_1), (*_X4_dstS1S_1)));
-    }
-
-    return _X4_retS1S_1;
-}
-static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1){
-    {
-        ((void)((*_X4_dstS1S_1)._X1ii_1=_X1ii_1) /* ?{} */);
-    }
-
-}
-signed int _X2f3Fi_S1SS1SPi__1(struct S _X1aS1S_1, struct S _X1bS1S_1, signed int *_X1cPi_1){
-    __attribute__ ((unused)) signed int _X10_retval_f3i_1;
-    struct S _X1sS1S_2;
-}
-signed int _X2f4Fi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
-    __attribute__ ((unused)) signed int _X10_retval_f4i_1;
-}
-signed int _X2f5Fi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
-    __attribute__ ((unused)) signed int _X10_retval_f5i_1;
-}
-signed int (*_X2f6FFi_i__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(__attribute__ ((unused)) signed int __anonymous_object0){
-    __attribute__ ((unused)) signed int (*_X10_retval_f6Fi_i__1)(signed int __anonymous_object1);
-}
-signed int (*_X2f7FFi_ii__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(signed int _X1ai_1, signed int _X1bi_1){
-    __attribute__ ((unused)) signed int (*_X10_retval_f7Fi_ii__1)(signed int _X1ai_1, signed int _X1bi_1);
-}
-signed int *_X2f8FPi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
-    __attribute__ ((unused)) signed int *_X10_retval_f8Pi_1;
-}
-signed int *const _X2f9FPi_PiiPi__1(signed int *_X1aPi_1, signed int _X1bi_1, signed int *_X1cPi_1){
-    __attribute__ ((unused)) signed int *const _X10_retval_f9KPi_1;
-}
-signed int *(*_X3f10FFPi_ii__iPiPid__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1, double _X1yd_1))(signed int _X1xi_1, signed int _X1yi_1){
-    __attribute__ ((unused)) signed int *(*_X11_retval_f10FPi_ii__1)(signed int _X1xi_1, signed int _X1yi_1);
-    signed int *_X1xFPi_ii__2(signed int __anonymous_object2, signed int __anonymous_object3);
-    {
-        ((void)(_X11_retval_f10FPi_ii__1=_X1xFPi_ii__2) /* ?{} */);
-    }
-
-    return _X11_retval_f10FPi_ii__1;
-}
-signed int (*_X3f11FPA0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0i_1)[];
-}
-signed int (*_X3f12FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned long int )10)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned long int )10)];
-}
-signed int (*_X3f13FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned long int )10)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f13PA0A0i_1)[][((unsigned long int )10)];
-}
-signed int (*_X3f14FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned long int )10)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f14PA0A0i_1)[][((unsigned long int )10)];
-}
-signed int _X3f15Fi_iii__1(signed int _X1ai_1, signed int _X1bi_1, signed int _X1ci_1){
-    __attribute__ ((unused)) signed int _X11_retval_f15i_1;
-}
-const signed int _X4fredFi___1(){
-    __attribute__ ((unused)) const signed int _X12_retval_fredKi_1;
-    signed int *(*_X1xFPi_ii__2)(signed int __anonymous_object4, signed int __anonymous_object5);
-    signed int _X1ai_2;
-    signed int _X1bi_2;
-    {
-        signed int *(*_tmp_cp_ret4)(signed int _X1xi_1, signed int _X1yi_1);
-        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret4=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret4)));
-    }
-
-    const signed int _X2f1Fi_iPiPi__2(signed int _X1ai_2, signed int *_X1bPi_2, signed int *_X1cPi_2){
-        __attribute__ ((unused)) const signed int _X10_retval_f1Ki_2;
-    }
-    const signed int _X2f2Fi_iii__2(signed int _X1ai_2, signed int _X1bi_2, signed int _X1ci_2){
-        __attribute__ ((unused)) const signed int _X10_retval_f2Ki_2;
-    }
-}
Index: tests/.expect/KRfunctions.nast.arm64.txt
===================================================================
--- tests/.expect/KRfunctions.nast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ tests/.expect/KRfunctions.nast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,116 @@
+signed int _X2f0Fi_iPKii__1(signed int _X1ai_1, const signed int *_X1bPKi_1, signed int _X1ci_1){
+    __attribute__ ((unused)) signed int _X10_retval_f0i_1;
+}
+signed int _X2f1Fi_PiiPi__1(signed int *_X1aPi_1, __attribute__ ((unused)) signed int _X1bi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
+}
+signed int _X2f2Fi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
+}
+struct S {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    struct S _X4_retS1S_1;
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S1SS1S_autogen___1((&_X4_retS1S_1), (*_X4_dstS1S_1)));
+    }
+
+    return _X4_retS1S_1;
+}
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+signed int _X2f3Fi_S1SS1SPi__1(struct S _X1aS1S_1, struct S _X1bS1S_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f3i_1;
+    struct S _X1sS1S_2;
+}
+signed int _X2f4Fi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f4i_1;
+}
+signed int _X2f5Fi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f5i_1;
+}
+signed int (*_X2f6FFi_i__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f6Fi_i__1)(signed int __param_0);
+}
+signed int (*_X2f7FFi_ii__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(signed int __param_0, signed int __param_1){
+    __attribute__ ((unused)) signed int (*_X10_retval_f7Fi_ii__1)(signed int __param_0, signed int __param_1);
+}
+signed int *_X2f8FPi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int *_X10_retval_f8Pi_1;
+}
+signed int *const _X2f9FPi_PiiPi__1(signed int *_X1aPi_1, signed int _X1bi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int *const _X10_retval_f9KPi_1;
+}
+signed int *(*_X3f10FFPi_ii__iPiPid__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1, double _X1yd_1))(signed int __param_0, signed int __param_1){
+    __attribute__ ((unused)) signed int *(*_X11_retval_f10FPi_ii__1)(signed int __param_0, signed int __param_1);
+    signed int *_X1xFPi_ii__2(signed int __anonymous_object0, signed int __anonymous_object1);
+    {
+        ((void)(_X11_retval_f10FPi_ii__1=_X1xFPi_ii__2) /* ?{} */);
+    }
+
+    return _X11_retval_f10FPi_ii__1;
+}
+signed int (*_X3f11FPA0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0i_1)[];
+}
+signed int (*_X3f12FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned long int )10)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned long int )10)];
+}
+signed int (*_X3f13FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned long int )10)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f13PA0A0i_1)[][((unsigned long int )10)];
+}
+signed int (*_X3f14FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned long int )10)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f14PA0A0i_1)[][((unsigned long int )10)];
+}
+signed int _X3f15Fi_iii__1(signed int _X1ai_1, signed int _X1bi_1, signed int _X1ci_1){
+    __attribute__ ((unused)) signed int _X11_retval_f15i_1;
+}
+const signed int _X4fredFi___1(){
+    __attribute__ ((unused)) const signed int _X12_retval_fredKi_1;
+    signed int *(*_X1xFPi_ii__2)(signed int __param_0, signed int __param_1);
+    signed int _X1ai_2;
+    signed int _X1bi_2;
+    {
+        signed int *(*_tmp_cp_ret4)(signed int __param_0, signed int __param_1);
+        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret4=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret4)));
+    }
+
+    const signed int _X2f1Fi_iPiPi__2(signed int _X1ai_2, signed int *_X1bPi_2, signed int *_X1cPi_2){
+        __attribute__ ((unused)) const signed int _X10_retval_f1Ki_2;
+    }
+    const signed int _X2f2Fi_iii__2(signed int _X1ai_2, signed int _X1bi_2, signed int _X1ci_2){
+        __attribute__ ((unused)) const signed int _X10_retval_f2Ki_2;
+    }
+}
Index: tests/.expect/KRfunctions.oast.arm64.txt
===================================================================
--- tests/.expect/KRfunctions.oast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ tests/.expect/KRfunctions.oast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,116 @@
+signed int _X2f0Fi_iPKii__1(signed int _X1ai_1, const signed int *_X1bPKi_1, signed int _X1ci_1){
+    __attribute__ ((unused)) signed int _X10_retval_f0i_1;
+}
+signed int _X2f1Fi_PiiPi__1(signed int *_X1aPi_1, __attribute__ ((unused)) signed int _X1bi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
+}
+signed int _X2f2Fi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
+}
+struct S {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    struct S _X4_retS1S_1;
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S1SS1S_autogen___1((&_X4_retS1S_1), (*_X4_dstS1S_1)));
+    }
+
+    return _X4_retS1S_1;
+}
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+signed int _X2f3Fi_S1SS1SPi__1(struct S _X1aS1S_1, struct S _X1bS1S_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f3i_1;
+    struct S _X1sS1S_2;
+}
+signed int _X2f4Fi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f4i_1;
+}
+signed int _X2f5Fi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int _X10_retval_f5i_1;
+}
+signed int (*_X2f6FFi_i__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(__attribute__ ((unused)) signed int __anonymous_object0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f6Fi_i__1)(signed int __anonymous_object1);
+}
+signed int (*_X2f7FFi_ii__iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))(signed int _X1ai_1, signed int _X1bi_1){
+    __attribute__ ((unused)) signed int (*_X10_retval_f7Fi_ii__1)(signed int _X1ai_1, signed int _X1bi_1);
+}
+signed int *_X2f8FPi_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int *_X10_retval_f8Pi_1;
+}
+signed int *const _X2f9FPi_PiiPi__1(signed int *_X1aPi_1, signed int _X1bi_1, signed int *_X1cPi_1){
+    __attribute__ ((unused)) signed int *const _X10_retval_f9KPi_1;
+}
+signed int *(*_X3f10FFPi_ii__iPiPid__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1, double _X1yd_1))(signed int _X1xi_1, signed int _X1yi_1){
+    __attribute__ ((unused)) signed int *(*_X11_retval_f10FPi_ii__1)(signed int _X1xi_1, signed int _X1yi_1);
+    signed int *_X1xFPi_ii__2(signed int __anonymous_object2, signed int __anonymous_object3);
+    {
+        ((void)(_X11_retval_f10FPi_ii__1=_X1xFPi_ii__2) /* ?{} */);
+    }
+
+    return _X11_retval_f10FPi_ii__1;
+}
+signed int (*_X3f11FPA0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0i_1)[];
+}
+signed int (*_X3f12FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned long int )10)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned long int )10)];
+}
+signed int (*_X3f13FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned long int )10)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f13PA0A0i_1)[][((unsigned long int )10)];
+}
+signed int (*_X3f14FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned long int )10)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f14PA0A0i_1)[][((unsigned long int )10)];
+}
+signed int _X3f15Fi_iii__1(signed int _X1ai_1, signed int _X1bi_1, signed int _X1ci_1){
+    __attribute__ ((unused)) signed int _X11_retval_f15i_1;
+}
+const signed int _X4fredFi___1(){
+    __attribute__ ((unused)) const signed int _X12_retval_fredKi_1;
+    signed int *(*_X1xFPi_ii__2)(signed int __anonymous_object4, signed int __anonymous_object5);
+    signed int _X1ai_2;
+    signed int _X1bi_2;
+    {
+        signed int *(*_tmp_cp_ret4)(signed int _X1xi_1, signed int _X1yi_1);
+        ((void)(_X1xFPi_ii__2=(((void)(_tmp_cp_ret4=_X3f10FFPi_ii__iPiPid__1(3, (&_X1ai_2), (&_X1bi_2), 3.5))) , _tmp_cp_ret4)));
+    }
+
+    const signed int _X2f1Fi_iPiPi__2(signed int _X1ai_2, signed int *_X1bPi_2, signed int *_X1cPi_2){
+        __attribute__ ((unused)) const signed int _X10_retval_f1Ki_2;
+    }
+    const signed int _X2f2Fi_iii__2(signed int _X1ai_2, signed int _X1bi_2, signed int _X1ci_2){
+        __attribute__ ((unused)) const signed int _X10_retval_f2Ki_2;
+    }
+}
Index: sts/.expect/attributes.arm64.txt
===================================================================
--- tests/.expect/attributes.arm64.txt	(revision 3233b91b36dc8cf1126178068a300f99697b4dec)
+++ 	(revision )
@@ -1,807 +1,0 @@
-signed int _X2laFi___1(){
-    __attribute__ ((unused)) signed int _X10_retval_lai_1;
-    {
-        L: __attribute__ ((unused)) ((void)1);
-    }
-
-}
-struct __attribute__ ((unused)) __anonymous0 {
-};
-static inline void _X12_constructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1);
-static inline void _X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1);
-static inline void _X11_destructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1);
-static inline struct __anonymous0 _X16_operator_assignFS12__anonymous0_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1);
-static inline void _X12_constructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1){
-}
-static inline void _X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1){
-}
-static inline void _X11_destructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1){
-}
-static inline struct __anonymous0 _X16_operator_assignFS12__anonymous0_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1){
-    struct __anonymous0 _X4_retS12__anonymous0_1;
-    {
-        ((void)_X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1((&_X4_retS12__anonymous0_1), (*_X4_dstS12__anonymous0_1)));
-    }
-
-    return _X4_retS12__anonymous0_1;
-}
-struct __attribute__ ((unused)) Agn1;
-struct __attribute__ ((unused)) Agn2 {
-};
-static inline void _X12_constructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1);
-static inline void _X12_constructorFv_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1);
-static inline void _X11_destructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1);
-static inline struct Agn2 _X16_operator_assignFS4Agn2_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1);
-static inline void _X12_constructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1){
-}
-static inline void _X12_constructorFv_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1){
-}
-static inline void _X11_destructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1){
-}
-static inline struct Agn2 _X16_operator_assignFS4Agn2_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1){
-    struct Agn2 _X4_retS4Agn2_1;
-    {
-        ((void)_X12_constructorFv_S4Agn2S4Agn2_autogen___1((&_X4_retS4Agn2_1), (*_X4_dstS4Agn2_1)));
-    }
-
-    return _X4_retS4Agn2_1;
-}
-enum __attribute__ ((unused)) __anonymous1 {
-    _X2E1KM12__anonymous1_1,
-};
-enum __attribute__ ((unused)) Agn3;
-enum __attribute__ ((packed)) Agn3 {
-    _X2E2KM4Agn3_1,
-};
-struct __attribute__ ((unused)) __anonymous2 {
-};
-static inline void _X12_constructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1);
-static inline void _X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1);
-static inline void _X11_destructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1);
-static inline struct __anonymous2 _X16_operator_assignFS12__anonymous2_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1);
-static inline void _X12_constructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1){
-}
-static inline void _X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1){
-}
-static inline void _X11_destructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1){
-}
-static inline struct __anonymous2 _X16_operator_assignFS12__anonymous2_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1){
-    struct __anonymous2 _X4_retS12__anonymous2_1;
-    {
-        ((void)_X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1((&_X4_retS12__anonymous2_1), (*_X4_dstS12__anonymous2_1)));
-    }
-
-    return _X4_retS12__anonymous2_1;
-}
-struct __attribute__ ((unused)) Agn4 {
-};
-static inline void _X12_constructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1);
-static inline void _X12_constructorFv_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1);
-static inline void _X11_destructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1);
-static inline struct Agn4 _X16_operator_assignFS4Agn4_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1);
-static inline void _X12_constructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1){
-}
-static inline void _X12_constructorFv_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1){
-}
-static inline void _X11_destructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1){
-}
-static inline struct Agn4 _X16_operator_assignFS4Agn4_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1){
-    struct Agn4 _X4_retS4Agn4_1;
-    {
-        ((void)_X12_constructorFv_S4Agn4S4Agn4_autogen___1((&_X4_retS4Agn4_1), (*_X4_dstS4Agn4_1)));
-    }
-
-    return _X4_retS4Agn4_1;
-}
-struct Fdl {
-    __attribute__ ((unused)) signed int _X2f1i_1;
-    __attribute__ ((unused)) signed int _X2f2i_1;
-    __attribute__ ((unused,unused)) signed int _X2f3i_1;
-    __attribute__ ((unused)) signed int _X2f4i_1;
-    __attribute__ ((unused,unused)) signed int _X2f5i_1;
-    __attribute__ ((used,packed)) signed int _X2f6i_1;
-    __attribute__ ((used,unused,unused)) signed int _X2f7i_1;
-    __attribute__ ((used,used,unused)) signed int _X2f8i_1;
-    __attribute__ ((unused,unused)) signed int *_X2f9Pi_1;
-};
-static inline void _X12_constructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1);
-static inline void _X12_constructorFv_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1);
-static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1);
-static inline struct Fdl _X16_operator_assignFS3Fdl_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1);
-static inline void _X12_constructorFv_S3Fdli_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1);
-static inline void _X12_constructorFv_S3Fdlii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1);
-static inline void _X12_constructorFv_S3Fdliii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1);
-static inline void _X12_constructorFv_S3Fdliiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1);
-static inline void _X12_constructorFv_S3Fdliiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1);
-static inline void _X12_constructorFv_S3Fdliiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1);
-static inline void _X12_constructorFv_S3Fdliiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1);
-static inline void _X12_constructorFv_S3Fdliiiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1);
-static inline void _X12_constructorFv_S3FdliiiiiiiiPi_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused,unused)) signed int *_X2f9Pi_1);
-static inline void _X12_constructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X4_srcS3Fdl_1._X2f1i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X4_srcS3Fdl_1._X2f2i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X4_srcS3Fdl_1._X2f3i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X4_srcS3Fdl_1._X2f4i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X4_srcS3Fdl_1._X2f5i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X4_srcS3Fdl_1._X2f6i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X4_srcS3Fdl_1._X2f7i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X4_srcS3Fdl_1._X2f8i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X4_srcS3Fdl_1._X2f9Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1) /* ^?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1) /* ^?{} */);
-    }
-
-}
-static inline struct Fdl _X16_operator_assignFS3Fdl_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1){
-    struct Fdl _X4_retS3Fdl_1;
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X4_srcS3Fdl_1._X2f1i_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X4_srcS3Fdl_1._X2f2i_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X4_srcS3Fdl_1._X2f3i_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X4_srcS3Fdl_1._X2f4i_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X4_srcS3Fdl_1._X2f5i_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X4_srcS3Fdl_1._X2f6i_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X4_srcS3Fdl_1._X2f7i_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X4_srcS3Fdl_1._X2f8i_1));
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X4_srcS3Fdl_1._X2f9Pi_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S3FdlS3Fdl_autogen___1((&_X4_retS3Fdl_1), (*_X4_dstS3Fdl_1)));
-    }
-
-    return _X4_retS3Fdl_1;
-}
-static inline void _X12_constructorFv_S3Fdli_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3Fdlii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3Fdliii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3Fdliiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3Fdliiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3Fdliiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3Fdliiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3Fdliiiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X2f8i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S3FdliiiiiiiiPi_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused,unused)) signed int *_X2f9Pi_1){
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X2f8i_1) /* ?{} */);
-    }
-
-    {
-        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X2f9Pi_1) /* ?{} */);
-    }
-
-}
-__attribute__ ((unused)) signed int _X1fFi___1() asm ( "xyz" );
-__attribute__ ((used,used)) const signed int _X3vd1Ki_1;
-__attribute__ ((used,unused)) const signed int _X3vd2Ki_1;
-__attribute__ ((used,used,used,used)) const signed int *_X3vd3PKi_1;
-__attribute__ ((used,used,unused,used,unused)) const signed int *_X3vd4PKi_1;
-__attribute__ ((used,used,used)) const signed int _X3vd5A0Ki_1[((unsigned long int )5)];
-__attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned long int )5)];
-__attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)();
-__attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)();
-__attribute__ ((unused,used)) signed int _X2f1Fi___1();
-__attribute__ ((unused)) signed int _X2f1Fi___1(){
-    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
-}
-__attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1();
-__attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(){
-    __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1;
-}
-__attribute__ ((unused,used,unused)) signed int (*_X2f3FPA0i_i__1(signed int __anonymous_object0))[];
-__attribute__ ((unused,unused)) signed int (*_X2f3FPA0i_i__1(signed int _X1pi_1))[]{
-    __attribute__ ((unused)) signed int (*_X10_retval_f3PA0i_1)[];
-}
-__attribute__ ((unused,used,unused)) signed int (*_X2f4FFi_i____1())(signed int __anonymous_object1);
-__attribute__ ((unused,unused)) signed int (*_X2f4FFi_i____1())(__attribute__ ((unused)) signed int __anonymous_object2){
-    __attribute__ ((unused)) signed int (*_X10_retval_f4Fi_i__1)(signed int __anonymous_object3);
-}
-signed int _X3vtrFi___1(){
-    __attribute__ ((unused)) signed int _X11_retval_vtri_1;
-    __attribute__ ((unused,unused,used)) signed int _X2t1i_2;
-    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t2PPi_2;
-    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused)) signed int _X2t5Fi___2();
-    __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2();
-}
-signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
-signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){
-    __attribute__ ((unused)) signed int _X12_retval_ipd1i_1;
-}
-signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
-signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
-    __attribute__ ((unused)) signed int _X12_retval_ipd2i_1;
-}
-signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
-signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
-    __attribute__ ((unused)) signed int _X12_retval_ipd3i_1;
-}
-signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());
-signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){
-    __attribute__ ((unused)) signed int _X12_retval_ipd4i_1;
-}
-signed int _X4tpr1Fi_i__1(__attribute__ ((unused,unused,unused)) signed int _X3Fooi_1);
-signed int _X4tpr2Fi_PPi__1(__attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X3FooPPi_1);
-signed int _X4tpr3Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *_X3FooPi_1);
-signed int _X4tpr4Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object4)(__attribute__ ((unused,unused)) signed int __anonymous_object5[((unsigned long int )5)]));
-signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
-signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
-signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object6)(__attribute__ ((unused)) signed int (*__anonymous_object7)(__attribute__ ((unused,unused)) signed int __anonymous_object8)));
-signed int _X2adFi___1(){
-    __attribute__ ((unused)) signed int _X10_retval_adi_1;
-    __attribute__ ((used,unused)) signed int _X3ad1i_2;
-    __attribute__ ((unused,unused,unused)) signed int *_X3ad2Pi_2;
-    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned long int )5)];
-    __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned long int )10)];
-    __attribute__ ((unused,unused,unused,unused,used)) signed int _X3ad5i_2;
-    __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2();
-    {
-        ((void)sizeof(__attribute__ ((unused,unused)) signed int ));
-    }
-
-    {
-        ((void)sizeof(__attribute__ ((unused,unused,unused,unused)) signed int **));
-    }
-
-    {
-        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int [((unsigned long int )5)]));
-    }
-
-    {
-        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (*)[((unsigned long int )10)]));
-    }
-
-    {
-        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
-    }
-
-    struct __attribute__ ((unused)) __anonymous3 {
-        signed int _X1ii_2;
-    };
-    inline void _X12_constructorFv_S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2){
-        {
-            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2) /* ?{} */);
-        }
-
-    }
-    inline void _X12_constructorFv_S12__anonymous3S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2, struct __anonymous3 _X4_srcS12__anonymous3_2){
-        {
-            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2=_X4_srcS12__anonymous3_2._X1ii_2) /* ?{} */);
-        }
-
-    }
-    inline void _X11_destructorFv_S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2){
-        {
-            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2) /* ^?{} */);
-        }
-
-    }
-    inline struct __anonymous3 _X16_operator_assignFS12__anonymous3_S12__anonymous3S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2, struct __anonymous3 _X4_srcS12__anonymous3_2){
-        struct __anonymous3 _X4_retS12__anonymous3_2;
-        {
-            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2=_X4_srcS12__anonymous3_2._X1ii_2));
-        }
-
-        {
-            ((void)_X12_constructorFv_S12__anonymous3S12__anonymous3_autogen___2((&_X4_retS12__anonymous3_2), (*_X4_dstS12__anonymous3_2)));
-        }
-
-        return _X4_retS12__anonymous3_2;
-    }
-    inline void _X12_constructorFv_S12__anonymous3i_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2, signed int _X1ii_2){
-        {
-            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2=_X1ii_2) /* ?{} */);
-        }
-
-    }
-    {
-        ((void)sizeof(struct __anonymous3 ));
-    }
-
-    enum __attribute__ ((unused)) __anonymous4 {
-        _X1RKM12__anonymous4_2,
-    };
-    inline void _X12_constructorFv_M12__anonymous4_intrinsic___2(__attribute__ ((unused)) enum __anonymous4 *_X4_dstM12__anonymous4_2){
-    }
-    inline void _X12_constructorFv_M12__anonymous4M12__anonymous4_intrinsic___2(enum __anonymous4 *_X4_dstM12__anonymous4_2, enum __anonymous4 _X4_srcM12__anonymous4_2){
-        {
-            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2) /* ?{} */);
-        }
-
-    }
-    inline void _X11_destructorFv_M12__anonymous4_intrinsic___2(__attribute__ ((unused)) enum __anonymous4 *_X4_dstM12__anonymous4_2){
-    }
-    inline enum __anonymous4 _X16_operator_assignFM12__anonymous4_M12__anonymous4M12__anonymous4_intrinsic___2(enum __anonymous4 *_X4_dstM12__anonymous4_2, enum __anonymous4 _X4_srcM12__anonymous4_2){
-        enum __anonymous4 _X4_retM12__anonymous4_2;
-        {
-            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
-        }
-
-        {
-            ((void)(_X4_retM12__anonymous4_2=(*_X4_dstM12__anonymous4_2)) /* ?{} */);
-        }
-
-        return _X4_retM12__anonymous4_2;
-    }
-    {
-        ((void)sizeof(enum __anonymous4 ));
-    }
-
-}
-signed int _X4apd1Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object9, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object10);
-signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object11, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object12);
-signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object13, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object14);
-signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)());
-signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __anonymous_object18), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object19)(__attribute__ ((unused)) signed int __anonymous_object20));
-signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object21)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object22)());
-signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object23)(__attribute__ ((unused)) signed int __anonymous_object24), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object25)(__attribute__ ((unused)) signed int __anonymous_object26));
-struct Vad {
-    __attribute__ ((unused)) signed int :4;
-    __attribute__ ((unused)) signed int :4;
-    __attribute__ ((unused,unused)) signed int :6;
-};
-static inline void _X12_constructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1);
-static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1);
-static inline void _X11_destructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1);
-static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1);
-static inline void _X12_constructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1){
-}
-static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1){
-}
-static inline void _X11_destructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1){
-}
-static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1){
-    struct Vad _X4_retS3Vad_1;
-    {
-        ((void)_X12_constructorFv_S3VadS3Vad_autogen___1((&_X4_retS3Vad_1), (*_X4_dstS3Vad_1)));
-    }
-
-    return _X4_retS3Vad_1;
-}
Index: tests/.expect/attributes.nast.arm64.txt
===================================================================
--- tests/.expect/attributes.nast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ tests/.expect/attributes.nast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,807 @@
+signed int _X2laFi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_lai_1;
+    {
+        L: __attribute__ ((unused)) ((void)1);
+    }
+
+}
+struct __attribute__ ((unused)) __anonymous0 {
+};
+static inline void _X12_constructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1);
+static inline void _X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1);
+static inline void _X11_destructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1);
+static inline struct __anonymous0 _X16_operator_assignFS12__anonymous0_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1);
+static inline void _X12_constructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1){
+}
+static inline void _X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1){
+}
+static inline void _X11_destructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1){
+}
+static inline struct __anonymous0 _X16_operator_assignFS12__anonymous0_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1){
+    struct __anonymous0 _X4_retS12__anonymous0_1;
+    {
+        ((void)_X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1((&_X4_retS12__anonymous0_1), (*_X4_dstS12__anonymous0_1)));
+    }
+
+    return _X4_retS12__anonymous0_1;
+}
+struct __attribute__ ((unused)) Agn1;
+struct __attribute__ ((unused)) Agn2 {
+};
+static inline void _X12_constructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1);
+static inline void _X12_constructorFv_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1);
+static inline void _X11_destructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1);
+static inline struct Agn2 _X16_operator_assignFS4Agn2_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1);
+static inline void _X12_constructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1){
+}
+static inline void _X12_constructorFv_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1){
+}
+static inline void _X11_destructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1){
+}
+static inline struct Agn2 _X16_operator_assignFS4Agn2_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1){
+    struct Agn2 _X4_retS4Agn2_1;
+    {
+        ((void)_X12_constructorFv_S4Agn2S4Agn2_autogen___1((&_X4_retS4Agn2_1), (*_X4_dstS4Agn2_1)));
+    }
+
+    return _X4_retS4Agn2_1;
+}
+enum __attribute__ ((unused)) __anonymous1 {
+    _X2E1KM12__anonymous1_1,
+};
+enum __attribute__ ((unused)) Agn3;
+enum __attribute__ ((packed)) Agn3 {
+    _X2E2KM4Agn3_1,
+};
+struct __attribute__ ((unused)) __anonymous2 {
+};
+static inline void _X12_constructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1);
+static inline void _X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1);
+static inline void _X11_destructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1);
+static inline struct __anonymous2 _X16_operator_assignFS12__anonymous2_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1);
+static inline void _X12_constructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1){
+}
+static inline void _X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1){
+}
+static inline void _X11_destructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1){
+}
+static inline struct __anonymous2 _X16_operator_assignFS12__anonymous2_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1){
+    struct __anonymous2 _X4_retS12__anonymous2_1;
+    {
+        ((void)_X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1((&_X4_retS12__anonymous2_1), (*_X4_dstS12__anonymous2_1)));
+    }
+
+    return _X4_retS12__anonymous2_1;
+}
+struct __attribute__ ((unused)) Agn4 {
+};
+static inline void _X12_constructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1);
+static inline void _X12_constructorFv_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1);
+static inline void _X11_destructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1);
+static inline struct Agn4 _X16_operator_assignFS4Agn4_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1);
+static inline void _X12_constructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1){
+}
+static inline void _X12_constructorFv_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1){
+}
+static inline void _X11_destructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1){
+}
+static inline struct Agn4 _X16_operator_assignFS4Agn4_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1){
+    struct Agn4 _X4_retS4Agn4_1;
+    {
+        ((void)_X12_constructorFv_S4Agn4S4Agn4_autogen___1((&_X4_retS4Agn4_1), (*_X4_dstS4Agn4_1)));
+    }
+
+    return _X4_retS4Agn4_1;
+}
+struct Fdl {
+    __attribute__ ((unused)) signed int _X2f1i_1;
+    __attribute__ ((unused)) signed int _X2f2i_1;
+    __attribute__ ((unused,unused)) signed int _X2f3i_1;
+    __attribute__ ((unused)) signed int _X2f4i_1;
+    __attribute__ ((unused,unused)) signed int _X2f5i_1;
+    __attribute__ ((used,packed)) signed int _X2f6i_1;
+    __attribute__ ((used,unused,unused)) signed int _X2f7i_1;
+    __attribute__ ((used,used,unused)) signed int _X2f8i_1;
+    __attribute__ ((unused,unused)) signed int *_X2f9Pi_1;
+};
+static inline void _X12_constructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1);
+static inline void _X12_constructorFv_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1);
+static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1);
+static inline struct Fdl _X16_operator_assignFS3Fdl_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1);
+static inline void _X12_constructorFv_S3Fdli_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1);
+static inline void _X12_constructorFv_S3Fdlii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1);
+static inline void _X12_constructorFv_S3Fdliii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1);
+static inline void _X12_constructorFv_S3Fdliiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1);
+static inline void _X12_constructorFv_S3Fdliiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1);
+static inline void _X12_constructorFv_S3Fdliiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1);
+static inline void _X12_constructorFv_S3Fdliiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1);
+static inline void _X12_constructorFv_S3Fdliiiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPi_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused,unused)) signed int *_X2f9Pi_1);
+static inline void _X12_constructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X4_srcS3Fdl_1._X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X4_srcS3Fdl_1._X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X4_srcS3Fdl_1._X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X4_srcS3Fdl_1._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X4_srcS3Fdl_1._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X4_srcS3Fdl_1._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X4_srcS3Fdl_1._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X4_srcS3Fdl_1._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X4_srcS3Fdl_1._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1) /* ^?{} */);
+    }
+
+}
+static inline struct Fdl _X16_operator_assignFS3Fdl_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1){
+    struct Fdl _X4_retS3Fdl_1;
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X4_srcS3Fdl_1._X2f1i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X4_srcS3Fdl_1._X2f2i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X4_srcS3Fdl_1._X2f3i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X4_srcS3Fdl_1._X2f4i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X4_srcS3Fdl_1._X2f5i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X4_srcS3Fdl_1._X2f6i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X4_srcS3Fdl_1._X2f7i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X4_srcS3Fdl_1._X2f8i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X4_srcS3Fdl_1._X2f9Pi_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S3FdlS3Fdl_autogen___1((&_X4_retS3Fdl_1), (*_X4_dstS3Fdl_1)));
+    }
+
+    return _X4_retS3Fdl_1;
+}
+static inline void _X12_constructorFv_S3Fdli_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdlii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPi_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused,unused)) signed int *_X2f9Pi_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X2f9Pi_1) /* ?{} */);
+    }
+
+}
+__attribute__ ((unused)) signed int _X1fFi___1() asm ( "xyz" );
+__attribute__ ((used,used)) const signed int _X3vd1Ki_1;
+__attribute__ ((used,unused)) const signed int _X3vd2Ki_1;
+__attribute__ ((used,used,used,used)) const signed int *_X3vd3PKi_1;
+__attribute__ ((used,used,unused,used,unused)) const signed int *_X3vd4PKi_1;
+__attribute__ ((used,used,used)) const signed int _X3vd5A0Ki_1[((unsigned long int )5)];
+__attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned long int )5)];
+__attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)();
+__attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)();
+__attribute__ ((unused,used)) signed int _X2f1Fi___1();
+__attribute__ ((unused)) signed int _X2f1Fi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
+}
+__attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1();
+__attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(){
+    __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1;
+}
+__attribute__ ((unused,used,unused)) signed int (*_X2f3FPA0i_i__1(signed int __anonymous_object0))[];
+__attribute__ ((unused,unused)) signed int (*_X2f3FPA0i_i__1(signed int _X1pi_1))[]{
+    __attribute__ ((unused)) signed int (*_X10_retval_f3PA0i_1)[];
+}
+__attribute__ ((unused,used,unused)) signed int (*_X2f4FFi_i____1())(signed int __param_0);
+__attribute__ ((unused,unused)) signed int (*_X2f4FFi_i____1())(signed int __param_0){
+    __attribute__ ((unused)) signed int (*_X10_retval_f4Fi_i__1)(signed int __param_0);
+}
+signed int _X3vtrFi___1(){
+    __attribute__ ((unused)) signed int _X11_retval_vtri_1;
+    __attribute__ ((unused,unused,used)) signed int _X2t1i_2;
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t2PPi_2;
+    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned long int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)];
+    __attribute__ ((unused,unused,unused)) signed int _X2t5Fi___2();
+    __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2();
+}
+signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
+signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){
+    __attribute__ ((unused)) signed int _X12_retval_ipd1i_1;
+}
+signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
+signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
+    __attribute__ ((unused)) signed int _X12_retval_ipd2i_1;
+}
+signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
+signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
+    __attribute__ ((unused)) signed int _X12_retval_ipd3i_1;
+}
+signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());
+signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){
+    __attribute__ ((unused)) signed int _X12_retval_ipd4i_1;
+}
+signed int _X4tpr1Fi_i__1(__attribute__ ((unused,unused,unused)) signed int _X3Fooi_1);
+signed int _X4tpr2Fi_PPi__1(__attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X3FooPPi_1);
+signed int _X4tpr3Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *_X3FooPi_1);
+signed int _X4tpr4Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object1)(signed int __param_0[((unsigned long int )5)]));
+signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
+signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
+signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object2)(signed int (*__param_0)(signed int __param_0)));
+signed int _X2adFi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_adi_1;
+    __attribute__ ((used,unused)) signed int _X3ad1i_2;
+    __attribute__ ((unused,unused,unused)) signed int *_X3ad2Pi_2;
+    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned long int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned long int )10)];
+    __attribute__ ((unused,unused,unused,unused,used)) signed int _X3ad5i_2;
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2();
+    {
+        ((void)sizeof(__attribute__ ((unused,unused)) signed int ));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused,unused)) signed int **));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int [5]));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (*)[10]));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
+    }
+
+    struct __attribute__ ((unused)) __anonymous3 {
+        signed int _X1ii_2;
+    };
+    inline void _X12_constructorFv_S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2){
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S12__anonymous3S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2, struct __anonymous3 _X4_srcS12__anonymous3_2){
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2=_X4_srcS12__anonymous3_2._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X11_destructorFv_S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2){
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2) /* ^?{} */);
+        }
+
+    }
+    inline struct __anonymous3 _X16_operator_assignFS12__anonymous3_S12__anonymous3S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2, struct __anonymous3 _X4_srcS12__anonymous3_2){
+        struct __anonymous3 _X4_retS12__anonymous3_2;
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2=_X4_srcS12__anonymous3_2._X1ii_2));
+        }
+
+        {
+            ((void)_X12_constructorFv_S12__anonymous3S12__anonymous3_autogen___2((&_X4_retS12__anonymous3_2), (*_X4_dstS12__anonymous3_2)));
+        }
+
+        return _X4_retS12__anonymous3_2;
+    }
+    inline void _X12_constructorFv_S12__anonymous3i_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2, signed int _X1ii_2){
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2=_X1ii_2) /* ?{} */);
+        }
+
+    }
+    {
+        ((void)sizeof(struct __anonymous3 ));
+    }
+
+    enum __attribute__ ((unused)) __anonymous4 {
+        _X1RKM12__anonymous4_2,
+    };
+    inline void _X12_constructorFv_M12__anonymous4_intrinsic___2(__attribute__ ((unused)) enum __anonymous4 *_X4_dstM12__anonymous4_2){
+    }
+    inline void _X12_constructorFv_M12__anonymous4M12__anonymous4_intrinsic___2(enum __anonymous4 *_X4_dstM12__anonymous4_2, enum __anonymous4 _X4_srcM12__anonymous4_2){
+        {
+            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2) /* ?{} */);
+        }
+
+    }
+    inline void _X11_destructorFv_M12__anonymous4_intrinsic___2(__attribute__ ((unused)) enum __anonymous4 *_X4_dstM12__anonymous4_2){
+    }
+    inline enum __anonymous4 _X16_operator_assignFM12__anonymous4_M12__anonymous4M12__anonymous4_intrinsic___2(enum __anonymous4 *_X4_dstM12__anonymous4_2, enum __anonymous4 _X4_srcM12__anonymous4_2){
+        enum __anonymous4 _X4_retM12__anonymous4_2;
+        {
+            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
+        }
+
+        {
+            ((void)(_X4_retM12__anonymous4_2=(*_X4_dstM12__anonymous4_2)) /* ?{} */);
+        }
+
+        return _X4_retM12__anonymous4_2;
+    }
+    {
+        ((void)sizeof(enum __anonymous4 ));
+    }
+
+}
+signed int _X4apd1Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object3, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object4);
+signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object5, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object6);
+signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object7, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object8);
+signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object9)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object10)());
+signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object11)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object12)(signed int __param_0));
+signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object13)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object14)());
+signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)(signed int __param_0), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)(signed int __param_0));
+struct Vad {
+    __attribute__ ((unused)) signed int :4;
+    __attribute__ ((unused)) signed int :4;
+    __attribute__ ((unused,unused)) signed int :6;
+};
+static inline void _X12_constructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1);
+static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1);
+static inline void _X11_destructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1);
+static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1);
+static inline void _X12_constructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1){
+}
+static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1){
+}
+static inline void _X11_destructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1){
+}
+static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1){
+    struct Vad _X4_retS3Vad_1;
+    {
+        ((void)_X12_constructorFv_S3VadS3Vad_autogen___1((&_X4_retS3Vad_1), (*_X4_dstS3Vad_1)));
+    }
+
+    return _X4_retS3Vad_1;
+}
Index: tests/.expect/attributes.oast.arm64.txt
===================================================================
--- tests/.expect/attributes.oast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ tests/.expect/attributes.oast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,807 @@
+signed int _X2laFi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_lai_1;
+    {
+        L: __attribute__ ((unused)) ((void)1);
+    }
+
+}
+struct __attribute__ ((unused)) __anonymous0 {
+};
+static inline void _X12_constructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1);
+static inline void _X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1);
+static inline void _X11_destructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1);
+static inline struct __anonymous0 _X16_operator_assignFS12__anonymous0_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1);
+static inline void _X12_constructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1){
+}
+static inline void _X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1){
+}
+static inline void _X11_destructorFv_S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1){
+}
+static inline struct __anonymous0 _X16_operator_assignFS12__anonymous0_S12__anonymous0S12__anonymous0_autogen___1(struct __anonymous0 *_X4_dstS12__anonymous0_1, struct __anonymous0 _X4_srcS12__anonymous0_1){
+    struct __anonymous0 _X4_retS12__anonymous0_1;
+    {
+        ((void)_X12_constructorFv_S12__anonymous0S12__anonymous0_autogen___1((&_X4_retS12__anonymous0_1), (*_X4_dstS12__anonymous0_1)));
+    }
+
+    return _X4_retS12__anonymous0_1;
+}
+struct __attribute__ ((unused)) Agn1;
+struct __attribute__ ((unused)) Agn2 {
+};
+static inline void _X12_constructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1);
+static inline void _X12_constructorFv_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1);
+static inline void _X11_destructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1);
+static inline struct Agn2 _X16_operator_assignFS4Agn2_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1);
+static inline void _X12_constructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1){
+}
+static inline void _X12_constructorFv_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1){
+}
+static inline void _X11_destructorFv_S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1){
+}
+static inline struct Agn2 _X16_operator_assignFS4Agn2_S4Agn2S4Agn2_autogen___1(struct Agn2 *_X4_dstS4Agn2_1, struct Agn2 _X4_srcS4Agn2_1){
+    struct Agn2 _X4_retS4Agn2_1;
+    {
+        ((void)_X12_constructorFv_S4Agn2S4Agn2_autogen___1((&_X4_retS4Agn2_1), (*_X4_dstS4Agn2_1)));
+    }
+
+    return _X4_retS4Agn2_1;
+}
+enum __attribute__ ((unused)) __anonymous1 {
+    _X2E1KM12__anonymous1_1,
+};
+enum __attribute__ ((unused)) Agn3;
+enum __attribute__ ((packed)) Agn3 {
+    _X2E2KM4Agn3_1,
+};
+struct __attribute__ ((unused)) __anonymous2 {
+};
+static inline void _X12_constructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1);
+static inline void _X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1);
+static inline void _X11_destructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1);
+static inline struct __anonymous2 _X16_operator_assignFS12__anonymous2_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1);
+static inline void _X12_constructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1){
+}
+static inline void _X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1){
+}
+static inline void _X11_destructorFv_S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1){
+}
+static inline struct __anonymous2 _X16_operator_assignFS12__anonymous2_S12__anonymous2S12__anonymous2_autogen___1(struct __anonymous2 *_X4_dstS12__anonymous2_1, struct __anonymous2 _X4_srcS12__anonymous2_1){
+    struct __anonymous2 _X4_retS12__anonymous2_1;
+    {
+        ((void)_X12_constructorFv_S12__anonymous2S12__anonymous2_autogen___1((&_X4_retS12__anonymous2_1), (*_X4_dstS12__anonymous2_1)));
+    }
+
+    return _X4_retS12__anonymous2_1;
+}
+struct __attribute__ ((unused)) Agn4 {
+};
+static inline void _X12_constructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1);
+static inline void _X12_constructorFv_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1);
+static inline void _X11_destructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1);
+static inline struct Agn4 _X16_operator_assignFS4Agn4_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1);
+static inline void _X12_constructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1){
+}
+static inline void _X12_constructorFv_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1){
+}
+static inline void _X11_destructorFv_S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1){
+}
+static inline struct Agn4 _X16_operator_assignFS4Agn4_S4Agn4S4Agn4_autogen___1(struct Agn4 *_X4_dstS4Agn4_1, struct Agn4 _X4_srcS4Agn4_1){
+    struct Agn4 _X4_retS4Agn4_1;
+    {
+        ((void)_X12_constructorFv_S4Agn4S4Agn4_autogen___1((&_X4_retS4Agn4_1), (*_X4_dstS4Agn4_1)));
+    }
+
+    return _X4_retS4Agn4_1;
+}
+struct Fdl {
+    __attribute__ ((unused)) signed int _X2f1i_1;
+    __attribute__ ((unused)) signed int _X2f2i_1;
+    __attribute__ ((unused,unused)) signed int _X2f3i_1;
+    __attribute__ ((unused)) signed int _X2f4i_1;
+    __attribute__ ((unused,unused)) signed int _X2f5i_1;
+    __attribute__ ((used,packed)) signed int _X2f6i_1;
+    __attribute__ ((used,unused,unused)) signed int _X2f7i_1;
+    __attribute__ ((used,used,unused)) signed int _X2f8i_1;
+    __attribute__ ((unused,unused)) signed int *_X2f9Pi_1;
+};
+static inline void _X12_constructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1);
+static inline void _X12_constructorFv_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1);
+static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1);
+static inline struct Fdl _X16_operator_assignFS3Fdl_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1);
+static inline void _X12_constructorFv_S3Fdli_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1);
+static inline void _X12_constructorFv_S3Fdlii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1);
+static inline void _X12_constructorFv_S3Fdliii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1);
+static inline void _X12_constructorFv_S3Fdliiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1);
+static inline void _X12_constructorFv_S3Fdliiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1);
+static inline void _X12_constructorFv_S3Fdliiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1);
+static inline void _X12_constructorFv_S3Fdliiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1);
+static inline void _X12_constructorFv_S3Fdliiiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1);
+static inline void _X12_constructorFv_S3FdliiiiiiiiPi_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused,unused)) signed int *_X2f9Pi_1);
+static inline void _X12_constructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X4_srcS3Fdl_1._X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X4_srcS3Fdl_1._X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X4_srcS3Fdl_1._X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X4_srcS3Fdl_1._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X4_srcS3Fdl_1._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X4_srcS3Fdl_1._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X4_srcS3Fdl_1._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X4_srcS3Fdl_1._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X4_srcS3Fdl_1._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1) /* ^?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1) /* ^?{} */);
+    }
+
+}
+static inline struct Fdl _X16_operator_assignFS3Fdl_S3FdlS3Fdl_autogen___1(struct Fdl *_X4_dstS3Fdl_1, struct Fdl _X4_srcS3Fdl_1){
+    struct Fdl _X4_retS3Fdl_1;
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X4_srcS3Fdl_1._X2f1i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X4_srcS3Fdl_1._X2f2i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X4_srcS3Fdl_1._X2f3i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X4_srcS3Fdl_1._X2f4i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X4_srcS3Fdl_1._X2f5i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X4_srcS3Fdl_1._X2f6i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X4_srcS3Fdl_1._X2f7i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X4_srcS3Fdl_1._X2f8i_1));
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X4_srcS3Fdl_1._X2f9Pi_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S3FdlS3Fdl_autogen___1((&_X4_retS3Fdl_1), (*_X4_dstS3Fdl_1)));
+    }
+
+    return _X4_retS3Fdl_1;
+}
+static inline void _X12_constructorFv_S3Fdli_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdlii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3Fdliiiiiiii_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S3FdliiiiiiiiPi_autogen___1(struct Fdl *_X4_dstS3Fdl_1, __attribute__ ((unused)) signed int _X2f1i_1, __attribute__ ((unused)) signed int _X2f2i_1, __attribute__ ((unused,unused)) signed int _X2f3i_1, __attribute__ ((unused)) signed int _X2f4i_1, __attribute__ ((unused,unused)) signed int _X2f5i_1, signed int _X2f6i_1, __attribute__ ((unused,unused)) signed int _X2f7i_1, __attribute__ ((unused)) signed int _X2f8i_1, __attribute__ ((unused,unused)) signed int *_X2f9Pi_1){
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f1i_1=_X2f1i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f2i_1=_X2f2i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f3i_1=_X2f3i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f4i_1=_X2f4i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f5i_1=_X2f5i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f6i_1=_X2f6i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f7i_1=_X2f7i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f8i_1=_X2f8i_1) /* ?{} */);
+    }
+
+    {
+        ((void)((*_X4_dstS3Fdl_1)._X2f9Pi_1=_X2f9Pi_1) /* ?{} */);
+    }
+
+}
+__attribute__ ((unused)) signed int _X1fFi___1() asm ( "xyz" );
+__attribute__ ((used,used)) const signed int _X3vd1Ki_1;
+__attribute__ ((used,unused)) const signed int _X3vd2Ki_1;
+__attribute__ ((used,used,used,used)) const signed int *_X3vd3PKi_1;
+__attribute__ ((used,used,unused,used,unused)) const signed int *_X3vd4PKi_1;
+__attribute__ ((used,used,used)) const signed int _X3vd5A0Ki_1[((unsigned long int )5)];
+__attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned long int )5)];
+__attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)();
+__attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)();
+__attribute__ ((unused,used)) signed int _X2f1Fi___1();
+__attribute__ ((unused)) signed int _X2f1Fi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
+}
+__attribute__ ((unused,unused,unused,used)) signed int **const _X2f2FPPi___1();
+__attribute__ ((unused,unused,unused)) signed int **const _X2f2FPPi___1(){
+    __attribute__ ((unused)) signed int **const _X10_retval_f2KPPi_1;
+}
+__attribute__ ((unused,used,unused)) signed int (*_X2f3FPA0i_i__1(signed int __anonymous_object0))[];
+__attribute__ ((unused,unused)) signed int (*_X2f3FPA0i_i__1(signed int _X1pi_1))[]{
+    __attribute__ ((unused)) signed int (*_X10_retval_f3PA0i_1)[];
+}
+__attribute__ ((unused,used,unused)) signed int (*_X2f4FFi_i____1())(signed int __anonymous_object1);
+__attribute__ ((unused,unused)) signed int (*_X2f4FFi_i____1())(__attribute__ ((unused)) signed int __anonymous_object2){
+    __attribute__ ((unused)) signed int (*_X10_retval_f4Fi_i__1)(signed int __anonymous_object3);
+}
+signed int _X3vtrFi___1(){
+    __attribute__ ((unused)) signed int _X11_retval_vtri_1;
+    __attribute__ ((unused,unused,used)) signed int _X2t1i_2;
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t2PPi_2;
+    __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned long int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned long int )5)];
+    __attribute__ ((unused,unused,unused)) signed int _X2t5Fi___2();
+    __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2();
+}
+signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1);
+signed int _X4ipd1Fi_ii__1(__attribute__ ((unused,unused,unused)) signed int _X1pi_1, __attribute__ ((unused,unused,unused)) signed int _X1qi_1){
+    __attribute__ ((unused)) signed int _X12_retval_ipd1i_1;
+}
+signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
+signed int _X4ipd2Fi_PiPi__1(__attribute__ ((unused,unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
+    __attribute__ ((unused)) signed int _X12_retval_ipd2i_1;
+}
+signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1);
+signed int _X4ipd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *_X1pPi_1, __attribute__ ((unused,unused,unused)) signed int *_X1qPi_1){
+    __attribute__ ((unused)) signed int _X12_retval_ipd3i_1;
+}
+signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)());
+signed int _X4ipd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X1pFi___1)(), __attribute__ ((unused,unused,unused)) signed int (*_X1qFi___1)()){
+    __attribute__ ((unused)) signed int _X12_retval_ipd4i_1;
+}
+signed int _X4tpr1Fi_i__1(__attribute__ ((unused,unused,unused)) signed int _X3Fooi_1);
+signed int _X4tpr2Fi_PPi__1(__attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X3FooPPi_1);
+signed int _X4tpr3Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *_X3FooPi_1);
+signed int _X4tpr4Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object4)(__attribute__ ((unused,unused)) signed int __anonymous_object5[((unsigned long int )5)]));
+signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
+signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)());
+signed int _X4tpr7Fi_Fi_Fi_i____1(__attribute__ ((unused,unused)) signed int (*__anonymous_object6)(__attribute__ ((unused)) signed int (*__anonymous_object7)(__attribute__ ((unused,unused)) signed int __anonymous_object8)));
+signed int _X2adFi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_adi_1;
+    __attribute__ ((used,unused)) signed int _X3ad1i_2;
+    __attribute__ ((unused,unused,unused)) signed int *_X3ad2Pi_2;
+    __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned long int )5)];
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned long int )10)];
+    __attribute__ ((unused,unused,unused,unused,used)) signed int _X3ad5i_2;
+    __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2();
+    {
+        ((void)sizeof(__attribute__ ((unused,unused)) signed int ));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused,unused)) signed int **));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int [((unsigned long int )5)]));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (*)[((unsigned long int )10)]));
+    }
+
+    {
+        ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
+    }
+
+    struct __attribute__ ((unused)) __anonymous3 {
+        signed int _X1ii_2;
+    };
+    inline void _X12_constructorFv_S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2){
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X12_constructorFv_S12__anonymous3S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2, struct __anonymous3 _X4_srcS12__anonymous3_2){
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2=_X4_srcS12__anonymous3_2._X1ii_2) /* ?{} */);
+        }
+
+    }
+    inline void _X11_destructorFv_S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2){
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2) /* ^?{} */);
+        }
+
+    }
+    inline struct __anonymous3 _X16_operator_assignFS12__anonymous3_S12__anonymous3S12__anonymous3_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2, struct __anonymous3 _X4_srcS12__anonymous3_2){
+        struct __anonymous3 _X4_retS12__anonymous3_2;
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2=_X4_srcS12__anonymous3_2._X1ii_2));
+        }
+
+        {
+            ((void)_X12_constructorFv_S12__anonymous3S12__anonymous3_autogen___2((&_X4_retS12__anonymous3_2), (*_X4_dstS12__anonymous3_2)));
+        }
+
+        return _X4_retS12__anonymous3_2;
+    }
+    inline void _X12_constructorFv_S12__anonymous3i_autogen___2(struct __anonymous3 *_X4_dstS12__anonymous3_2, signed int _X1ii_2){
+        {
+            ((void)((*_X4_dstS12__anonymous3_2)._X1ii_2=_X1ii_2) /* ?{} */);
+        }
+
+    }
+    {
+        ((void)sizeof(struct __anonymous3 ));
+    }
+
+    enum __attribute__ ((unused)) __anonymous4 {
+        _X1RKM12__anonymous4_2,
+    };
+    inline void _X12_constructorFv_M12__anonymous4_intrinsic___2(__attribute__ ((unused)) enum __anonymous4 *_X4_dstM12__anonymous4_2){
+    }
+    inline void _X12_constructorFv_M12__anonymous4M12__anonymous4_intrinsic___2(enum __anonymous4 *_X4_dstM12__anonymous4_2, enum __anonymous4 _X4_srcM12__anonymous4_2){
+        {
+            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2) /* ?{} */);
+        }
+
+    }
+    inline void _X11_destructorFv_M12__anonymous4_intrinsic___2(__attribute__ ((unused)) enum __anonymous4 *_X4_dstM12__anonymous4_2){
+    }
+    inline enum __anonymous4 _X16_operator_assignFM12__anonymous4_M12__anonymous4M12__anonymous4_intrinsic___2(enum __anonymous4 *_X4_dstM12__anonymous4_2, enum __anonymous4 _X4_srcM12__anonymous4_2){
+        enum __anonymous4 _X4_retM12__anonymous4_2;
+        {
+            ((void)((*_X4_dstM12__anonymous4_2)=_X4_srcM12__anonymous4_2));
+        }
+
+        {
+            ((void)(_X4_retM12__anonymous4_2=(*_X4_dstM12__anonymous4_2)) /* ?{} */);
+        }
+
+        return _X4_retM12__anonymous4_2;
+    }
+    {
+        ((void)sizeof(enum __anonymous4 ));
+    }
+
+}
+signed int _X4apd1Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object9, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object10);
+signed int _X4apd2Fi_PPiPPi__1(__attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object11, __attribute__ ((unused,unused,unused,unused)) signed int **__anonymous_object12);
+signed int _X4apd3Fi_PiPi__1(__attribute__ ((unused,unused,unused)) signed int *__anonymous_object13, __attribute__ ((unused,unused,unused)) signed int *__anonymous_object14);
+signed int _X4apd4Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object15)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object16)());
+signed int _X4apd5Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object17)(__attribute__ ((unused)) signed int __anonymous_object18), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object19)(__attribute__ ((unused)) signed int __anonymous_object20));
+signed int _X4apd6Fi_Fi__Fi____1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object21)(), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object22)());
+signed int _X4apd7Fi_Fi_i_Fi_i___1(__attribute__ ((unused,unused,unused)) signed int (*__anonymous_object23)(__attribute__ ((unused)) signed int __anonymous_object24), __attribute__ ((unused,unused,unused)) signed int (*__anonymous_object25)(__attribute__ ((unused)) signed int __anonymous_object26));
+struct Vad {
+    __attribute__ ((unused)) signed int :4;
+    __attribute__ ((unused)) signed int :4;
+    __attribute__ ((unused,unused)) signed int :6;
+};
+static inline void _X12_constructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1);
+static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1);
+static inline void _X11_destructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1);
+static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1);
+static inline void _X12_constructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1){
+}
+static inline void _X12_constructorFv_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1){
+}
+static inline void _X11_destructorFv_S3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1){
+}
+static inline struct Vad _X16_operator_assignFS3Vad_S3VadS3Vad_autogen___1(struct Vad *_X4_dstS3Vad_1, struct Vad _X4_srcS3Vad_1){
+    struct Vad _X4_retS3Vad_1;
+    {
+        ((void)_X12_constructorFv_S3VadS3Vad_autogen___1((&_X4_retS3Vad_1), (*_X4_dstS3Vad_1)));
+    }
+
+    return _X4_retS3Vad_1;
+}
Index: sts/.expect/functions.arm64.txt
===================================================================
--- tests/.expect/functions.arm64.txt	(revision 3233b91b36dc8cf1126178068a300f99697b4dec)
+++ 	(revision )
@@ -1,283 +1,0 @@
-void _X1hFv___1(void){
-}
-signed int _X1fFi_Fi__Fi_i_Fi__Fi_i_Fv____1(__attribute__ ((unused)) signed int (*__anonymous_object0)(void), __attribute__ ((unused)) signed int (*__anonymous_object1)(signed int __anonymous_object2), __attribute__ ((unused)) signed int (*__anonymous_object3)(void), __attribute__ ((unused)) signed int (*__anonymous_object4)(signed int __anonymous_object5), void (*_X1gFv___1)(void)){
-    __attribute__ ((unused)) signed int _X9_retval_fi_1;
-    {
-        ((void)(*_X1gFv___1)());
-    }
-
-    {
-        ((void)_X1gFv___1());
-    }
-
-    {
-        ((void)(_X1gFv___1=_X1hFv___1));
-    }
-
-}
-signed int _X2f1Fi___1(){
-    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
-}
-signed int _X2f2Fi___1(){
-    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
-}
-signed int (*_X2f3FFi_____1())(){
-    __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)();
-}
-signed int *_X2f4FPi___1(){
-    __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1;
-}
-signed int (*_X2f5FFi_____1())(){
-    __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)();
-}
-signed int *_X2f6FPi___1(){
-    __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1;
-}
-signed int *_X2f7FPi___1(){
-    __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1;
-}
-signed int **_X2f8FPPi___1(){
-    __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1;
-}
-signed int *const *_X2f9FPKPi___1(){
-    __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1;
-}
-signed int (*_X3f10FPA0i___1())[]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[];
-}
-signed int (*_X3f11FPA0A0i___1())[][((unsigned long int )3)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned long int )3)];
-}
-signed int (*_X3f12FPA0A0i___1())[][((unsigned long int )3)]{
-    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned long int )3)];
-}
-signed int _X4fII1Fi_i__1(signed int _X1ii_1){
-    __attribute__ ((unused)) signed int _X12_retval_fII1i_1;
-}
-const signed int _X4fII2Fi_i__1(signed int _X1ii_1){
-    __attribute__ ((unused)) const signed int _X12_retval_fII2Ki_1;
-}
-extern signed int _X4fII3Fi_i__1(signed int _X1ii_1){
-    __attribute__ ((unused)) signed int _X12_retval_fII3i_1;
-}
-extern const signed int _X4fII4Fi_i__1(signed int _X1ii_1){
-    __attribute__ ((unused)) const signed int _X12_retval_fII4Ki_1;
-}
-signed int *_X4fII5FPi___1(){
-    __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1;
-}
-signed int *const _X4fII6FPi___1(){
-    __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1;
-}
-const signed long int *_X4fII7FPKl___1(){
-    __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1;
-}
-static const signed long int *_X4fII8FPKl___1(){
-    __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1;
-}
-static const signed long int *_X4fII9FPKl___1(){
-    __attribute__ ((unused)) const signed long int *_X12_retval_fII9PKl_1;
-}
-signed int _X3fO1Fi_i__1(signed int _X1ii_1){
-    __attribute__ ((unused)) signed int _X11_retval_fO1i_1;
-}
-signed int _X3fO2Fi_i__1(signed int _X1ii_1){
-    __attribute__ ((unused)) signed int _X11_retval_fO2i_1;
-}
-const signed int _X3fO3Fi_i__1(signed int _X1ii_1){
-    __attribute__ ((unused)) const signed int _X11_retval_fO3Ki_1;
-}
-extern signed int _X3fO4Fi_i__1(signed int _X1ii_1){
-    __attribute__ ((unused)) signed int _X11_retval_fO4i_1;
-}
-extern const signed int _X3fO5Fi_i__1(signed int _X1ii_1){
-    __attribute__ ((unused)) const signed int _X11_retval_fO5Ki_1;
-}
-signed int _X1fFi___1(void);
-signed int _X1fFi_i__1(signed int __anonymous_object6);
-signed int _X1fFi___1(void){
-    __attribute__ ((unused)) signed int _X9_retval_fi_1;
-}
-signed int _X1fFi_i__1(__attribute__ ((unused)) signed int __anonymous_object7){
-    __attribute__ ((unused)) signed int _X9_retval_fi_1;
-}
-signed int _X1fFi___1(void);
-struct _tuple2_ {
-};
-static inline void _layoutof__tuple2_(unsigned long int *_sizeof__tuple2_, unsigned long int *_alignof__tuple2_, unsigned long int *_offsetof__tuple2_, unsigned long int _sizeof_Y15tuple_param_2_0, unsigned long int _alignof_Y15tuple_param_2_0, unsigned long int _sizeof_Y15tuple_param_2_1, unsigned long int _alignof_Y15tuple_param_2_1){
-    ((void)((*_sizeof__tuple2_)=0));
-    ((void)((*_alignof__tuple2_)=1));
-    ((void)(_offsetof__tuple2_[0]=(*_sizeof__tuple2_)));
-    ((void)((*_sizeof__tuple2_)+=_sizeof_Y15tuple_param_2_0));
-    if ( ((*_alignof__tuple2_)<_alignof_Y15tuple_param_2_0) ) ((void)((*_alignof__tuple2_)=_alignof_Y15tuple_param_2_0));
-
-    if ( ((*_sizeof__tuple2_)&(_alignof_Y15tuple_param_2_1-1)) ) ((void)((*_sizeof__tuple2_)+=(_alignof_Y15tuple_param_2_1-((*_sizeof__tuple2_)&(_alignof_Y15tuple_param_2_1-1)))));
-
-    ((void)(_offsetof__tuple2_[1]=(*_sizeof__tuple2_)));
-    ((void)((*_sizeof__tuple2_)+=_sizeof_Y15tuple_param_2_1));
-    if ( ((*_alignof__tuple2_)<_alignof_Y15tuple_param_2_1) ) ((void)((*_alignof__tuple2_)=_alignof_Y15tuple_param_2_1));
-
-    if ( ((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)) ) ((void)((*_sizeof__tuple2_)+=((*_alignof__tuple2_)-((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)))));
-
-}
-struct _conc__tuple2_0;
-struct _conc__tuple2_0 {
-    signed int field_0;
-    signed int field_1;
-};
-struct _conc__tuple2_0 _X1fFT2ii___1(void);
-struct _conc__tuple2_0 _X1fFT2ii_ii__1(signed int __anonymous_object8, signed int _X1xi_1);
-struct _conc__tuple2_0 _X1fFT2ii___1(void){
-    __attribute__ ((unused)) struct _conc__tuple2_0 _X9_retval_fT2ii_1 = {  };
-}
-struct _conc__tuple2_0 _X1fFT2ii_ii__1(__attribute__ ((unused)) signed int __anonymous_object9, signed int _X1xi_1){
-    __attribute__ ((unused)) struct _conc__tuple2_0 _X9_retval_fT2ii_1 = {  };
-}
-struct _tuple3_ {
-};
-static inline void _layoutof__tuple3_(unsigned long int *_sizeof__tuple3_, unsigned long int *_alignof__tuple3_, unsigned long int *_offsetof__tuple3_, unsigned long int _sizeof_Y15tuple_param_3_0, unsigned long int _alignof_Y15tuple_param_3_0, unsigned long int _sizeof_Y15tuple_param_3_1, unsigned long int _alignof_Y15tuple_param_3_1, unsigned long int _sizeof_Y15tuple_param_3_2, unsigned long int _alignof_Y15tuple_param_3_2){
-    ((void)((*_sizeof__tuple3_)=0));
-    ((void)((*_alignof__tuple3_)=1));
-    ((void)(_offsetof__tuple3_[0]=(*_sizeof__tuple3_)));
-    ((void)((*_sizeof__tuple3_)+=_sizeof_Y15tuple_param_3_0));
-    if ( ((*_alignof__tuple3_)<_alignof_Y15tuple_param_3_0) ) ((void)((*_alignof__tuple3_)=_alignof_Y15tuple_param_3_0));
-
-    if ( ((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_1-1)) ) ((void)((*_sizeof__tuple3_)+=(_alignof_Y15tuple_param_3_1-((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_1-1)))));
-
-    ((void)(_offsetof__tuple3_[1]=(*_sizeof__tuple3_)));
-    ((void)((*_sizeof__tuple3_)+=_sizeof_Y15tuple_param_3_1));
-    if ( ((*_alignof__tuple3_)<_alignof_Y15tuple_param_3_1) ) ((void)((*_alignof__tuple3_)=_alignof_Y15tuple_param_3_1));
-
-    if ( ((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_2-1)) ) ((void)((*_sizeof__tuple3_)+=(_alignof_Y15tuple_param_3_2-((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_2-1)))));
-
-    ((void)(_offsetof__tuple3_[2]=(*_sizeof__tuple3_)));
-    ((void)((*_sizeof__tuple3_)+=_sizeof_Y15tuple_param_3_2));
-    if ( ((*_alignof__tuple3_)<_alignof_Y15tuple_param_3_2) ) ((void)((*_alignof__tuple3_)=_alignof_Y15tuple_param_3_2));
-
-    if ( ((*_sizeof__tuple3_)&((*_alignof__tuple3_)-1)) ) ((void)((*_sizeof__tuple3_)+=((*_alignof__tuple3_)-((*_sizeof__tuple3_)&((*_alignof__tuple3_)-1)))));
-
-}
-struct _conc__tuple3_1;
-struct _conc__tuple3_1 {
-    signed int field_0;
-    signed int field_1;
-    signed int field_2;
-};
-struct _conc__tuple3_1 _X1fFT3iii___1(void);
-struct _conc__tuple3_1 _X1fFT3iii_iii__1(signed int __anonymous_object10, signed int _X1xi_1, signed int __anonymous_object11);
-struct _conc__tuple3_1 _X1fFT3iii___1(void){
-    __attribute__ ((unused)) struct _conc__tuple3_1 _X9_retval_fT3iii_1 = {  };
-}
-struct _conc__tuple3_1 _X1fFT3iii_iii__1(__attribute__ ((unused)) signed int __anonymous_object12, signed int _X1xi_1, __attribute__ ((unused)) signed int __anonymous_object13){
-    __attribute__ ((unused)) struct _conc__tuple3_1 _X9_retval_fT3iii_1 = {  };
-}
-struct _conc__tuple3_2;
-struct _conc__tuple3_2 {
-    signed int field_0;
-    signed int field_1;
-    signed int *field_2;
-};
-struct _conc__tuple3_2 _X1fFT3iiPi___1(void);
-struct _conc__tuple3_2 _X1fFT3iiPi_iiPi__1(signed int __anonymous_object14, signed int _X1xi_1, signed int *_X1yPi_1);
-struct _conc__tuple3_2 _X1fFT3iiPi___1(void){
-    __attribute__ ((unused)) struct _conc__tuple3_2 _X9_retval_fT3iiPi_1 = {  };
-}
-struct _conc__tuple3_2 _X1fFT3iiPi_iiPi__1(__attribute__ ((unused)) signed int __anonymous_object15, signed int _X1xi_1, signed int *_X1yPi_1){
-    __attribute__ ((unused)) struct _conc__tuple3_2 _X9_retval_fT3iiPi_1 = {  };
-}
-signed int _X3f11Fi_i__1(signed int __anonymous_object16);
-signed int _X3f12Fi___1(void);
-const double _X4bar1Fd___1();
-const double _X4bar2Fd_i__1(signed int __anonymous_object17);
-const double _X4bar3Fd_d__1(double __anonymous_object18);
-const double _X3fooFd___1(void);
-const double _X3fooFd_i__1(signed int __anonymous_object19);
-const double _X3fooFd_d__1(__attribute__ ((unused)) double __anonymous_object20){
-    __attribute__ ((unused)) const double _X11_retval_fooKd_1;
-    {
-        ((void)((*((double *)(&_X11_retval_fooKd_1)))=3.0) /* ?{} */);
-    }
-
-    return _X11_retval_fooKd_1;
-}
-struct S {
-    signed int _X1ii_1;
-};
-static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
-static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
-static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
-static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
-static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1);
-static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
-    {
-        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
-    {
-        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1) /* ?{} */);
-    }
-
-}
-static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
-    {
-        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ^?{} */);
-    }
-
-}
-static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
-    struct S _X4_retS1S_1;
-    {
-        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1));
-    }
-
-    {
-        ((void)_X12_constructorFv_S1SS1S_autogen___1((&_X4_retS1S_1), (*_X4_dstS1S_1)));
-    }
-
-    return _X4_retS1S_1;
-}
-static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1){
-    {
-        ((void)((*_X4_dstS1S_1)._X1ii_1=_X1ii_1) /* ?{} */);
-    }
-
-}
-struct S _X3rtnFS1S_i__1(__attribute__ ((unused)) signed int __anonymous_object21){
-    __attribute__ ((unused)) struct S _X11_retval_rtnS1S_1;
-}
-signed int _X1fFi_Fi_ii_Fi_i___1(__attribute__ ((unused)) signed int (*__anonymous_object22)(signed int __anonymous_object23, signed int _X1pi_1), __attribute__ ((unused)) signed int (*__anonymous_object24)(signed int __anonymous_object25)){
-    __attribute__ ((unused)) signed int _X9_retval_fi_1;
-    signed int (*(*_X2pcPA0A0PA0A0i_2)[][((unsigned long int )10)])[][((unsigned long int )3)];
-    signed int (*(*_X1pPA0A0PA0A0i_2)[][((unsigned long int )10)])[][((unsigned long int )3)];
-    signed int (*(*_X1pPA0Fi_i__2)[])(signed int __anonymous_object26);
-}
-static const signed int *_X2f1FPKi___1(){
-    __attribute__ ((unused)) const signed int *_X10_retval_f1PKi_1;
-}
-static const signed int *_X2f2FPKi___1(void){
-    __attribute__ ((unused)) const signed int *_X10_retval_f2PKi_1;
-}
-static inline signed int *const _X2f3FPi___1(void){
-    __attribute__ ((unused)) signed int *const _X10_retval_f3KPi_1;
-}
-struct _conc__tuple2_3;
-struct _conc__tuple2_3 {
-    signed int *field_0;
-    signed int field_1;
-};
-static inline const struct _conc__tuple2_3 _X2f4FT2Pii___1(void){
-    __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f4KT2Pii_1;
-}
-static const struct _conc__tuple2_3 _X2f5FT2PiKi___1(void){
-    __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f5KT2PiKi_1;
-}
-signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object27)(), signed int *(*__anonymous_object28)(), signed int **(*__anonymous_object29)(), signed int *const *(*__anonymous_object30)(), signed int *const *const (*__anonymous_object31)(), signed int *__anonymous_object32, signed int __anonymous_object33[((unsigned long int )10)], signed int **__anonymous_object34, signed int *__anonymous_object35[((unsigned long int )10)], signed int ***__anonymous_object36, signed int **__anonymous_object37[((unsigned long int )10)], signed int *const **__anonymous_object38, signed int *const *__anonymous_object39[((unsigned long int )10)], signed int *const *const *__anonymous_object40, signed int *const *const __anonymous_object41[((unsigned long int )10)]);
-signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object42)(), __attribute__ ((unused)) signed int *(*__anonymous_object43)(), __attribute__ ((unused)) signed int **(*__anonymous_object44)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object45)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object46)(), __attribute__ ((unused)) signed int *__anonymous_object47, __attribute__ ((unused)) signed int __anonymous_object48[((unsigned long int )10)], __attribute__ ((unused)) signed int **__anonymous_object49, __attribute__ ((unused)) signed int *__anonymous_object50[((unsigned long int )10)], __attribute__ ((unused)) signed int ***__anonymous_object51, __attribute__ ((unused)) signed int **__anonymous_object52[((unsigned long int )10)], __attribute__ ((unused)) signed int *const **__anonymous_object53, __attribute__ ((unused)) signed int *const *__anonymous_object54[((unsigned long int )10)], __attribute__ ((unused)) signed int *const *const *__anonymous_object55, __attribute__ ((unused)) signed int *const *const __anonymous_object56[((unsigned long int )10)]){
-    __attribute__ ((unused)) signed int _X9_retval_fi_1;
-}
-signed int _X1fFi_Pii__1(signed int *_X1fPi_1, signed int _X1ti_1){
-    __attribute__ ((unused)) signed int _X9_retval_fi_1;
-    signed int _X1Ti_2;
-}
Index: tests/.expect/functions.nast.arm64.txt
===================================================================
--- tests/.expect/functions.nast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ tests/.expect/functions.nast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,283 @@
+void _X1hFv___1(void){
+}
+signed int _X1fFi_Fi__Fi_i_Fi__Fi_i_Fv____1(__attribute__ ((unused)) signed int (*__anonymous_object0)(void), __attribute__ ((unused)) signed int (*__anonymous_object1)(signed int __param_0), __attribute__ ((unused)) signed int (*__anonymous_object2)(void), __attribute__ ((unused)) signed int (*__anonymous_object3)(signed int __param_0), void (*_X1gFv___1)(void)){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+    {
+        ((void)(*_X1gFv___1)());
+    }
+
+    {
+        ((void)_X1gFv___1());
+    }
+
+    {
+        ((void)(_X1gFv___1=_X1hFv___1));
+    }
+
+}
+signed int _X2f1Fi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
+}
+signed int _X2f2Fi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
+}
+signed int (*_X2f3FFi_____1())(){
+    __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)();
+}
+signed int *_X2f4FPi___1(){
+    __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1;
+}
+signed int (*_X2f5FFi_____1())(){
+    __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)();
+}
+signed int *_X2f6FPi___1(){
+    __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1;
+}
+signed int *_X2f7FPi___1(){
+    __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1;
+}
+signed int **_X2f8FPPi___1(){
+    __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1;
+}
+signed int *const *_X2f9FPKPi___1(){
+    __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1;
+}
+signed int (*_X3f10FPA0i___1())[]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[];
+}
+signed int (*_X3f11FPA0A0i___1())[][((unsigned long int )3)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned long int )3)];
+}
+signed int (*_X3f12FPA0A0i___1())[][((unsigned long int )3)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned long int )3)];
+}
+signed int _X4fII1Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X12_retval_fII1i_1;
+}
+const signed int _X4fII2Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) const signed int _X12_retval_fII2Ki_1;
+}
+extern signed int _X4fII3Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X12_retval_fII3i_1;
+}
+extern const signed int _X4fII4Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) const signed int _X12_retval_fII4Ki_1;
+}
+signed int *_X4fII5FPi___1(){
+    __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1;
+}
+signed int *const _X4fII6FPi___1(){
+    __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1;
+}
+const signed long int *_X4fII7FPKl___1(){
+    __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1;
+}
+static const signed long int *_X4fII8FPKl___1(){
+    __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1;
+}
+static const signed long int *_X4fII9FPKl___1(){
+    __attribute__ ((unused)) const signed long int *_X12_retval_fII9PKl_1;
+}
+signed int _X3fO1Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X11_retval_fO1i_1;
+}
+signed int _X3fO2Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X11_retval_fO2i_1;
+}
+const signed int _X3fO3Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) const signed int _X11_retval_fO3Ki_1;
+}
+extern signed int _X3fO4Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X11_retval_fO4i_1;
+}
+extern const signed int _X3fO5Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) const signed int _X11_retval_fO5Ki_1;
+}
+signed int _X1fFi___1(void);
+signed int _X1fFi_i__1(signed int __anonymous_object4);
+signed int _X1fFi___1(void){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+}
+signed int _X1fFi_i__1(__attribute__ ((unused)) signed int __anonymous_object5){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+}
+signed int _X1fFi___1(void);
+struct _tuple2_ {
+};
+static inline void _layoutof__tuple2_(unsigned long int *_sizeof__tuple2_, unsigned long int *_alignof__tuple2_, unsigned long int *_offsetof__tuple2_, unsigned long int _sizeof_Y15tuple_param_2_0, unsigned long int _alignof_Y15tuple_param_2_0, unsigned long int _sizeof_Y15tuple_param_2_1, unsigned long int _alignof_Y15tuple_param_2_1){
+    ((void)((*_sizeof__tuple2_)=0));
+    ((void)((*_alignof__tuple2_)=1));
+    ((void)(_offsetof__tuple2_[0]=(*_sizeof__tuple2_)));
+    ((void)((*_sizeof__tuple2_)+=_sizeof_Y15tuple_param_2_0));
+    if ( ((*_alignof__tuple2_)<_alignof_Y15tuple_param_2_0) ) ((void)((*_alignof__tuple2_)=_alignof_Y15tuple_param_2_0));
+
+    if ( ((*_sizeof__tuple2_)&(_alignof_Y15tuple_param_2_1-1)) ) ((void)((*_sizeof__tuple2_)+=(_alignof_Y15tuple_param_2_1-((*_sizeof__tuple2_)&(_alignof_Y15tuple_param_2_1-1)))));
+
+    ((void)(_offsetof__tuple2_[1]=(*_sizeof__tuple2_)));
+    ((void)((*_sizeof__tuple2_)+=_sizeof_Y15tuple_param_2_1));
+    if ( ((*_alignof__tuple2_)<_alignof_Y15tuple_param_2_1) ) ((void)((*_alignof__tuple2_)=_alignof_Y15tuple_param_2_1));
+
+    if ( ((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)) ) ((void)((*_sizeof__tuple2_)+=((*_alignof__tuple2_)-((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)))));
+
+}
+struct _conc__tuple2_0;
+struct _conc__tuple2_0 {
+    signed int field_0;
+    signed int field_1;
+};
+struct _conc__tuple2_0 _X1fFT2ii___1(void);
+struct _conc__tuple2_0 _X1fFT2ii_ii__1(signed int __anonymous_object6, signed int _X1xi_1);
+struct _conc__tuple2_0 _X1fFT2ii___1(void){
+    __attribute__ ((unused)) struct _conc__tuple2_0 _X9_retval_fT2ii_1 = {  };
+}
+struct _conc__tuple2_0 _X1fFT2ii_ii__1(__attribute__ ((unused)) signed int __anonymous_object7, signed int _X1xi_1){
+    __attribute__ ((unused)) struct _conc__tuple2_0 _X9_retval_fT2ii_1 = {  };
+}
+struct _tuple3_ {
+};
+static inline void _layoutof__tuple3_(unsigned long int *_sizeof__tuple3_, unsigned long int *_alignof__tuple3_, unsigned long int *_offsetof__tuple3_, unsigned long int _sizeof_Y15tuple_param_3_0, unsigned long int _alignof_Y15tuple_param_3_0, unsigned long int _sizeof_Y15tuple_param_3_1, unsigned long int _alignof_Y15tuple_param_3_1, unsigned long int _sizeof_Y15tuple_param_3_2, unsigned long int _alignof_Y15tuple_param_3_2){
+    ((void)((*_sizeof__tuple3_)=0));
+    ((void)((*_alignof__tuple3_)=1));
+    ((void)(_offsetof__tuple3_[0]=(*_sizeof__tuple3_)));
+    ((void)((*_sizeof__tuple3_)+=_sizeof_Y15tuple_param_3_0));
+    if ( ((*_alignof__tuple3_)<_alignof_Y15tuple_param_3_0) ) ((void)((*_alignof__tuple3_)=_alignof_Y15tuple_param_3_0));
+
+    if ( ((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_1-1)) ) ((void)((*_sizeof__tuple3_)+=(_alignof_Y15tuple_param_3_1-((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_1-1)))));
+
+    ((void)(_offsetof__tuple3_[1]=(*_sizeof__tuple3_)));
+    ((void)((*_sizeof__tuple3_)+=_sizeof_Y15tuple_param_3_1));
+    if ( ((*_alignof__tuple3_)<_alignof_Y15tuple_param_3_1) ) ((void)((*_alignof__tuple3_)=_alignof_Y15tuple_param_3_1));
+
+    if ( ((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_2-1)) ) ((void)((*_sizeof__tuple3_)+=(_alignof_Y15tuple_param_3_2-((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_2-1)))));
+
+    ((void)(_offsetof__tuple3_[2]=(*_sizeof__tuple3_)));
+    ((void)((*_sizeof__tuple3_)+=_sizeof_Y15tuple_param_3_2));
+    if ( ((*_alignof__tuple3_)<_alignof_Y15tuple_param_3_2) ) ((void)((*_alignof__tuple3_)=_alignof_Y15tuple_param_3_2));
+
+    if ( ((*_sizeof__tuple3_)&((*_alignof__tuple3_)-1)) ) ((void)((*_sizeof__tuple3_)+=((*_alignof__tuple3_)-((*_sizeof__tuple3_)&((*_alignof__tuple3_)-1)))));
+
+}
+struct _conc__tuple3_1;
+struct _conc__tuple3_1 {
+    signed int field_0;
+    signed int field_1;
+    signed int field_2;
+};
+struct _conc__tuple3_1 _X1fFT3iii___1(void);
+struct _conc__tuple3_1 _X1fFT3iii_iii__1(signed int __anonymous_object8, signed int _X1xi_1, signed int __anonymous_object9);
+struct _conc__tuple3_1 _X1fFT3iii___1(void){
+    __attribute__ ((unused)) struct _conc__tuple3_1 _X9_retval_fT3iii_1 = {  };
+}
+struct _conc__tuple3_1 _X1fFT3iii_iii__1(__attribute__ ((unused)) signed int __anonymous_object10, signed int _X1xi_1, __attribute__ ((unused)) signed int __anonymous_object11){
+    __attribute__ ((unused)) struct _conc__tuple3_1 _X9_retval_fT3iii_1 = {  };
+}
+struct _conc__tuple3_2;
+struct _conc__tuple3_2 {
+    signed int field_0;
+    signed int field_1;
+    signed int *field_2;
+};
+struct _conc__tuple3_2 _X1fFT3iiPi___1(void);
+struct _conc__tuple3_2 _X1fFT3iiPi_iiPi__1(signed int __anonymous_object12, signed int _X1xi_1, signed int *_X1yPi_1);
+struct _conc__tuple3_2 _X1fFT3iiPi___1(void){
+    __attribute__ ((unused)) struct _conc__tuple3_2 _X9_retval_fT3iiPi_1 = {  };
+}
+struct _conc__tuple3_2 _X1fFT3iiPi_iiPi__1(__attribute__ ((unused)) signed int __anonymous_object13, signed int _X1xi_1, signed int *_X1yPi_1){
+    __attribute__ ((unused)) struct _conc__tuple3_2 _X9_retval_fT3iiPi_1 = {  };
+}
+signed int _X3f11Fi_i__1(signed int __anonymous_object14);
+signed int _X3f12Fi___1(void);
+const double _X4bar1Fd___1();
+const double _X4bar2Fd_i__1(signed int __anonymous_object15);
+const double _X4bar3Fd_d__1(double __anonymous_object16);
+const double _X3fooFd___1(void);
+const double _X3fooFd_i__1(signed int __anonymous_object17);
+const double _X3fooFd_d__1(__attribute__ ((unused)) double __anonymous_object18){
+    __attribute__ ((unused)) const double _X11_retval_fooKd_1;
+    {
+        ((void)((*((double *)(&_X11_retval_fooKd_1)))=3.0) /* ?{} */);
+    }
+
+    return _X11_retval_fooKd_1;
+}
+struct S {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    struct S _X4_retS1S_1;
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S1SS1S_autogen___1((&_X4_retS1S_1), (*_X4_dstS1S_1)));
+    }
+
+    return _X4_retS1S_1;
+}
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+struct S _X3rtnFS1S_i__1(__attribute__ ((unused)) signed int __anonymous_object19){
+    __attribute__ ((unused)) struct S _X11_retval_rtnS1S_1;
+}
+signed int _X1fFi_Fi_ii_Fi_i___1(__attribute__ ((unused)) signed int (*__anonymous_object20)(signed int __param_0, signed int __param_1), __attribute__ ((unused)) signed int (*__anonymous_object21)(signed int __param_0)){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+    signed int (*(*_X2pcPA0A0PA0A0i_2)[][((unsigned long int )10)])[][((unsigned long int )3)];
+    signed int (*(*_X1pPA0A0PA0A0i_2)[][((unsigned long int )10)])[][((unsigned long int )3)];
+    signed int (*(*_X1pPA0Fi_i__2)[])(signed int __param_0);
+}
+static const signed int *_X2f1FPKi___1(){
+    __attribute__ ((unused)) const signed int *_X10_retval_f1PKi_1;
+}
+static const signed int *_X2f2FPKi___1(void){
+    __attribute__ ((unused)) const signed int *_X10_retval_f2PKi_1;
+}
+static inline signed int *const _X2f3FPi___1(void){
+    __attribute__ ((unused)) signed int *const _X10_retval_f3KPi_1;
+}
+struct _conc__tuple2_3;
+struct _conc__tuple2_3 {
+    signed int *field_0;
+    signed int field_1;
+};
+static inline const struct _conc__tuple2_3 _X2f4FT2Pii___1(void){
+    __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f4KT2Pii_1;
+}
+static const struct _conc__tuple2_3 _X2f5FT2PiKi___1(void){
+    __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f5KT2PiKi_1;
+}
+signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object22)(), signed int *(*__anonymous_object23)(), signed int **(*__anonymous_object24)(), signed int *const *(*__anonymous_object25)(), signed int *const *const (*__anonymous_object26)(), signed int *__anonymous_object27, signed int __anonymous_object28[10], signed int **__anonymous_object29, signed int *__anonymous_object30[10], signed int ***__anonymous_object31, signed int **__anonymous_object32[10], signed int *const **__anonymous_object33, signed int *const *__anonymous_object34[10], signed int *const *const *__anonymous_object35, signed int *const *const __anonymous_object36[10]);
+signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object37)(), __attribute__ ((unused)) signed int *(*__anonymous_object38)(), __attribute__ ((unused)) signed int **(*__anonymous_object39)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object40)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object41)(), __attribute__ ((unused)) signed int *__anonymous_object42, __attribute__ ((unused)) signed int __anonymous_object43[10], __attribute__ ((unused)) signed int **__anonymous_object44, __attribute__ ((unused)) signed int *__anonymous_object45[10], __attribute__ ((unused)) signed int ***__anonymous_object46, __attribute__ ((unused)) signed int **__anonymous_object47[10], __attribute__ ((unused)) signed int *const **__anonymous_object48, __attribute__ ((unused)) signed int *const *__anonymous_object49[10], __attribute__ ((unused)) signed int *const *const *__anonymous_object50, __attribute__ ((unused)) signed int *const *const __anonymous_object51[10]){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+}
+signed int _X1fFi_Pii__1(signed int *_X1fPi_1, signed int _X1ti_1){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+    signed int _X1Ti_2;
+}
Index: tests/.expect/functions.oast.arm64.txt
===================================================================
--- tests/.expect/functions.oast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ tests/.expect/functions.oast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,283 @@
+void _X1hFv___1(void){
+}
+signed int _X1fFi_Fi__Fi_i_Fi__Fi_i_Fv____1(__attribute__ ((unused)) signed int (*__anonymous_object0)(void), __attribute__ ((unused)) signed int (*__anonymous_object1)(signed int __anonymous_object2), __attribute__ ((unused)) signed int (*__anonymous_object3)(void), __attribute__ ((unused)) signed int (*__anonymous_object4)(signed int __anonymous_object5), void (*_X1gFv___1)(void)){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+    {
+        ((void)(*_X1gFv___1)());
+    }
+
+    {
+        ((void)_X1gFv___1());
+    }
+
+    {
+        ((void)(_X1gFv___1=_X1hFv___1));
+    }
+
+}
+signed int _X2f1Fi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_f1i_1;
+}
+signed int _X2f2Fi___1(){
+    __attribute__ ((unused)) signed int _X10_retval_f2i_1;
+}
+signed int (*_X2f3FFi_____1())(){
+    __attribute__ ((unused)) signed int (*_X10_retval_f3Fi___1)();
+}
+signed int *_X2f4FPi___1(){
+    __attribute__ ((unused)) signed int *_X10_retval_f4Pi_1;
+}
+signed int (*_X2f5FFi_____1())(){
+    __attribute__ ((unused)) signed int (*_X10_retval_f5Fi___1)();
+}
+signed int *_X2f6FPi___1(){
+    __attribute__ ((unused)) signed int *_X10_retval_f6Pi_1;
+}
+signed int *_X2f7FPi___1(){
+    __attribute__ ((unused)) signed int *_X10_retval_f7Pi_1;
+}
+signed int **_X2f8FPPi___1(){
+    __attribute__ ((unused)) signed int **_X10_retval_f8PPi_1;
+}
+signed int *const *_X2f9FPKPi___1(){
+    __attribute__ ((unused)) signed int *const *_X10_retval_f9PKPi_1;
+}
+signed int (*_X3f10FPA0i___1())[]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[];
+}
+signed int (*_X3f11FPA0A0i___1())[][((unsigned long int )3)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned long int )3)];
+}
+signed int (*_X3f12FPA0A0i___1())[][((unsigned long int )3)]{
+    __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned long int )3)];
+}
+signed int _X4fII1Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X12_retval_fII1i_1;
+}
+const signed int _X4fII2Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) const signed int _X12_retval_fII2Ki_1;
+}
+extern signed int _X4fII3Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X12_retval_fII3i_1;
+}
+extern const signed int _X4fII4Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) const signed int _X12_retval_fII4Ki_1;
+}
+signed int *_X4fII5FPi___1(){
+    __attribute__ ((unused)) signed int *_X12_retval_fII5Pi_1;
+}
+signed int *const _X4fII6FPi___1(){
+    __attribute__ ((unused)) signed int *const _X12_retval_fII6KPi_1;
+}
+const signed long int *_X4fII7FPKl___1(){
+    __attribute__ ((unused)) const signed long int *_X12_retval_fII7PKl_1;
+}
+static const signed long int *_X4fII8FPKl___1(){
+    __attribute__ ((unused)) const signed long int *_X12_retval_fII8PKl_1;
+}
+static const signed long int *_X4fII9FPKl___1(){
+    __attribute__ ((unused)) const signed long int *_X12_retval_fII9PKl_1;
+}
+signed int _X3fO1Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X11_retval_fO1i_1;
+}
+signed int _X3fO2Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X11_retval_fO2i_1;
+}
+const signed int _X3fO3Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) const signed int _X11_retval_fO3Ki_1;
+}
+extern signed int _X3fO4Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) signed int _X11_retval_fO4i_1;
+}
+extern const signed int _X3fO5Fi_i__1(signed int _X1ii_1){
+    __attribute__ ((unused)) const signed int _X11_retval_fO5Ki_1;
+}
+signed int _X1fFi___1(void);
+signed int _X1fFi_i__1(signed int __anonymous_object6);
+signed int _X1fFi___1(void){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+}
+signed int _X1fFi_i__1(__attribute__ ((unused)) signed int __anonymous_object7){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+}
+signed int _X1fFi___1(void);
+struct _tuple2_ {
+};
+static inline void _layoutof__tuple2_(unsigned long int *_sizeof__tuple2_, unsigned long int *_alignof__tuple2_, unsigned long int *_offsetof__tuple2_, unsigned long int _sizeof_Y15tuple_param_2_0, unsigned long int _alignof_Y15tuple_param_2_0, unsigned long int _sizeof_Y15tuple_param_2_1, unsigned long int _alignof_Y15tuple_param_2_1){
+    ((void)((*_sizeof__tuple2_)=0));
+    ((void)((*_alignof__tuple2_)=1));
+    ((void)(_offsetof__tuple2_[0]=(*_sizeof__tuple2_)));
+    ((void)((*_sizeof__tuple2_)+=_sizeof_Y15tuple_param_2_0));
+    if ( ((*_alignof__tuple2_)<_alignof_Y15tuple_param_2_0) ) ((void)((*_alignof__tuple2_)=_alignof_Y15tuple_param_2_0));
+
+    if ( ((*_sizeof__tuple2_)&(_alignof_Y15tuple_param_2_1-1)) ) ((void)((*_sizeof__tuple2_)+=(_alignof_Y15tuple_param_2_1-((*_sizeof__tuple2_)&(_alignof_Y15tuple_param_2_1-1)))));
+
+    ((void)(_offsetof__tuple2_[1]=(*_sizeof__tuple2_)));
+    ((void)((*_sizeof__tuple2_)+=_sizeof_Y15tuple_param_2_1));
+    if ( ((*_alignof__tuple2_)<_alignof_Y15tuple_param_2_1) ) ((void)((*_alignof__tuple2_)=_alignof_Y15tuple_param_2_1));
+
+    if ( ((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)) ) ((void)((*_sizeof__tuple2_)+=((*_alignof__tuple2_)-((*_sizeof__tuple2_)&((*_alignof__tuple2_)-1)))));
+
+}
+struct _conc__tuple2_0;
+struct _conc__tuple2_0 {
+    signed int field_0;
+    signed int field_1;
+};
+struct _conc__tuple2_0 _X1fFT2ii___1(void);
+struct _conc__tuple2_0 _X1fFT2ii_ii__1(signed int __anonymous_object8, signed int _X1xi_1);
+struct _conc__tuple2_0 _X1fFT2ii___1(void){
+    __attribute__ ((unused)) struct _conc__tuple2_0 _X9_retval_fT2ii_1 = {  };
+}
+struct _conc__tuple2_0 _X1fFT2ii_ii__1(__attribute__ ((unused)) signed int __anonymous_object9, signed int _X1xi_1){
+    __attribute__ ((unused)) struct _conc__tuple2_0 _X9_retval_fT2ii_1 = {  };
+}
+struct _tuple3_ {
+};
+static inline void _layoutof__tuple3_(unsigned long int *_sizeof__tuple3_, unsigned long int *_alignof__tuple3_, unsigned long int *_offsetof__tuple3_, unsigned long int _sizeof_Y15tuple_param_3_0, unsigned long int _alignof_Y15tuple_param_3_0, unsigned long int _sizeof_Y15tuple_param_3_1, unsigned long int _alignof_Y15tuple_param_3_1, unsigned long int _sizeof_Y15tuple_param_3_2, unsigned long int _alignof_Y15tuple_param_3_2){
+    ((void)((*_sizeof__tuple3_)=0));
+    ((void)((*_alignof__tuple3_)=1));
+    ((void)(_offsetof__tuple3_[0]=(*_sizeof__tuple3_)));
+    ((void)((*_sizeof__tuple3_)+=_sizeof_Y15tuple_param_3_0));
+    if ( ((*_alignof__tuple3_)<_alignof_Y15tuple_param_3_0) ) ((void)((*_alignof__tuple3_)=_alignof_Y15tuple_param_3_0));
+
+    if ( ((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_1-1)) ) ((void)((*_sizeof__tuple3_)+=(_alignof_Y15tuple_param_3_1-((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_1-1)))));
+
+    ((void)(_offsetof__tuple3_[1]=(*_sizeof__tuple3_)));
+    ((void)((*_sizeof__tuple3_)+=_sizeof_Y15tuple_param_3_1));
+    if ( ((*_alignof__tuple3_)<_alignof_Y15tuple_param_3_1) ) ((void)((*_alignof__tuple3_)=_alignof_Y15tuple_param_3_1));
+
+    if ( ((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_2-1)) ) ((void)((*_sizeof__tuple3_)+=(_alignof_Y15tuple_param_3_2-((*_sizeof__tuple3_)&(_alignof_Y15tuple_param_3_2-1)))));
+
+    ((void)(_offsetof__tuple3_[2]=(*_sizeof__tuple3_)));
+    ((void)((*_sizeof__tuple3_)+=_sizeof_Y15tuple_param_3_2));
+    if ( ((*_alignof__tuple3_)<_alignof_Y15tuple_param_3_2) ) ((void)((*_alignof__tuple3_)=_alignof_Y15tuple_param_3_2));
+
+    if ( ((*_sizeof__tuple3_)&((*_alignof__tuple3_)-1)) ) ((void)((*_sizeof__tuple3_)+=((*_alignof__tuple3_)-((*_sizeof__tuple3_)&((*_alignof__tuple3_)-1)))));
+
+}
+struct _conc__tuple3_1;
+struct _conc__tuple3_1 {
+    signed int field_0;
+    signed int field_1;
+    signed int field_2;
+};
+struct _conc__tuple3_1 _X1fFT3iii___1(void);
+struct _conc__tuple3_1 _X1fFT3iii_iii__1(signed int __anonymous_object10, signed int _X1xi_1, signed int __anonymous_object11);
+struct _conc__tuple3_1 _X1fFT3iii___1(void){
+    __attribute__ ((unused)) struct _conc__tuple3_1 _X9_retval_fT3iii_1 = {  };
+}
+struct _conc__tuple3_1 _X1fFT3iii_iii__1(__attribute__ ((unused)) signed int __anonymous_object12, signed int _X1xi_1, __attribute__ ((unused)) signed int __anonymous_object13){
+    __attribute__ ((unused)) struct _conc__tuple3_1 _X9_retval_fT3iii_1 = {  };
+}
+struct _conc__tuple3_2;
+struct _conc__tuple3_2 {
+    signed int field_0;
+    signed int field_1;
+    signed int *field_2;
+};
+struct _conc__tuple3_2 _X1fFT3iiPi___1(void);
+struct _conc__tuple3_2 _X1fFT3iiPi_iiPi__1(signed int __anonymous_object14, signed int _X1xi_1, signed int *_X1yPi_1);
+struct _conc__tuple3_2 _X1fFT3iiPi___1(void){
+    __attribute__ ((unused)) struct _conc__tuple3_2 _X9_retval_fT3iiPi_1 = {  };
+}
+struct _conc__tuple3_2 _X1fFT3iiPi_iiPi__1(__attribute__ ((unused)) signed int __anonymous_object15, signed int _X1xi_1, signed int *_X1yPi_1){
+    __attribute__ ((unused)) struct _conc__tuple3_2 _X9_retval_fT3iiPi_1 = {  };
+}
+signed int _X3f11Fi_i__1(signed int __anonymous_object16);
+signed int _X3f12Fi___1(void);
+const double _X4bar1Fd___1();
+const double _X4bar2Fd_i__1(signed int __anonymous_object17);
+const double _X4bar3Fd_d__1(double __anonymous_object18);
+const double _X3fooFd___1(void);
+const double _X3fooFd_i__1(signed int __anonymous_object19);
+const double _X3fooFd_d__1(__attribute__ ((unused)) double __anonymous_object20){
+    __attribute__ ((unused)) const double _X11_retval_fooKd_1;
+    {
+        ((void)((*((double *)(&_X11_retval_fooKd_1)))=3.0) /* ?{} */);
+    }
+
+    return _X11_retval_fooKd_1;
+}
+struct S {
+    signed int _X1ii_1;
+};
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1);
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1);
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1);
+static inline void _X12_constructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X12_constructorFv_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1) /* ?{} */);
+    }
+
+}
+static inline void _X11_destructorFv_S1S_autogen___1(struct S *_X4_dstS1S_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1) /* ^?{} */);
+    }
+
+}
+static inline struct S _X16_operator_assignFS1S_S1SS1S_autogen___1(struct S *_X4_dstS1S_1, struct S _X4_srcS1S_1){
+    struct S _X4_retS1S_1;
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X4_srcS1S_1._X1ii_1));
+    }
+
+    {
+        ((void)_X12_constructorFv_S1SS1S_autogen___1((&_X4_retS1S_1), (*_X4_dstS1S_1)));
+    }
+
+    return _X4_retS1S_1;
+}
+static inline void _X12_constructorFv_S1Si_autogen___1(struct S *_X4_dstS1S_1, signed int _X1ii_1){
+    {
+        ((void)((*_X4_dstS1S_1)._X1ii_1=_X1ii_1) /* ?{} */);
+    }
+
+}
+struct S _X3rtnFS1S_i__1(__attribute__ ((unused)) signed int __anonymous_object21){
+    __attribute__ ((unused)) struct S _X11_retval_rtnS1S_1;
+}
+signed int _X1fFi_Fi_ii_Fi_i___1(__attribute__ ((unused)) signed int (*__anonymous_object22)(signed int __anonymous_object23, signed int _X1pi_1), __attribute__ ((unused)) signed int (*__anonymous_object24)(signed int __anonymous_object25)){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+    signed int (*(*_X2pcPA0A0PA0A0i_2)[][((unsigned long int )10)])[][((unsigned long int )3)];
+    signed int (*(*_X1pPA0A0PA0A0i_2)[][((unsigned long int )10)])[][((unsigned long int )3)];
+    signed int (*(*_X1pPA0Fi_i__2)[])(signed int __anonymous_object26);
+}
+static const signed int *_X2f1FPKi___1(){
+    __attribute__ ((unused)) const signed int *_X10_retval_f1PKi_1;
+}
+static const signed int *_X2f2FPKi___1(void){
+    __attribute__ ((unused)) const signed int *_X10_retval_f2PKi_1;
+}
+static inline signed int *const _X2f3FPi___1(void){
+    __attribute__ ((unused)) signed int *const _X10_retval_f3KPi_1;
+}
+struct _conc__tuple2_3;
+struct _conc__tuple2_3 {
+    signed int *field_0;
+    signed int field_1;
+};
+static inline const struct _conc__tuple2_3 _X2f4FT2Pii___1(void){
+    __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f4KT2Pii_1;
+}
+static const struct _conc__tuple2_3 _X2f5FT2PiKi___1(void){
+    __attribute__ ((unused)) const struct _conc__tuple2_3 _X10_retval_f5KT2PiKi_1;
+}
+signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(signed int (*__anonymous_object27)(), signed int *(*__anonymous_object28)(), signed int **(*__anonymous_object29)(), signed int *const *(*__anonymous_object30)(), signed int *const *const (*__anonymous_object31)(), signed int *__anonymous_object32, signed int __anonymous_object33[((unsigned long int )10)], signed int **__anonymous_object34, signed int *__anonymous_object35[((unsigned long int )10)], signed int ***__anonymous_object36, signed int **__anonymous_object37[((unsigned long int )10)], signed int *const **__anonymous_object38, signed int *const *__anonymous_object39[((unsigned long int )10)], signed int *const *const *__anonymous_object40, signed int *const *const __anonymous_object41[((unsigned long int )10)]);
+signed int _X1fFi_Fi__FPi__FPPi__FPKPi__FPKPi__PiPiPPiPPiPPPiPPPiPPKPiPPKPiPKPKPiPKPKPi__1(__attribute__ ((unused)) signed int (*__anonymous_object42)(), __attribute__ ((unused)) signed int *(*__anonymous_object43)(), __attribute__ ((unused)) signed int **(*__anonymous_object44)(), __attribute__ ((unused)) signed int *const *(*__anonymous_object45)(), __attribute__ ((unused)) signed int *const *const (*__anonymous_object46)(), __attribute__ ((unused)) signed int *__anonymous_object47, __attribute__ ((unused)) signed int __anonymous_object48[((unsigned long int )10)], __attribute__ ((unused)) signed int **__anonymous_object49, __attribute__ ((unused)) signed int *__anonymous_object50[((unsigned long int )10)], __attribute__ ((unused)) signed int ***__anonymous_object51, __attribute__ ((unused)) signed int **__anonymous_object52[((unsigned long int )10)], __attribute__ ((unused)) signed int *const **__anonymous_object53, __attribute__ ((unused)) signed int *const *__anonymous_object54[((unsigned long int )10)], __attribute__ ((unused)) signed int *const *const *__anonymous_object55, __attribute__ ((unused)) signed int *const *const __anonymous_object56[((unsigned long int )10)]){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+}
+signed int _X1fFi_Pii__1(signed int *_X1fPi_1, signed int _X1ti_1){
+    __attribute__ ((unused)) signed int _X9_retval_fi_1;
+    signed int _X1Ti_2;
+}
Index: sts/errors/.expect/completeType.arm64.txt
===================================================================
--- tests/errors/.expect/completeType.arm64.txt	(revision 3233b91b36dc8cf1126178068a300f99697b4dec)
+++ 	(revision )
@@ -1,141 +1,0 @@
-errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
-Generated Cast of:
-  Applying untyped:
-    Name: *?
-  ...to:
-    Name: x
-
-... to: nothing Alternatives are:
-Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
-      Application of
-        Variable Expression: *?: forall
-          DT: data type
-          function
-        ... with parameters
-          intrinsic pointer to instance of type DT (not function type)
-        ... returning
-          _retval__operator_deref: reference to instance of type DT (not function type)
-          ... with attributes:
-            Attribute with name: unused
-
-
-      ... to arguments
-        Variable Expression: x: pointer to instance of struct A with body 0
-
-    ... to: nothing
-  (types:
-    void 
-  )
-  Environment: -> instance of struct A with body 0 (no widening)
-
-
-Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
-      Application of
-        Variable Expression: *?: forall
-          DT: data type
-          function
-        ... with parameters
-          intrinsic pointer to instance of type DT (not function type)
-        ... returning
-          _retval__operator_deref: reference to instance of type DT (not function type)
-          ... with attributes:
-            Attribute with name: unused
-
-
-      ... to arguments
-        Variable Expression: x: pointer to instance of struct B with body 1
-
-    ... to: nothing
-  (types:
-    void 
-  )
-  Environment: -> instance of struct B with body 1 (no widening)
-
-
-
-errors/completeType.cfa:35:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: foo
-...to:
-  Name: v
-
-errors/completeType.cfa:36:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: baz
-...to:
-  Name: v
-
-errors/completeType.cfa:37:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: quux
-...to:
-  Name: v
-
-errors/completeType.cfa:59:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: baz
-...to:
-  Name: y
-
-errors/completeType.cfa:60:1 error: No reasonable alternatives for expression Applying untyped:
-  Name: quux
-...to:
-  Name: y
-
-errors/completeType.cfa:72:1 error: No alternatives with satisfiable assertions for Applying untyped:
-  Name: baz
-...to:
-  Name: z
-
-      Unsatisfiable alternative:
-Cost ( 0, 1, 0, 0, 1, -5, 0 ): Application of
-            Variable Expression: baz: forall
-              T: sized data type
-              ... with assertions
-                ?=?: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning
-                  _retval__operator_assign: instance of type T (not function type)
-                  ... with attributes:
-                    Attribute with name: unused
-
-
-                ?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
-                ?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                  instance of type T (not function type)
-                ... returning nothing
-
-                ^?{}: pointer to function
-                ... with parameters
-                  reference to instance of type T (not function type)
-                ... returning nothing
-
-
-              function
-            ... with parameters
-              pointer to instance of type T (not function type)
-            ... returning nothing
-
-          ... to arguments
-            Variable Expression: z: pointer to instance of type T (not function type)
-
-        (types:
-          void 
-        )
-        Environment: -> instance of type T (not function type) (no widening)
-
-      Could not satisfy assertion:
-?=?: pointer to function
-        ... with parameters
-          reference to instance of type _110_0_T (not function type)
-          instance of type _110_0_T (not function type)
-        ... returning
-          _retval__operator_assign: instance of type _110_0_T (not function type)
-          ... with attributes:
-            Attribute with name: unused
-
-
Index: tests/errors/.expect/completeType.nast.arm64.txt
===================================================================
--- tests/errors/.expect/completeType.nast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ tests/errors/.expect/completeType.nast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,199 @@
+errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
+Generated Cast of:
+  Applying untyped:
+    Name: *?
+  ...to:
+    Name: x
+
+... to: nothing
+... with resolved type:
+  void Alternatives are:
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          DT: data type
+          function
+        ... with parameters
+          pointer to instance of type DT (not function type)
+        ... returning
+          reference to instance of type DT (not function type)
+
+        ... with resolved type:
+          pointer to forall
+            [unbound]:data type
+            function
+          ... with parameters
+            pointer to instance of type [unbound] (not function type)
+          ... returning
+            reference to instance of type [unbound] (not function type)
+
+        ... to arguments
+        Variable Expression: x: pointer to instance of struct B with body
+        ... with resolved type:
+          pointer to instance of struct B with body
+
+      ... with resolved type:
+        reference to instance of struct B with body
+    ... to: nothing
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]) -> instance of struct B with body (no widening)
+
+
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          DT: data type
+          function
+        ... with parameters
+          pointer to instance of type DT (not function type)
+        ... returning
+          reference to instance of type DT (not function type)
+
+        ... with resolved type:
+          pointer to forall
+            [unbound]:data type
+            function
+          ... with parameters
+            pointer to instance of type [unbound] (not function type)
+          ... returning
+            reference to instance of type [unbound] (not function type)
+
+        ... to arguments
+        Variable Expression: x: pointer to instance of struct A without body
+        ... with resolved type:
+          pointer to instance of struct A without body
+
+      ... with resolved type:
+        reference to instance of struct A without body
+    ... to: nothing
+    ... with resolved type:
+      void
+  (types:
+    void
+  )
+  Environment:([unbound]) -> instance of struct A without body (no widening)
+
+
+
+errors/completeType.cfa:35:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: foo
+...to:
+  Name: v
+
+errors/completeType.cfa:36:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: baz
+...to:
+  Name: v
+
+errors/completeType.cfa:37:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: quux
+...to:
+  Name: v
+
+errors/completeType.cfa:59:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: baz
+...to:
+  Name: y
+
+errors/completeType.cfa:60:1 error: Invalid application of existing declaration(s) in expression Applying untyped:
+  Name: quux
+...to:
+  Name: y
+
+errors/completeType.cfa:72:1 error: No alternatives with satisfiable assertions for Applying untyped:
+  Name: baz
+...to:
+  Name: z
+
+      Unsatisfiable alternative:
+Cost ( 0, 1, 0, 0, 1, -5, 0 ): Application of
+            Variable Expression: baz: forall
+              T: sized data type
+              ... with assertions
+                ?=?: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning
+                  instance of type T (not function type)
+
+                ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+                ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning nothing
+
+                ^?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+
+              function
+            ... with parameters
+              pointer to instance of type T (not function type)
+            ... returning nothing
+
+            ... with resolved type:
+              pointer to forall
+                [unbound]:sized data type
+                ... with assertions
+                  ?=?: pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                    instance of type [unbound] (not function type)
+                  ... returning
+                    instance of type [unbound] (not function type)
+
+                  ?{}: pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                  ?{}: pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                    instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                  ^?{}: pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                  ... returning nothing
+
+
+                function
+              ... with parameters
+                pointer to instance of type [unbound] (not function type)
+              ... returning nothing
+
+            ... to arguments
+            Variable Expression: z: pointer to instance of type T (not function type)
+            ... with resolved type:
+              pointer to instance of type T (not function type)
+          with 1 pending inference slots
+
+          ... with resolved type:
+            void
+        (types:
+          void
+        )
+        Environment:([unbound]) -> instance of type T (not function type) (no widening)
+
+      Could not satisfy assertion:
+?=?: pointer to function
+        ... with parameters
+          reference to instance of type [unbound] (not function type)
+          instance of type [unbound] (not function type)
+        ... returning
+          instance of type [unbound] (not function type)
+
Index: tests/errors/.expect/completeType.oast.arm64.txt
===================================================================
--- tests/errors/.expect/completeType.oast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
+++ tests/errors/.expect/completeType.oast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -0,0 +1,219 @@
+errors/completeType.cfa:34:1 error: Cannot choose between 2 alternatives for expression
+Generated Cast of:
+  Applying untyped:
+    Name: *?
+  ...to:
+    Name: x
+
+... to: nothing
+with resolved type:
+  void  Alternatives are:
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          DT: data type
+          function
+        ... with parameters
+          intrinsic pointer to instance of type DT (not function type)
+        ... returning
+          _retval__operator_deref: reference to instance of type DT (not function type)
+          ... with attributes:
+            Attribute with name: unused
+
+
+        with resolved type:
+          pointer to forall
+            [unbound]:data type
+            function
+          ... with parameters
+            intrinsic pointer to instance of type [unbound] (not function type)
+          ... returning
+            _retval__operator_deref: reference to instance of type [unbound] (not function type)
+            ... with attributes:
+              Attribute with name: unused
+
+
+      ... to arguments
+        Variable Expression: x: pointer to instance of struct A with body 0
+        with resolved type:
+          pointer to instance of struct A with body 0
+
+      with resolved type:
+        reference to instance of struct A with body 0
+    ... to: nothing
+    with resolved type:
+      void 
+  (types:
+    void 
+  )
+  Environment:([unbound]) -> instance of struct A with body 0 (no widening)
+
+
+Cost ( 0, 1, 2, 0, 1, -1, 0 ): Generated Cast of:
+      Application of
+        Variable Expression: *?: forall
+          DT: data type
+          function
+        ... with parameters
+          intrinsic pointer to instance of type DT (not function type)
+        ... returning
+          _retval__operator_deref: reference to instance of type DT (not function type)
+          ... with attributes:
+            Attribute with name: unused
+
+
+        with resolved type:
+          pointer to forall
+            [unbound]:data type
+            function
+          ... with parameters
+            intrinsic pointer to instance of type [unbound] (not function type)
+          ... returning
+            _retval__operator_deref: reference to instance of type [unbound] (not function type)
+            ... with attributes:
+              Attribute with name: unused
+
+
+      ... to arguments
+        Variable Expression: x: pointer to instance of struct B with body 1
+        with resolved type:
+          pointer to instance of struct B with body 1
+
+      with resolved type:
+        reference to instance of struct B with body 1
+    ... to: nothing
+    with resolved type:
+      void 
+  (types:
+    void 
+  )
+  Environment:([unbound]) -> instance of struct B with body 1 (no widening)
+
+
+
+errors/completeType.cfa:35:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: foo
+...to:
+  Name: v
+
+errors/completeType.cfa:36:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: baz
+...to:
+  Name: v
+
+errors/completeType.cfa:37:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: quux
+...to:
+  Name: v
+
+errors/completeType.cfa:59:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: baz
+...to:
+  Name: y
+
+errors/completeType.cfa:60:1 error: No reasonable alternatives for expression Applying untyped:
+  Name: quux
+...to:
+  Name: y
+
+errors/completeType.cfa:72:1 error: No alternatives with satisfiable assertions for Applying untyped:
+  Name: baz
+...to:
+  Name: z
+
+      Unsatisfiable alternative:
+Cost ( 0, 1, 0, 0, 1, -5, 0 ): Application of
+            Variable Expression: baz: forall
+              T: sized data type
+              ... with assertions
+                ?=?: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning
+                  _retval__operator_assign: instance of type T (not function type)
+                  ... with attributes:
+                    Attribute with name: unused
+
+
+                ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+                ?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                  instance of type T (not function type)
+                ... returning nothing
+
+                ^?{}: pointer to function
+                ... with parameters
+                  reference to instance of type T (not function type)
+                ... returning nothing
+
+
+              function
+            ... with parameters
+              pointer to instance of type T (not function type)
+            ... returning nothing
+
+            with resolved type:
+              pointer to forall
+                [unbound]:sized data type
+                ... with assertions
+                  ?=?: pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                    instance of type [unbound] (not function type)
+                  ... returning
+                    _retval__operator_assign: instance of type [unbound] (not function type)
+                    ... with attributes:
+                      Attribute with name: unused
+
+
+                  ?{}: pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                  ?{}: pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                    instance of type [unbound] (not function type)
+                  ... returning nothing
+
+                  ^?{}: pointer to function
+                  ... with parameters
+                    reference to instance of type [unbound] (not function type)
+                  ... returning nothing
+
+
+                function
+              ... with parameters
+                pointer to instance of type [unbound] (not function type)
+              ... returning nothing
+
+          ... to arguments
+            Variable Expression: z: pointer to instance of type T (not function type)
+            with resolved type:
+              pointer to instance of type T (not function type)
+
+          with resolved type:
+            void 
+        (types:
+          void 
+        )
+        Environment:([unbound]) -> instance of type T (not function type) (no widening)
+
+      Could not satisfy assertion:
+?=?: pointer to function
+        ... with parameters
+          reference to instance of type [unbound] (not function type)
+          instance of type [unbound] (not function type)
+        ... returning
+          _retval__operator_assign: instance of type [unbound] (not function type)
+          ... with attributes:
+            Attribute with name: unused
+
+
Index: tests/meta/.expect/archVast.nast.arm64.txt
===================================================================
--- tests/meta/.expect/archVast.nast.arm64.txt	(revision 3233b91b36dc8cf1126178068a300f99697b4dec)
+++ tests/meta/.expect/archVast.nast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -3,8 +3,14 @@
   Name: FA64
 ... to:
+  char
+... with resolved type:
   char Alternatives are:
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
       Variable Expression: FA64: signed int
+      ... with resolved type:
+        signed int
     ... to:
+      char
+    ... with resolved type:
       char
   (types:
@@ -18,5 +24,12 @@
       ... returning nothing
 
+      ... with resolved type:
+        pointer to function
+          accepting unspecified arguments
+        ... returning nothing
+
     ... to:
+      char
+    ... with resolved type:
       char
   (types:
@@ -27,5 +40,9 @@
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
       Variable Expression: FA64: double
+      ... with resolved type:
+        double
     ... to:
+      char
+    ... with resolved type:
       char
   (types:
Index: tests/meta/.expect/archVast.oast.arm64.txt
===================================================================
--- tests/meta/.expect/archVast.oast.arm64.txt	(revision 3233b91b36dc8cf1126178068a300f99697b4dec)
+++ tests/meta/.expect/archVast.oast.arm64.txt	(revision 62e456f0dfa766491803796c4a3e6c79b6542c82)
@@ -3,4 +3,6 @@
   Name: FA64
 ... to:
+  char
+with resolved type:
   char Alternatives are:
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
@@ -9,5 +11,12 @@
       ... returning nothing
 
+      with resolved type:
+        pointer to function
+          accepting unspecified arguments
+        ... returning nothing
+
     ... to:
+      char
+    with resolved type:
       char
   (types:
@@ -18,5 +27,9 @@
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
       Variable Expression: FA64: double
+      with resolved type:
+        double
     ... to:
+      char
+    with resolved type:
       char
   (types:
@@ -27,5 +40,9 @@
 Cost ( 1, 0, 0, 0, 0, 0, 0 ): Explicit Cast of:
       Variable Expression: FA64: signed int
+      with resolved type:
+        signed int
     ... to:
+      char
+    with resolved type:
       char
   (types:
Index: sts/zombies/io/cat.c
===================================================================
--- tests/zombies/io/cat.c	(revision 3233b91b36dc8cf1126178068a300f99697b4dec)
+++ 	(revision )
@@ -1,78 +1,0 @@
-/*
-This is a simple "cat" example that uses io_uring in IORING_SETUP_IOPOLL mode.
-It demonstrates the bare minimum needed to use io_uring in polling mode.
-It uses liburing for simplicity.
-*/
-
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-
-#include <fcntl.h>
-#include <liburing.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-struct io_uring ring;
-
-__attribute__((aligned(1024))) char data[1024];
-
-int main(int argc,  char * argv[]) {
-      if(argc != 2) {
-            printf("usage:   %s FILE - prints file to console.\n", argv[0]);
-            return 1;
-      }
-
-      int fd = open(argv[1], O_DIRECT);
-      if(fd < 0) {
-            printf("Could not open file %s.\n", argv[1]);
-            return 2;
-      }
-
-      /* prep the array */
-      struct iovec iov = { data, 1024 };
-
-      /* init liburing */
-      io_uring_queue_init(256, &ring, IORING_SETUP_IOPOLL);
-
-      /* declare required structs */
-      struct io_uring_sqe * sqe;
-      struct io_uring_cqe * cqe;
-
-      /* get an sqe and fill in a READV operation */
-      sqe = io_uring_get_sqe(&ring);
-      io_uring_prep_readv(sqe, fd, &iov, 1, 0);
-      // io_uring_prep_read(sqe, fd, data, 1024, 0);
-
-      sqe->user_data = (uint64_t)(uintptr_t)data;
-
-      /* tell the kernel we have an sqe ready for consumption */
-      io_uring_submit(&ring);
-
-      /* wait for the sqe to complete */
-      int ret = io_uring_wait_cqe(&ring, &cqe);
-
-      /* read and process cqe event */
-      if(ret == 0) {
-            char * out = (char *)(uintptr_t)cqe->user_data;
-            signed int len = cqe->res;
-            io_uring_cqe_seen(&ring, cqe);
-
-            if(len > 0) {
-                  printf("%.*s", len, out);
-            }
-            else if( len < 0 ) {
-                  fprintf(stderr, "readv/read returned error : %s\n", strerror(-len));
-            }
-      }
-      else {
-            printf("%d\n", ret);
-            io_uring_cqe_seen(&ring, cqe);
-      }
-
-      io_uring_queue_exit(&ring);
-
-      close(fd);
-}
Index: sts/zombies/io/filereader.c
===================================================================
--- tests/zombies/io/filereader.c	(revision 3233b91b36dc8cf1126178068a300f99697b4dec)
+++ 	(revision )
@@ -1,122 +1,0 @@
-/*
-This is a file reading example that users io_uring in non-blocking mode.
-It demonstrates the bare minimum needed to use io_uring.
-It also optionally pre-registers the file descriptors (and a pipe, just to show it works).
-It uses liburing for simplicity.
-*/
-
-
-#include <errno.h>
-#include <fcntl.h>
-#include <liburing.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-int main(int argc, char * argv[]) {
-	if(argc != 3 && argc != 4) {
-            printf("usage:   %s FILE TIMES [fixed] - read FILE from disk TIMES times\n", argv[0]);
-            return EXIT_FAILURE;
-      }
-
-	bool fixed = false;
-	if(argc == 4) {
-		fixed = 0 == strcmp(argv[3], "fixed");
-	}
-
-      int times = atoi( argv[2] );
-      if(times <= 0) {
-            printf("Invalid number of times %d (from %s).\n", times, argv[2]);
-            return EXIT_FAILURE;
-      }
-
-      int fd = open(argv[1], 0);
-      if(fd < 0) {
-            printf("Could not open file %s.\n", argv[1]);
-            return EXIT_FAILURE;
-      }
-
-	int rfd = fd;
-
-	/* prep the array */
-      char data[100];
-      struct iovec iov = { data, 100 };
-
-	/* init liburing */
-	struct io_uring ring;
-      io_uring_queue_init(256, &ring, 0);
-
-	int pipefds[2];
-	if(fixed) {
-		int ret = pipe(pipefds);
-		if( ret < 0 ) {
-			printf("Pipe Error : %s\n", strerror( errno ));
-			return EXIT_FAILURE;
-		}
-		rfd = 0;
-		int fds[] = {
-			fd, pipefds[0], pipefds[1]
-		};
-		int cnt = sizeof(fds) / sizeof(fds[0]);
-		printf("Registering %d files as fixed\n", cnt);
-		ret = io_uring_register_files(&ring, fds, cnt);
-		if( ret < 0 ) {
-			printf("Register Error : %s\n", strerror( -ret ));
-			return EXIT_FAILURE;
-		}
-	}
-
-      /* declare required structs */
-	printf("Reading %s(%d) %d times\n", argv[1], fd, times);
-	size_t counter = 0;
-	for(int i = 0; i < times; i++) {
-		/* get an sqe and fill in a READV operation */
-	      struct io_uring_sqe * sqe = io_uring_get_sqe(&ring);
-		io_uring_prep_readv(sqe, rfd, &iov, 1, 0);
-		if(fixed) {
-			sqe->flags = IOSQE_FIXED_FILE;
-		}
-
-		/* tell the kernel we have an sqe ready for consumption */
-      	io_uring_submit(&ring);
-
-		/* poll the cq and count how much polling we did */
-		while(true) {
-			struct io_uring_cqe * cqe = NULL;
-			/* wait for the sqe to complete */
-			int ret = io_uring_wait_cqe_nr(&ring, &cqe, 0);
-
-			/* read and process cqe event */
-			switch(ret) {
-			case 0:
-				if( cqe->res < 0 ) {
-					printf("Completion Error : %s\n", strerror( -cqe->res ));
-					return EXIT_FAILURE;
-				}
-				io_uring_cqe_seen(&ring, cqe);
-				goto LOOP;
-			case -EAGAIN:
-				counter++;
-				break;
-			default:
-				printf("Wait Error : %s\n", strerror( -ret ));
-				return EXIT_FAILURE;
-			}
-		}
-
-		LOOP:;
-	}
-
-	printf("%zu\n", counter);
-
-      io_uring_queue_exit(&ring);
-
-      close(fd);
-
-	if(fixed) {
-		close(pipefds[0]);
-		close(pipefds[1]);
-	}
-}
Index: sts/zombies/io/simple/client.c
===================================================================
--- tests/zombies/io/simple/client.c	(revision 3233b91b36dc8cf1126178068a300f99697b4dec)
+++ 	(revision )
@@ -1,85 +1,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <netdb.h>
-#include <unistd.h>
-
-#include <sys/types.h>
-#include <sys/socket.h>
-
-int main(int argc, char * argv[]) {
-      if(argc != 2) {
-            printf("usage:    %s portnumber\n", argv[0]);
-            exit( EXIT_FAILURE );
-      }
-      int port = atoi(argv[1]);
-      if(port < 1) {
-            printf("Invalid port : %d (from %s)\n", port, argv[1]);
-            exit( EXIT_FAILURE );
-      }
-
-      int sock = socket(AF_INET, SOCK_STREAM, 0);
-      if(sock < 0) {
-            perror( "socket" );
-            exit( EXIT_FAILURE );
-      }
-
-      struct hostent * server = gethostbyname("localhost");
-      if(server == NULL) {
-            perror("localhost not found");
-            exit( EXIT_FAILURE );
-      }
-
-      struct sockaddr_in serv_addr;
-      memset(&serv_addr, 0, sizeof(serv_addr));
-      serv_addr.sin_family = AF_INET;
-      memcpy(&serv_addr.sin_addr.s_addr, server->h_addr, server->h_length);
-      serv_addr.sin_port = htons(port);
-
-      int ret = connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr));
-      if(ret < 0) {
-            perror( "connect" );
-            exit( EXIT_FAILURE );
-      }
-
-      char buffer[256];
-      struct iovec iov = { buffer, 0 };
-      struct msghdr msg;
-      msg.msg_name = NULL;
-      msg.msg_namelen = 0;
-      msg.msg_control = NULL;
-      msg.msg_controllen = 0;
-      msg.msg_iov = &iov;
-      msg.msg_iovlen = 1;
-      msg.msg_flags = 0;
-
-
-      int rd;
-      while(0 != (rd = read(STDIN_FILENO, buffer, 256))) {
-            if(rd < 0) {
-                  perror( "read" );
-                  exit( EXIT_FAILURE );
-            }
-
-            iov.iov_len = rd;
-            int sent = sendmsg(sock, &msg, 0);
-            if( sent < 0 ) {
-                  perror( "read" );
-                  exit( EXIT_FAILURE );
-            }
-
-            if(sent != rd) {
-                  printf("Expected to send %d bytes, sent %d\n", rd, sent);
-                  exit( EXIT_FAILURE );
-            }
-      }
-
-      ret = close(sock);
-      if(ret < 0) {
-            perror( "close" );
-            exit( EXIT_FAILURE );
-      }
-
-      exit( EXIT_SUCCESS );
-}
Index: sts/zombies/io/simple/server.c
===================================================================
--- tests/zombies/io/simple/server.c	(revision 3233b91b36dc8cf1126178068a300f99697b4dec)
+++ 	(revision )
@@ -1,143 +1,0 @@
-/*
-This is a simple server that users io_uring in blocking mode.
-It demonstrates the bare minimum needed to use io_uring.
-It uses liburing for simplicity.
-*/
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <unistd.h>
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-#include <liburing.h>
-
-struct io_uring ring;
-
-char data[256];
-struct iovec iov = { data, 256 };
-struct msghdr msg = { (void *)"", 0, &iov, 1, NULL, 0, 0 };
-static void async_read(int sock) {
-	/* get an sqe and fill in a READ operation */
-      struct io_uring_sqe * sqe = io_uring_get_sqe(&ring);
-      io_uring_prep_recvmsg(sqe, sock, &msg, 0);
-      sqe->user_data = 0;
-
-      /* tell the kernel we have an sqe ready for consumption */
-      int ret = io_uring_submit(&ring);
-      assert(ret == 1);
-}
-
-int main(int argc, char *argv[]) {
-	if(argc != 2) {
-            printf("usage:    %s portnumber\n", argv[0]);
-            exit( EXIT_FAILURE );
-      }
-      int port = atoi(argv[1]);
-      if(port < 1) {
-            printf("Invalid port : %d (from %s)\n", port, argv[1]);
-            exit( EXIT_FAILURE );
-      }
-
-	int sock = socket(AF_INET, SOCK_STREAM, 0);
-	if(sock < 0) {
-		perror( "socket" );
-		exit( EXIT_FAILURE );
-	}
-
-	struct sockaddr_in serv_addr;
-      memset(&serv_addr, 0, sizeof(serv_addr));
-      serv_addr.sin_family = AF_INET;
-      serv_addr.sin_addr.s_addr = INADDR_ANY;
-      serv_addr.sin_port = htons(port);
-
-	int ret = bind(sock, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
-	if(ret < 0) {
-		perror( "bind" );
-		exit( EXIT_FAILURE );
-	}
-
-
-     	listen(sock,1);
-
-	struct sockaddr_in cli_addr;
-     	__socklen_t clilen = sizeof(cli_addr);
-	int newsock = accept(sock, (struct sockaddr *) &cli_addr, &clilen);
-     	if (newsock < 0) {
-		perror( "accept" );
-		exit( EXIT_FAILURE );
-	}
-
-	io_uring_queue_init( 16, &ring, 0 );
-
-	async_read( newsock );
-
-	while(1) {
-		struct io_uring_cqe * cqe;
-		struct __kernel_timespec ts = { 2, 0 };
-		// int ret = io_uring_wait_cqes( &ring, &cqe, 1, &ts, NULL); // Requires Linux 5.4
-		int ret = io_uring_wait_cqe( &ring, &cqe );
-
-		if( ret < 0 ) {
-                  printf( "Main Loop Error : %s\n", strerror(-ret) );
-			close( sock );
-                  exit( EXIT_FAILURE );
-            }
-
-		switch(cqe->user_data) {
-                  // Read completed
-                  case 0:
-                        // If it is the end of file we are done
-                        if( cqe->res == 0 ) {
-                              goto END;
-                        }
-
-				if( cqe->res < 0 ) {
-					perror( "Main Loop Error" );
-					close( sock );
-					exit( EXIT_FAILURE );
-				}
-
-				printf("'%.*s'\n", cqe->res, data);
-
-				async_read( newsock );
-
-                        // otherwise prepare a new read
-                        break;
-                  // Wait timed out, time to print
-			// Requires Linux 5.4
-                  case LIBURING_UDATA_TIMEOUT:
-                  	printf(".");
-                        break;
-                  // Problem
-                  default:
-                        printf("Unexpected user data : %llu", cqe->user_data);
-                        exit( EXIT_FAILURE );
-            }
-
-     		io_uring_cqe_seen( &ring, cqe );
-	}
-END:
-
-	io_uring_queue_exit( &ring );
-
-	ret = close(newsock);
-      if(ret < 0) {
-            perror( "close new" );
-            exit( EXIT_FAILURE );
-      }
-
-	ret = close(sock);
-      if(ret < 0) {
-            perror( "close old" );
-            exit( EXIT_FAILURE );
-      }
-
-	return 0;
-}
Index: sts/zombies/io/simple/server.cfa
===================================================================
--- tests/zombies/io/simple/server.cfa	(revision 3233b91b36dc8cf1126178068a300f99697b4dec)
+++ 	(revision )
@@ -1,137 +1,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <unistd.h>
-
-extern "C" {
-	#include <sys/types.h>
-	#include <sys/socket.h>
-	#include <netinet/in.h>
-}
-
-#include <time.hfa>
-#include <thread.hfa>
-
-//----------
-monitor Printer {};
-
-void heartbeat( Printer & mutex ) {
-	fprintf(stderr, ".");
-}
-
-void message( Printer & mutex, char * msg, size_t len ) {
-	fprintf(stderr, "'%.*s'", len, msg);
-}
-
-void status( Printer & mutex, const char * st ) {
-	fprintf(stderr, "%s\n", st);
-}
-
-void error( Printer & mutex, const char * msg, int error) {
-	fprintf(stderr, "%s - %s\n", msg, strerror(error));
-}
-
-Printer printer;
-
-//----------
-thread HeartBeat {};
-
-void ^?{}( HeartBeat & mutex ) {}
-
-void main( HeartBeat & this ) {
-	while(true) {
-		waitfor( ^?{} : this ) { break; }
-		or else{
-			sleep( 5`s );
-			heartbeat( printer );
-		}
-	}
-}
-
-//----------
-extern ssize_t cfa_recvmsg(int sockfd, struct msghdr *msg, int flags);
-extern int cfa_accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags);
-extern int cfa_close(int fd);
-
-//----------
-thread Server { int port; };
-void main( Server & this ) {
-	char data[256];
-	struct iovec iov = { data, 256 };
-	struct msghdr msg = { "", 0, &iov, 1, NULL, 0, 0 };
-
-	int sock = socket(AF_INET, SOCK_STREAM, 0);
-	if(sock < 0) {
-		error( printer, "socket", -sock);
-		exit( EXIT_FAILURE );
-	}
-
-	status( printer, "Socket created" );
-
-	struct sockaddr_in serv_addr;
-      memset(&serv_addr, 0, sizeof(serv_addr));
-      serv_addr.sin_family = AF_INET;
-      serv_addr.sin_addr.s_addr = INADDR_ANY;
-      serv_addr.sin_port = htons(this.port);
-
-	int ret = bind(sock, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
-	if(ret < 0) {
-		error( printer, "bind", -ret);
-		exit( EXIT_FAILURE );
-	}
-
-	status( printer, "Socket bound" );
-
-     	listen(sock,1);
-
-	struct sockaddr_in cli_addr;
-     	__socklen_t clilen = sizeof(cli_addr);
-	int newsock = cfa_accept4(sock, (struct sockaddr *) &cli_addr, &clilen, 0);
-     	if (newsock < 0) {
-		error( printer, "accept", -newsock);
-		exit( EXIT_FAILURE );
-	}
-
-	status( printer, "Socket accepted, looping" );
-
-	while(1) {
-		int res = cfa_recvmsg(newsock, &msg, 0);
-		if(res == 0) break;
-		if(res < 0) {
-			error( printer, "recvmsg", -res);
-			exit( EXIT_FAILURE );
-		}
-
-		message(printer, data, res);
-	}
-
-	ret = cfa_close(newsock);
-      if(ret < 0) {
-            error( printer, "close new", -ret);
-            exit( EXIT_FAILURE );
-      }
-
-	ret = cfa_close(sock);
-      if(ret < 0) {
-            error( printer, "close old", -ret);
-            exit( EXIT_FAILURE );
-      }
-}
-
-//----------
-int main(int argc, char * argv []) {
-	if(argc != 2) {
-            printf("usage:    %s portnumber\n", argv[0]);
-            exit( EXIT_FAILURE );
-      }
-      int port = atoi(argv[1]);
-      if(port < 1) {
-            printf("Invalid port : %d (from %s)\n", port, argv[1]);
-            exit( EXIT_FAILURE );
-      }
-
-	HeartBeat heartbeat;
-	Server server = { port };
-	// while(true);
-}
Index: sts/zombies/io/simple/server_epoll.c
===================================================================
--- tests/zombies/io/simple/server_epoll.c	(revision 3233b91b36dc8cf1126178068a300f99697b4dec)
+++ 	(revision )
@@ -1,177 +1,0 @@
-/*
-Similar to the server in servier.c, this is a simple server
-that instead uses epoll to block.
-It opens the door to have several polling user-thread per cluster.
-It uses liburing for simplicity.
-*/
-
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <unistd.h>
-
-#include <sys/epoll.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-#include <liburing.h>
-
-#define MAX_EVENTS 10
-struct epoll_event ev, events[MAX_EVENTS];
-
-struct io_uring ring;
-
-char data[256];
-struct iovec iov = { data, 256 };
-struct msghdr msg = { (void *)"", 0, &iov, 1, NULL, 0, 0 };
-static void async_read(int sock) {
-	/* get an sqe and fill in a READ operation */
-      struct io_uring_sqe * sqe = io_uring_get_sqe(&ring);
-      io_uring_prep_recvmsg(sqe, sock, &msg, 0);
-      sqe->user_data = 0;
-
-      /* tell the kernel we have an sqe ready for consumption */
-      int ret = io_uring_submit(&ring);
-      assert(ret == 1);
-}
-
-int main(int argc, char *argv[]) {
-	if(argc != 2) {
-            printf("usage:    %s portnumber\n", argv[0]);
-            exit( EXIT_FAILURE );
-      }
-      int port = atoi(argv[1]);
-      if(port < 1) {
-            printf("Invalid port : %d (from %s)\n", port, argv[1]);
-            exit( EXIT_FAILURE );
-      }
-
-	int sock = socket(AF_INET, SOCK_STREAM, 0);
-	if(sock < 0) {
-		perror( "socket" );
-		exit( EXIT_FAILURE );
-	}
-
-	struct sockaddr_in serv_addr;
-      memset(&serv_addr, 0, sizeof(serv_addr));
-      serv_addr.sin_family = AF_INET;
-      serv_addr.sin_addr.s_addr = INADDR_ANY;
-      serv_addr.sin_port = htons(port);
-
-	int ret = bind(sock, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
-	if(ret < 0) {
-		perror( "bind" );
-		exit( EXIT_FAILURE );
-	}
-
-
-     	listen(sock,1);
-
-	struct sockaddr_in cli_addr;
-     	__socklen_t clilen = sizeof(cli_addr);
-	int newsock = accept(sock, (struct sockaddr *) &cli_addr, &clilen);
-     	if (newsock < 0) {
-		perror( "accept" );
-		exit( EXIT_FAILURE );
-	}
-
-	io_uring_queue_init( 16, &ring, 0 );
-
-      int epollfd = epoll_create1(0);
-      if (epollfd == -1) {
-            perror("epoll_create1");
-            exit(EXIT_FAILURE);
-      }
-
-      ev.events = EPOLLIN | EPOLLONESHOT;
-      ev.data.u64 = (uint64_t)&ring;
-      if (epoll_ctl(epollfd, EPOLL_CTL_ADD, ring.ring_fd, &ev) == -1) {
-            perror("epoll_ctl: first");
-            exit(EXIT_FAILURE);
-      }
-
-
-	async_read( newsock );
-
-	while(1) {
-            BLOCK:
-            int nfds = epoll_wait(epollfd, events, MAX_EVENTS, -1);
-            if (nfds == -1) {
-                  perror("epoll_wait");
-                  exit(EXIT_FAILURE);
-            }
-
-
-		while(1) {
-                  struct io_uring_cqe * cqe;
-                  int ret = io_uring_peek_cqe( &ring, &cqe );
-
-                  if( ret < 0 ) {
-                        if(-ret == EAGAIN) {
-                              if (epoll_ctl(epollfd, EPOLL_CTL_MOD, ring.ring_fd, &ev) == -1) {
-                                    perror("epoll_ctl: loop");
-                                    exit(EXIT_FAILURE);
-                              }
-                              goto BLOCK;
-                        }
-                        printf( "Main Loop Error : %s\n", strerror(-ret) );
-                        close( sock );
-                        exit( EXIT_FAILURE );
-                  }
-
-                  switch(cqe->user_data) {
-                        // Read completed
-                        case 0:
-                              // If it is the end of file we are done
-                              if( cqe->res == 0 ) {
-                                    goto END;
-                              }
-
-                              if( cqe->res < 0 ) {
-                                    perror( "Main Loop Error" );
-                                    close( sock );
-                                    exit( EXIT_FAILURE );
-                              }
-
-                              printf("'%.*s'\n", cqe->res, data);
-
-                              async_read( newsock );
-
-                              // otherwise prepare a new read
-                              break;
-                        // Wait timed out, time to print
-                        // Requires Linux 5.4
-                        case LIBURING_UDATA_TIMEOUT:
-                              printf(".");
-                              break;
-                        // Problem
-                        default:
-                              printf("Unexpected user data : %llu", cqe->user_data);
-                              exit( EXIT_FAILURE );
-                  }
-
-                  io_uring_cqe_seen( &ring, cqe );
-            }
-	}
-END:
-
-	io_uring_queue_exit( &ring );
-
-	ret = close(newsock);
-      if(ret < 0) {
-            perror( "close new" );
-            exit( EXIT_FAILURE );
-      }
-
-	ret = close(sock);
-      if(ret < 0) {
-            perror( "close old" );
-            exit( EXIT_FAILURE );
-      }
-
-	return 0;
-}
