44
55; TEST 1
66define i32 @foo1 () {
7- ; FNATTRS: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
8- ; FNATTRS-LABEL: define {{[^@]+}}@foo1
9- ; FNATTRS-SAME: () #[[ATTR0:[0-9]+]] {
10- ; FNATTRS-NEXT: ret i32 1
11- ;
12- ; ATTRIBUTOR: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
13- ; ATTRIBUTOR-LABEL: define {{[^@]+}}@foo1
14- ; ATTRIBUTOR-SAME: () #[[ATTR0:[0-9]+]] {
15- ; ATTRIBUTOR-NEXT: ret i32 1
7+ ; COMMON: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
8+ ; COMMON-LABEL: define {{[^@]+}}@foo1
9+ ; COMMON-SAME: () #[[ATTR0:[0-9]+]] {
10+ ; COMMON-NEXT: ret i32 1
1611;
1712 ret i32 1
1813}
@@ -75,23 +70,14 @@ define void @call_non_nounwind(){
7570; }
7671
7772define i32 @maybe_throw (i1 zeroext %0 ) {
78- ; FNATTRS-LABEL: define {{[^@]+}}@maybe_throw
79- ; FNATTRS-SAME: (i1 zeroext [[TMP0:%.*]]) {
80- ; FNATTRS-NEXT: br i1 [[TMP0]], label [[TMP2:%.*]], label [[TMP3:%.*]]
81- ; FNATTRS: 2:
82- ; FNATTRS-NEXT: tail call void @__cxa_rethrow()
83- ; FNATTRS-NEXT: unreachable
84- ; FNATTRS: 3:
85- ; FNATTRS-NEXT: ret i32 -1
86- ;
87- ; ATTRIBUTOR-LABEL: define {{[^@]+}}@maybe_throw
88- ; ATTRIBUTOR-SAME: (i1 zeroext [[TMP0:%.*]]) {
89- ; ATTRIBUTOR-NEXT: br i1 [[TMP0]], label [[TMP2:%.*]], label [[TMP3:%.*]]
90- ; ATTRIBUTOR: 2:
91- ; ATTRIBUTOR-NEXT: tail call void @__cxa_rethrow()
92- ; ATTRIBUTOR-NEXT: unreachable
93- ; ATTRIBUTOR: 3:
94- ; ATTRIBUTOR-NEXT: ret i32 -1
73+ ; COMMON-LABEL: define {{[^@]+}}@maybe_throw
74+ ; COMMON-SAME: (i1 zeroext [[TMP0:%.*]]) {
75+ ; COMMON-NEXT: br i1 [[TMP0]], label [[TMP2:%.*]], label [[TMP3:%.*]]
76+ ; COMMON: 2:
77+ ; COMMON-NEXT: tail call void @__cxa_rethrow()
78+ ; COMMON-NEXT: unreachable
79+ ; COMMON: 3:
80+ ; COMMON-NEXT: ret i32 -1
9581;
9682 br i1 %0 , label %2 , label %3
9783
@@ -115,31 +101,18 @@ declare void @__cxa_rethrow()
115101; }
116102
117103define i32 @catch_thing () personality ptr @__gxx_personality_v0 {
118- ; FNATTRS-LABEL: define {{[^@]+}}@catch_thing() personality ptr @__gxx_personality_v0 {
119- ; FNATTRS-NEXT: invoke void @__cxa_rethrow()
120- ; FNATTRS-NEXT: to label [[TMP1:%.*]] unwind label [[TMP2:%.*]]
121- ; FNATTRS: 1:
122- ; FNATTRS-NEXT: unreachable
123- ; FNATTRS: 2:
124- ; FNATTRS-NEXT: [[TMP3:%.*]] = landingpad { ptr, i32 }
125- ; FNATTRS-NEXT: catch ptr null
126- ; FNATTRS-NEXT: [[TMP4:%.*]] = extractvalue { ptr, i32 } [[TMP3]], 0
127- ; FNATTRS-NEXT: [[TMP5:%.*]] = tail call ptr @__cxa_begin_catch(ptr [[TMP4]])
128- ; FNATTRS-NEXT: tail call void @__cxa_end_catch()
129- ; FNATTRS-NEXT: ret i32 -1
130- ;
131- ; ATTRIBUTOR-LABEL: define {{[^@]+}}@catch_thing() personality ptr @__gxx_personality_v0 {
132- ; ATTRIBUTOR-NEXT: invoke void @__cxa_rethrow()
133- ; ATTRIBUTOR-NEXT: to label [[TMP1:%.*]] unwind label [[TMP2:%.*]]
134- ; ATTRIBUTOR: 1:
135- ; ATTRIBUTOR-NEXT: unreachable
136- ; ATTRIBUTOR: 2:
137- ; ATTRIBUTOR-NEXT: [[TMP3:%.*]] = landingpad { ptr, i32 }
138- ; ATTRIBUTOR-NEXT: catch ptr null
139- ; ATTRIBUTOR-NEXT: [[TMP4:%.*]] = extractvalue { ptr, i32 } [[TMP3]], 0
140- ; ATTRIBUTOR-NEXT: [[TMP5:%.*]] = tail call ptr @__cxa_begin_catch(ptr [[TMP4]])
141- ; ATTRIBUTOR-NEXT: tail call void @__cxa_end_catch()
142- ; ATTRIBUTOR-NEXT: ret i32 -1
104+ ; COMMON-LABEL: define {{[^@]+}}@catch_thing() personality ptr @__gxx_personality_v0 {
105+ ; COMMON-NEXT: invoke void @__cxa_rethrow()
106+ ; COMMON-NEXT: to label [[TMP1:%.*]] unwind label [[TMP2:%.*]]
107+ ; COMMON: 1:
108+ ; COMMON-NEXT: unreachable
109+ ; COMMON: 2:
110+ ; COMMON-NEXT: [[TMP3:%.*]] = landingpad { ptr, i32 }
111+ ; COMMON-NEXT: catch ptr null
112+ ; COMMON-NEXT: [[TMP4:%.*]] = extractvalue { ptr, i32 } [[TMP3]], 0
113+ ; COMMON-NEXT: [[TMP5:%.*]] = tail call ptr @__cxa_begin_catch(ptr [[TMP4]])
114+ ; COMMON-NEXT: tail call void @__cxa_end_catch()
115+ ; COMMON-NEXT: ret i32 -1
143116;
144117 invoke void @__cxa_rethrow () #1
145118 to label %1 unwind label %2
@@ -157,13 +130,9 @@ define i32 @catch_thing() personality ptr @__gxx_personality_v0 {
157130}
158131
159132define i32 @catch_thing_user () {
160- ; FNATTRS-LABEL: define {{[^@]+}}@catch_thing_user() {
161- ; FNATTRS-NEXT: [[CATCH_THING_CALL:%.*]] = call i32 @catch_thing()
162- ; FNATTRS-NEXT: ret i32 [[CATCH_THING_CALL]]
163- ;
164- ; ATTRIBUTOR-LABEL: define {{[^@]+}}@catch_thing_user() {
165- ; ATTRIBUTOR-NEXT: [[CATCH_THING_CALL:%.*]] = call i32 @catch_thing()
166- ; ATTRIBUTOR-NEXT: ret i32 [[CATCH_THING_CALL]]
133+ ; COMMON-LABEL: define {{[^@]+}}@catch_thing_user() {
134+ ; COMMON-NEXT: [[CATCH_THING_CALL:%.*]] = call i32 @catch_thing()
135+ ; COMMON-NEXT: ret i32 [[CATCH_THING_CALL]]
167136;
168137 %catch_thing_call = call i32 @catch_thing ()
169138 ret i32 %catch_thing_call
@@ -178,10 +147,10 @@ define void @catch_specific_landingpad() personality ptr @__gxx_personality_v0 {
178147; COMMON-LABEL: define {{[^@]+}}@catch_specific_landingpad
179148; COMMON-SAME: () #[[ATTR3:[0-9]+]] personality ptr @__gxx_personality_v0 {
180149; COMMON-NEXT: invoke void @do_throw()
181- ; COMMON-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[LPAD:%.*]]
150+ ; COMMON-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[LPAD:%.*]]
182151; COMMON: lpad:
183152; COMMON-NEXT: [[LP:%.*]] = landingpad { ptr, i32 }
184- ; COMMON-NEXT: catch ptr @catch_ty
153+ ; COMMON-NEXT: catch ptr @catch_ty
185154; COMMON-NEXT: call void @abort()
186155; COMMON-NEXT: unreachable
187156; COMMON: unreachable:
@@ -205,10 +174,10 @@ define void @catch_all_landingpad() personality ptr @__gxx_personality_v0 {
205174; COMMON-LABEL: define {{[^@]+}}@catch_all_landingpad
206175; COMMON-SAME: () #[[ATTR4:[0-9]+]] personality ptr @__gxx_personality_v0 {
207176; COMMON-NEXT: invoke void @do_throw()
208- ; COMMON-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[LPAD:%.*]]
177+ ; COMMON-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[LPAD:%.*]]
209178; COMMON: lpad:
210179; COMMON-NEXT: [[LP:%.*]] = landingpad { ptr, i32 }
211- ; COMMON-NEXT: catch ptr null
180+ ; COMMON-NEXT: catch ptr null
212181; COMMON-NEXT: call void @abort()
213182; COMMON-NEXT: unreachable
214183; COMMON: unreachable:
@@ -232,10 +201,10 @@ define void @filter_specific_landingpad() personality ptr @__gxx_personality_v0
232201; COMMON-LABEL: define {{[^@]+}}@filter_specific_landingpad
233202; COMMON-SAME: () #[[ATTR3]] personality ptr @__gxx_personality_v0 {
234203; COMMON-NEXT: invoke void @do_throw()
235- ; COMMON-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[LPAD:%.*]]
204+ ; COMMON-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[LPAD:%.*]]
236205; COMMON: lpad:
237206; COMMON-NEXT: [[LP:%.*]] = landingpad { ptr, i32 }
238- ; COMMON-NEXT: filter [1 x ptr] [ptr @catch_ty]
207+ ; COMMON-NEXT: filter [1 x ptr] [ptr @catch_ty]
239208; COMMON-NEXT: call void @abort()
240209; COMMON-NEXT: unreachable
241210; COMMON: unreachable:
@@ -259,10 +228,10 @@ define void @filter_none_landingpad() personality ptr @__gxx_personality_v0 {
259228; COMMON-LABEL: define {{[^@]+}}@filter_none_landingpad
260229; COMMON-SAME: () #[[ATTR4]] personality ptr @__gxx_personality_v0 {
261230; COMMON-NEXT: invoke void @do_throw()
262- ; COMMON-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[LPAD:%.*]]
231+ ; COMMON-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[LPAD:%.*]]
263232; COMMON: lpad:
264233; COMMON-NEXT: [[LP:%.*]] = landingpad { ptr, i32 }
265- ; COMMON-NEXT: filter [0 x ptr] zeroinitializer
234+ ; COMMON-NEXT: filter [0 x ptr] zeroinitializer
266235; COMMON-NEXT: call void @abort()
267236; COMMON-NEXT: unreachable
268237; COMMON: unreachable:
@@ -286,10 +255,10 @@ define void @cleanup_landingpad() personality ptr @__gxx_personality_v0 {
286255; COMMON-LABEL: define {{[^@]+}}@cleanup_landingpad
287256; COMMON-SAME: () #[[ATTR3]] personality ptr @__gxx_personality_v0 {
288257; COMMON-NEXT: invoke void @do_throw()
289- ; COMMON-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[LPAD:%.*]]
258+ ; COMMON-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[LPAD:%.*]]
290259; COMMON: lpad:
291260; COMMON-NEXT: [[LP:%.*]] = landingpad { ptr, i32 }
292- ; COMMON-NEXT: cleanup
261+ ; COMMON-NEXT: cleanup
293262; COMMON-NEXT: call void @abort()
294263; COMMON-NEXT: unreachable
295264; COMMON: unreachable:
@@ -313,7 +282,7 @@ define void @cleanuppad() personality ptr @__gxx_personality_v0 {
313282; FNATTRS-LABEL: define {{[^@]+}}@cleanuppad
314283; FNATTRS-SAME: () #[[ATTR3]] personality ptr @__gxx_personality_v0 {
315284; FNATTRS-NEXT: invoke void @do_throw()
316- ; FNATTRS-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[CPAD:%.*]]
285+ ; FNATTRS-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[CPAD:%.*]]
317286; FNATTRS: cpad:
318287; FNATTRS-NEXT: [[CP:%.*]] = cleanuppad within none []
319288; FNATTRS-NEXT: call void @abort()
@@ -325,7 +294,7 @@ define void @cleanuppad() personality ptr @__gxx_personality_v0 {
325294; ATTRIBUTOR-LABEL: define {{[^@]+}}@cleanuppad
326295; ATTRIBUTOR-SAME: () #[[ATTR4]] personality ptr @__gxx_personality_v0 {
327296; ATTRIBUTOR-NEXT: invoke void @do_throw()
328- ; ATTRIBUTOR-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[CPAD:%.*]]
297+ ; ATTRIBUTOR-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[CPAD:%.*]]
329298; ATTRIBUTOR: cpad:
330299; ATTRIBUTOR-NEXT: [[CP:%.*]] = cleanuppad within none []
331300; ATTRIBUTOR-NEXT: call void @abort()
@@ -350,7 +319,7 @@ define void @catchswitch_cleanuppad() personality ptr @__gxx_personality_v0 {
350319; FNATTRS-LABEL: define {{[^@]+}}@catchswitch_cleanuppad
351320; FNATTRS-SAME: () #[[ATTR3]] personality ptr @__gxx_personality_v0 {
352321; FNATTRS-NEXT: invoke void @do_throw()
353- ; FNATTRS-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[CS:%.*]]
322+ ; FNATTRS-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[CS:%.*]]
354323; FNATTRS: cs:
355324; FNATTRS-NEXT: [[TOK:%.*]] = catchswitch within none [label %catch] unwind label [[CPAD:%.*]]
356325; FNATTRS: catch:
@@ -368,7 +337,7 @@ define void @catchswitch_cleanuppad() personality ptr @__gxx_personality_v0 {
368337; ATTRIBUTOR-LABEL: define {{[^@]+}}@catchswitch_cleanuppad
369338; ATTRIBUTOR-SAME: () #[[ATTR4]] personality ptr @__gxx_personality_v0 {
370339; ATTRIBUTOR-NEXT: invoke void @do_throw()
371- ; ATTRIBUTOR-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[CS:%.*]]
340+ ; ATTRIBUTOR-NEXT: to label [[UNREACHABLE:%.*]] unwind label [[CS:%.*]]
372341; ATTRIBUTOR: cs:
373342; ATTRIBUTOR-NEXT: [[TOK:%.*]] = catchswitch within none [label %catch] unwind label [[CPAD:%.*]]
374343; ATTRIBUTOR: catch:
0 commit comments