diff options
Diffstat (limited to 'clang/test/Analysis/misc-ps-region-store.cpp')
| -rw-r--r-- | clang/test/Analysis/misc-ps-region-store.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/Analysis/misc-ps-region-store.cpp b/clang/test/Analysis/misc-ps-region-store.cpp index adbc5b1df0d..6d43509cdd0 100644 --- a/clang/test/Analysis/misc-ps-region-store.cpp +++ b/clang/test/Analysis/misc-ps-region-store.cpp @@ -633,3 +633,26 @@ void test_alloca_in_a_recursive_function(int p1) { test_alloca_in_a_recursive_function(1); test_alloca_in_a_recursive_function(2); } + +//===---------------------------------------------------------------------===// +// Random tests. +//===---------------------------------------------------------------------===// + +// Tests assigning using a C-style initializer to a struct +// variable whose sub-field is also a struct. This currently +// results in a CXXTempObjectRegion being created, but not +// properly handled. For now, we just ignore that value +// to avoid a crash (<rdar://problem/12753384>). +struct RDar12753384_ClassA { + unsigned z; +}; +struct RDar12753384_ClassB { + unsigned x; + RDar12753384_ClassA y[ 8 ] ; +}; +unsigned RDar12753384() { + RDar12753384_ClassB w = { 0x00 }; + RDar12753384_ClassA y[8]; + return w.x; +} + |

