forked from OSchip/llvm-project
26 lines
554 B
C
26 lines
554 B
C
|
// RUN: %clang_safestack %s -o %t
|
||
|
// RUN: %run %t
|
||
|
|
||
|
#include "utils.h"
|
||
|
|
||
|
// Test that loads/stores work correctly for variables on the unsafe stack.
|
||
|
|
||
|
int main(int argc, char **argv)
|
||
|
{
|
||
|
int i;
|
||
|
char buffer[128];
|
||
|
|
||
|
// 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;
|
||
|
}
|