Home | History | Annotate | Download | only in Assembler
      1 ; RUN: verify-uselistorder < %s
      2 
      3 ; Global referencing ifunc.
      4 @ptr_foo = global void ()* @foo_ifunc
      5 
      6 ; Alias for ifunc.
      7 @alias_foo = alias void (), void ()* @foo_ifunc
      8 
      9 @foo_ifunc = ifunc void (), i8* ()* @foo_resolver
     10 
     11 define i8* @foo_resolver() {
     12 entry:
     13   ret i8* null
     14 }
     15 
     16 ; Function referencing ifunc.
     17 define void @bar() {
     18 entry:
     19   call void @foo_ifunc()
     20   ret void
     21 }
     22 
     23 ; Global referencing function.
     24 @ptr_bar = global void ()* @bar
     25 
     26 ; Alias for function.
     27 @alias_bar = alias void (), void ()* @bar
     28 
     29 @bar_ifunc = ifunc void (), i8* ()* @bar2_ifunc
     30 @bar2_ifunc = ifunc i8* (), i8* ()* @bar_resolver
     31 
     32 define i8* @bar_resolver() {
     33 entry:
     34   ret i8* null
     35 }
     36 
     37 ; Function referencing bar.
     38 define void @bar2() {
     39 entry:
     40   call void @bar()
     41   ret void
     42 }
     43