[rtsan] Add fork/execve interceptors (#117198)
[llvm-project.git] / llvm / test / Transforms / CodeExtractor / 2004-03-18-InvokeHandling.ll
blobc132bb058acb64ee72f8b48895a0580f4093c431
1 ; RUN: opt < %s -passes='function(loop-simplify),loop-extract'  -disable-output
3 declare i32 @_IO_getc()
5 declare void @__errno_location()
7 define void @yylex() personality ptr @__gcc_personality_v0 {
8 entry:
9         switch i32 0, label %label.126 [
10                  i32 0, label %return
11                  i32 61, label %combine
12                  i32 33, label %combine
13                  i32 94, label %combine
14                  i32 37, label %combine
15                  i32 47, label %combine
16                  i32 42, label %combine
17                  i32 62, label %combine
18                  i32 60, label %combine
19                  i32 58, label %combine
20                  i32 124, label %combine
21                  i32 38, label %combine
22                  i32 45, label %combine
23                  i32 43, label %combine
24                  i32 34, label %string_constant
25                  i32 39, label %char_constant
26                  i32 46, label %loopexit.2
27                  i32 57, label %loopexit.2
28                  i32 56, label %loopexit.2
29                  i32 55, label %loopexit.2
30                  i32 54, label %loopexit.2
31                  i32 53, label %loopexit.2
32                  i32 52, label %loopexit.2
33                  i32 51, label %loopexit.2
34                  i32 50, label %loopexit.2
35                  i32 49, label %loopexit.2
36                  i32 48, label %loopexit.2
37                  i32 95, label %letter
38                  i32 122, label %letter
39                  i32 121, label %letter
40                  i32 120, label %letter
41                  i32 119, label %letter
42                  i32 118, label %letter
43                  i32 117, label %letter
44                  i32 116, label %letter
45                  i32 115, label %letter
46                  i32 114, label %letter
47                  i32 113, label %letter
48                  i32 112, label %letter
49                  i32 111, label %letter
50                  i32 110, label %letter
51                  i32 109, label %letter
52                  i32 108, label %letter
53                  i32 107, label %letter
54                  i32 106, label %letter
55                  i32 105, label %letter
56                  i32 104, label %letter
57                  i32 103, label %letter
58                  i32 102, label %letter
59                  i32 101, label %letter
60                  i32 100, label %letter
61                  i32 99, label %letter
62                  i32 98, label %letter
63                  i32 97, label %letter
64                  i32 90, label %letter
65                  i32 89, label %letter
66                  i32 88, label %letter
67                  i32 87, label %letter
68                  i32 86, label %letter
69                  i32 85, label %letter
70                  i32 84, label %letter
71                  i32 83, label %letter
72                  i32 82, label %letter
73                  i32 81, label %letter
74                  i32 80, label %letter
75                  i32 79, label %letter
76                  i32 78, label %letter
77                  i32 77, label %letter
78                  i32 75, label %letter
79                  i32 74, label %letter
80                  i32 73, label %letter
81                  i32 72, label %letter
82                  i32 71, label %letter
83                  i32 70, label %letter
84                  i32 69, label %letter
85                  i32 68, label %letter
86                  i32 67, label %letter
87                  i32 66, label %letter
88                  i32 65, label %letter
89                  i32 64, label %label.13
90                  i32 76, label %label.12
91                  i32 36, label %label.11
92                  i32 -1, label %label.10
93         ]
95 label.10:               ; preds = %entry
96         ret void
98 label.11:               ; preds = %entry
99         ret void
101 label.12:               ; preds = %entry
102         ret void
104 label.13:               ; preds = %entry
105         ret void
107 letter:         ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
108         ret void
110 loopexit.2:             ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
111         switch i32 0, label %shortcirc_next.14 [
112                  i32 48, label %then.20
113                  i32 46, label %endif.38
114         ]
116 then.20:                ; preds = %loopexit.2
117         switch i32 0, label %else.4 [
118                  i32 120, label %then.21
119                  i32 88, label %then.21
120         ]
122 then.21:                ; preds = %then.20, %then.20
123         ret void
125 else.4:         ; preds = %then.20
126         ret void
128 shortcirc_next.14:              ; preds = %loopexit.2
129         ret void
131 endif.38:               ; preds = %loopexit.2
132         br i1 false, label %then.40, label %then.39
134 then.39:                ; preds = %endif.38
135         ret void
137 then.40:                ; preds = %endif.38
138         invoke void @__errno_location( )
139                         to label %switchexit.2 unwind label %LongJmpBlkPre
141 loopentry.6:            ; preds = %endif.52
142         switch i32 0, label %switchexit.2 [
143                  i32 73, label %label.82
144                  i32 105, label %label.82
145                  i32 76, label %label.80
146                  i32 108, label %label.80
147                  i32 70, label %label.78
148                  i32 102, label %label.78
149         ]
151 label.78:               ; preds = %loopentry.6, %loopentry.6
152         ret void
154 label.80:               ; preds = %loopentry.6, %loopentry.6
155         ret void
157 label.82:               ; preds = %loopentry.6, %loopentry.6
158         %c.0.15.5 = phi i32 [ %tmp.79417, %loopentry.6 ], [ %tmp.79417, %loopentry.6 ]          ; <i32> [#uses=0]
159         ret void
161 switchexit.2:           ; preds = %loopentry.6, %then.40
162         br i1 false, label %endif.51, label %loopexit.6
164 endif.51:               ; preds = %switchexit.2
165         br i1 false, label %endif.52, label %then.52
167 then.52:                ; preds = %endif.51
168         ret void
170 endif.52:               ; preds = %endif.51
171         %tmp.79417 = invoke i32 @_IO_getc( )
172                         to label %loopentry.6 unwind label %LongJmpBlkPre               ; <i32> [#uses=2]
174 loopexit.6:             ; preds = %switchexit.2
175         ret void
177 char_constant:          ; preds = %entry
178         ret void
180 string_constant:                ; preds = %entry
181         ret void
183 combine:                ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
184         ret void
186 label.126:              ; preds = %entry
187         ret void
189 return:         ; preds = %entry
190         ret void
192 LongJmpBlkPre:          ; preds = %endif.52, %then.40
193         %exn = landingpad { ptr, i32 }
194                  catch ptr null
195         ret void
198 declare i32 @__gcc_personality_v0(...)