Make cleanup-stack.c test stronger, and work in release-asserts mode.

llvm-svn: 71484
This commit is contained in:
Daniel Dunbar 2009-05-11 22:30:29 +00:00
parent f83c9faa2f
commit e92449e4cc
1 changed files with 21 additions and 11 deletions

View File

@ -1,15 +1,25 @@
// RUN: clang-cc -emit-llvm %s -o %t && // RUN: clang-cc -triple i386-unknown-unknown -O3 -emit-llvm %s -o %t &&
// RUN: grep "store i32 0, i32\* %cleanup" %t | count 2 // RUN: grep "ret i32 9" %t
void f(int n) {
int a[n]; struct s0 {
int *var;
int addend;
};
static void f0(struct s0 *p) {
*p->var += p->addend;
}
int f1(void) {
int var = 0;
{ {
int b[n]; struct s0 x __attribute__((cleanup(f0))) = { &var, 2 };
struct s0 y __attribute__((cleanup(f0))) = { &var, 3 };
if (n) {
return; struct s0 y __attribute__((cleanup(f0))) = { &var, 4 };
}
} }
if (n) return var;
return;
} }