diff options
Diffstat (limited to 'gcc_arm/testsuite/gcc.c-torture/execute/memcheck/t6.c')
-rwxr-xr-x | gcc_arm/testsuite/gcc.c-torture/execute/memcheck/t6.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc_arm/testsuite/gcc.c-torture/execute/memcheck/t6.c b/gcc_arm/testsuite/gcc.c-torture/execute/memcheck/t6.c new file mode 100755 index 0000000..652d33d --- /dev/null +++ b/gcc_arm/testsuite/gcc.c-torture/execute/memcheck/t6.c @@ -0,0 +1,39 @@ +/* Must define: + int expect_error; + void test (); + void setup () NOCHECK; */ + +#include "driver.h" + +int expect_error = 1; + +struct s { + char c; + int a, b; +}; + +struct s *sp; + +void test () +{ + sp = c_malloc (sizeof (struct s) * 2); + sp->c = 0; + sp->b = 47; + cp (sp); + foo (sp); +} + +int foo (struct s *sp) +{ + return sp[1].c + sp[1].a + sp[1].b; +} + +int cp (struct s *sp) +{ + sp[1] = sp[0]; +} + +void setup () /* NOCHECK */ +{ + mark_region (&sp, sizeof (sp), ACCESS_RW); +} |