[cfe-commits] r152894 - /cfe/trunk/test/Analysis/default-analyze.m
Ted Kremenek
kremenek at apple.com
Thu Mar 15 21:59:58 PDT 2012
Author: kremenek
Date: Thu Mar 15 23:59:57 2012
New Revision: 152894
URL: http://llvm.org/viewvc/llvm-project?rev=152894&view=rev
Log:
Add test case for <rdar://problem/8808566>, which is now fixed by inlining support.
Modified:
cfe/trunk/test/Analysis/default-analyze.m
Modified: cfe/trunk/test/Analysis/default-analyze.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/default-analyze.m?rev=152894&r1=152893&r2=152894&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/default-analyze.m (original)
+++ cfe/trunk/test/Analysis/default-analyze.m Thu Mar 15 23:59:57 2012
@@ -17,4 +17,47 @@
return title;
}
+// <rdar://problem/8808566> Static analyzer is wrong: NSWidth(imgRect) not understood as unconditional assignment
+//
+// Note: this requires inlining support. This previously issued a false positive use of
+// uninitialized value when calling NSWidth.
+typedef double CGFloat;
+
+struct CGPoint {
+ CGFloat x;
+ CGFloat y;
+};
+typedef struct CGPoint CGPoint;
+
+struct CGSize {
+ CGFloat width;
+ CGFloat height;
+};
+typedef struct CGSize CGSize;
+
+struct CGRect {
+ CGPoint origin;
+ CGSize size;
+};
+typedef struct CGRect CGRect;
+
+typedef CGRect NSRect;
+typedef CGSize NSSize;
+
+static __inline__ __attribute__((always_inline)) CGFloat NSWidth(NSRect aRect) {
+ return (aRect.size.width);
+}
+
+static __inline__ __attribute__((always_inline)) CGFloat NSHeight(NSRect aRect) {
+ return (aRect.size.height);
+}
+
+NSSize rdar880566_size();
+
+double rdar8808566() {
+ NSRect myRect;
+ myRect.size = rdar880566_size();
+ double x = NSWidth(myRect) + NSHeight(myRect); // no-warning
+ return x;
+}
More information about the cfe-commits
mailing list