Mercurial > hg > CbC > CbC_llvm
comparison clang/test/Analysis/default-analyze.m @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | c4bab56944e8 |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 // RUN: %clang_analyze_cc1 %s -o %t | |
2 | |
3 // Tests that some specific checkers are enabled by default. | |
4 | |
5 id foo(int x) { | |
6 id title; | |
7 switch (x) { | |
8 case 1: | |
9 title = @"foo"; // expected-warning {{never read}} | |
10 case 2: | |
11 title = @"bar"; | |
12 break; | |
13 default: | |
14 title = @"baz"; | |
15 break; | |
16 } | |
17 return title; | |
18 } | |
19 | |
20 // <rdar://problem/8808566> Static analyzer is wrong: NSWidth(imgRect) not understood as unconditional assignment | |
21 // | |
22 // Note: this requires inlining support. This previously issued a false positive use of | |
23 // uninitialized value when calling NSWidth. | |
24 typedef double CGFloat; | |
25 | |
26 struct CGPoint { | |
27 CGFloat x; | |
28 CGFloat y; | |
29 }; | |
30 typedef struct CGPoint CGPoint; | |
31 | |
32 struct CGSize { | |
33 CGFloat width; | |
34 CGFloat height; | |
35 }; | |
36 typedef struct CGSize CGSize; | |
37 | |
38 struct CGRect { | |
39 CGPoint origin; | |
40 CGSize size; | |
41 }; | |
42 typedef struct CGRect CGRect; | |
43 | |
44 typedef CGRect NSRect; | |
45 typedef CGSize NSSize; | |
46 | |
47 static __inline__ __attribute__((always_inline)) CGFloat NSWidth(NSRect aRect) { | |
48 return (aRect.size.width); | |
49 } | |
50 | |
51 static __inline__ __attribute__((always_inline)) CGFloat NSHeight(NSRect aRect) { | |
52 return (aRect.size.height); | |
53 } | |
54 | |
55 NSSize rdar880566_size(); | |
56 | |
57 double rdar8808566() { | |
58 NSRect myRect; | |
59 myRect.size = rdar880566_size(); | |
60 double x = NSWidth(myRect) + NSHeight(myRect); // no-warning | |
61 return x; | |
62 } | |
63 |