Index: wasm-tests/hello-putchar.c |
diff --git a/wasm-tests/hello-putchar.c b/wasm-tests/hello-putchar.c |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fdeaa3bb9983bcfed2826b2e5784c52703d1cf85 |
--- /dev/null |
+++ b/wasm-tests/hello-putchar.c |
@@ -0,0 +1,39 @@ |
+#include <stdio.h> |
+#include <string.h> |
+#include <unistd.h> |
+ |
+void write_int_(int fd, int n) { |
+ if (n > 0) { |
+ write_int_(fd, n / 10); |
+ |
+ int rem = n % 10; |
+ char c = '0' + rem; |
+ write(fd, &c, 1); |
+ } |
+} |
+ |
+void write_int(int fd, int n) { |
+ if (n == 0) { |
+ write(fd, "0", 1); |
+ } else { |
+ if (n < 0) { |
+ write(fd, "-", 1); |
+ write_int_(fd, -n); |
+ } else { |
+ write_int_(fd, n); |
+ } |
+ } |
+} |
+ |
+void stderr_int(int n) { |
+ write_int(2, n); |
+ write(2, "\n", 1); |
+} |
+ |
+int main(int argc, const char **argv) { |
+ char *str = "Hello, World!\n"; |
+ for (int i = 0; str[i]; ++i) { |
+ putchar(str[i]); |
+ } |
+ return 0; |
+} |