| /* |
| * Copyright 2016 The Emscripten Authors. All rights reserved. |
| * Emscripten is available under two separate licenses, the MIT license and the |
| * University of Illinois/NCSA Open Source License. Both these licenses can be |
| * found in the LICENSE file. |
| */ |
| |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| |
| extern "C" { |
| |
| __attribute__((noinline)) int no_stack_usage(void) { |
| return 6; |
| } |
| |
| __attribute__((noinline)) int alloca_gets_restored(int count) { |
| char *buf = (char*)alloca(count); |
| sprintf(buf, "%d", 6444); |
| return strlen(buf); |
| } |
| |
| __attribute__((noinline)) int stack_usage(void) { |
| char buf[1024]; |
| sprintf(buf, "%d", 60); |
| return strlen(buf); |
| } |
| |
| int main(int argc, char **argv) { |
| printf("%d\n", no_stack_usage()); |
| printf("%d\n", alloca_gets_restored(200)); |
| printf("%d\n", stack_usage()); |
| return 0; |
| } |
| |
| } |