unwind: ignore component_match_add_release() paths
[smatch.git] / validation / linear / bug-assign-op0.c
blob3a2bef3cb6181c250eb14b4a8b971290fd8bde12
1 int asr(int s)
3 s >>= 11U;
4 return s;
7 unsigned int lsr(unsigned int u)
9 u >>= 11;
10 return u;
13 int divr(int s, unsigned long long u)
15 extern int use(int, unsigned);
16 int t = s;
17 s = s / u;
18 u = u / t;
19 return use(s, u);
22 int sdivul(int s, unsigned long long u)
24 s /= u; // divu
25 return s;
28 unsigned int udivsl(unsigned int u, long long s)
30 u /= s; // divs
31 return u;
34 int uldivs(int s, unsigned long long u)
36 u /= s; // divu
37 return u;
40 unsigned int sldivu(unsigned int u, long long s)
42 s /= u; // divs
43 return s;
47 * check-name: bug-assign-op0
48 * check-command: test-linearize -Wno-decl $file
50 * check-output-start
51 asr:
52 .L0:
53 <entry-point>
54 asr.32 %r2 <- %arg1, $11
55 ret.32 %r2
58 lsr:
59 .L2:
60 <entry-point>
61 lsr.32 %r6 <- %arg1, $11
62 ret.32 %r6
65 divr:
66 .L4:
67 <entry-point>
68 sext.64 %r11 <- (32) %arg1
69 divu.64 %r13 <- %r11, %arg2
70 trunc.32 %r14 <- (64) %r13
71 divu.64 %r18 <- %arg2, %r11
72 trunc.32 %r21 <- (64) %r18
73 call.32 %r22 <- use, %r14, %r21
74 ret.32 %r22
77 sdivul:
78 .L6:
79 <entry-point>
80 sext.64 %r26 <- (32) %arg1
81 divu.64 %r27 <- %r26, %arg2
82 trunc.32 %r28 <- (64) %r27
83 ret.32 %r28
86 udivsl:
87 .L8:
88 <entry-point>
89 zext.64 %r33 <- (32) %arg1
90 divs.64 %r34 <- %r33, %arg2
91 trunc.32 %r35 <- (64) %r34
92 ret.32 %r35
95 uldivs:
96 .L10:
97 <entry-point>
98 sext.64 %r39 <- (32) %arg1
99 divu.64 %r41 <- %arg2, %r39
100 trunc.32 %r43 <- (64) %r41
101 ret.32 %r43
104 sldivu:
105 .L12:
106 <entry-point>
107 zext.64 %r46 <- (32) %arg1
108 divs.64 %r48 <- %arg2, %r46
109 trunc.32 %r50 <- (64) %r48
110 ret.32 %r50
113 * check-output-end