summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/Sema.cpp
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2013-01-31 02:57:06 +0000
committerJordan Rose <jordan_rose@apple.com>2013-01-31 02:57:06 +0000
commit9a6d4f3644be9ccdb6282b9b83553968b05a72ed (patch)
treeeafc964aa427422f377d7bcd213efe5f79a245f6 /clang/lib/Sema/Sema.cpp
parent18c77a19eae317c3721e3c13213fe74ea38a23dc (diff)
downloadbcm5719-llvm-9a6d4f3644be9ccdb6282b9b83553968b05a72ed.tar.gz
bcm5719-llvm-9a6d4f3644be9ccdb6282b9b83553968b05a72ed.zip
[analyzer] If a lazy binding is undefined, pretend that it's unknown instead.
This is a hack to work around the fact that we don't track extents for our default bindings: CGPoint p; p.x = 0.0; p.y = 0.0; rectParam.origin = p; use(rectParam.size); // warning: uninitialized value in rectParam.size.width In this case, the default binding for 'p' gets copied into 'rectParam', because the 'origin' field is at offset 0 within CGRect. From then on, rectParam's old default binding (in this case a symbol) is lost. This patch silences the warning by pretending that lazy bindings are never made from uninitialized memory, but not only is that not true, the original default binding is still getting overwritten (see FIXME test cases). The long-term solution is tracked in <rdar://problem/12701038> PR14765 and <rdar://problem/12875012> llvm-svn: 174031
Diffstat (limited to 'clang/lib/Sema/Sema.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud