Home | History | Annotate | Download | only in safestack
      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 variables on the unsafe stack.
      7 
      8 int main(int argc, char **argv)
      9 {
     10   int i;
     11   char buffer[128];
     12 
     13   // check that we can write to a buffer
     14   for (i = 0; argv[0][i] && i < sizeof (buffer) - 1; ++i)
     15     buffer[i] = argv[0][i];
     16   buffer[i] = '\0';
     17 
     18   break_optimization(buffer);
     19 
     20   // check that we can read from a buffer
     21   for (i = 0; argv[0][i] && i < sizeof (buffer) - 1; ++i)
     22     if (buffer[i] != argv[0][i])
     23       return 1;
     24   return 0;
     25 }
     26