@@ -114,8 +114,8 @@ void ThreeVersionsSameAttr(void){}
114114// CHECK: define {{.*}}void @ThreeVersionsSameAttr.Z() #[[K]]
115115
116116ATTR (cpu_specific (knl ))
117- void CpuSpecificNoDispatch (void ( * f )( void ) ) {}
118- // CHECK: define {{.*}}void @CpuSpecificNoDispatch.Z(ptr noundef %f ) #[[K:[0-9]+]]
117+ void CpuSpecificNoDispatch (void ) {}
118+ // CHECK: define {{.*}}void @CpuSpecificNoDispatch.Z() #[[K:[0-9]+]]
119119
120120ATTR (cpu_dispatch (knl ))
121121void OrderDispatchUsageSpecific (void );
@@ -151,9 +151,15 @@ void usages(void) {
151151 ThreeVersionsSameAttr ();
152152 // LINUX: @ThreeVersionsSameAttr.ifunc()
153153 // WINDOWS: @ThreeVersionsSameAttr()
154- CpuSpecificNoDispatch ((void (* )(void ))CpuSpecificNoDispatch );
155- // LINUX: @CpuSpecificNoDispatch.ifunc(ptr noundef @CpuSpecificNoDispatch.ifunc)
156- // WINDOWS: @CpuSpecificNoDispatch(ptr noundef @CpuSpecificNoDispatch)
154+ CpuSpecificNoDispatch ();
155+ // LINUX: @CpuSpecificNoDispatch.ifunc()
156+ // WINDOWS: @CpuSpecificNoDispatch()
157+ //
158+ // Adding another use of CpuSpecificNoDispatch reproduces the
159+ // crash in https://github.com/llvm/llvm-project/issues/115299
160+ CpuSpecificNoDispatch ();
161+ // LINUX: @CpuSpecificNoDispatch.ifunc()
162+ // WINDOWS: @CpuSpecificNoDispatch()
157163 OrderDispatchUsageSpecific ();
158164 // LINUX: @OrderDispatchUsageSpecific.ifunc()
159165 // WINDOWS: @OrderDispatchUsageSpecific()
@@ -162,7 +168,7 @@ void usages(void) {
162168 // WINDOWS: @OrderSpecificUsageDispatch()
163169}
164170
165- // LINUX: declare void @CpuSpecificNoDispatch.ifunc(ptr )
171+ // LINUX: declare void @CpuSpecificNoDispatch.ifunc()
166172
167173// has an extra config to emit!
168174ATTR (cpu_dispatch (ivybridge , knl , atom ))
0 commit comments