]> git.proxmox.com Git - rustc.git/blob - src/compiler-rt/test/safestack/buffer-copy-vla.c
Imported Upstream version 1.6.0+dfsg1
[rustc.git] / src / compiler-rt / test / safestack / buffer-copy-vla.c
1 // RUN: %clang_safestack %s -o %t
2 // RUN: %run %t
3
4 #include "utils.h"
5
6 // Test that loads/stores work correctly for VLAs on the unsafe stack.
7
8 int main(int argc, char **argv)
9 {
10 int i = 128;
11 break_optimization(&i);
12 char buffer[i];
13
14 // check that we can write to a buffer
15 for (i = 0; argv[0][i] && i < sizeof (buffer) - 1; ++i)
16 buffer[i] = argv[0][i];
17 buffer[i] = '\0';
18
19 break_optimization(buffer);
20
21 // check that we can read from a buffer
22 for (i = 0; argv[0][i] && i < sizeof (buffer) - 1; ++i)
23 if (buffer[i] != argv[0][i])
24 return 1;
25 return 0;
26 }