// RUN: %clang_safestack %s -o %t // RUN: %run %t #include "utils.h" // Test that loads/stores work correctly for VLAs on the unsafe stack. int main(int argc, char **argv) { int i = 128; break_optimization(&i); char buffer[i]; // check that we can write to a buffer for (i = 0; argv[0][i] && i < sizeof (buffer) - 1; ++i) buffer[i] = argv[0][i]; buffer[i] = '\0'; break_optimization(buffer); // check that we can read from a buffer for (i = 0; argv[0][i] && i < sizeof (buffer) - 1; ++i) if (buffer[i] != argv[0][i]) return 1; return 0; }