testing: Merge PR3135.c into misc-ps-region-store.m.

llvm-svn: 86286
This commit is contained in:
Ted Kremenek 2009-11-06 20:32:38 +00:00
parent df9ca633b6
commit e3423e84a9
2 changed files with 16 additions and 20 deletions

View File

@ -1,20 +0,0 @@
// RUN: clang-cc -analyze -checker-cfref -analyzer-store=region -verify %s
// PR3135
typedef struct {
int *a;
} structure;
int bar(structure *x);
int foo()
{
int x;
structure y = {&x};
// the call to bar may initialize x
if (bar(&y) && x) // no-warning
return 1;
return 0;
}

View File

@ -454,3 +454,19 @@ int *test_cwe466_return_outofbounds_pointer() {
return p; // expected-warning{{Returned pointer value points outside the original object}}
}
//===----------------------------------------------------------------------===//
// PR 3135 - Test case that shows that a variable may get invalidated when its
// address is included in a structure that is passed-by-value to an unknown function.
//===----------------------------------------------------------------------===//
typedef struct { int *a; } pr3135_structure;
int pr3135_bar(pr3135_structure *x);
int pr3135() {
int x;
pr3135_structure y = { &x };
// the call to pr3135_bar may initialize x
if (pr3135_bar(&y) && x) // no-warning
return 1;
return 0;
}