extract-alias.ll 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. ; RUN: llvm-extract -func foo -S < %s | FileCheck %s
  2. ; RUN: llvm-extract -delete -func foo -S < %s | FileCheck --check-prefix=DELETE %s
  3. ; RUN: llvm-extract -alias zeda0 -S < %s | FileCheck --check-prefix=ALIAS %s
  4. ; RUN: llvm-extract -ralias '.*bar' -S < %s | FileCheck --check-prefix=ALIASRE %s
  5. ; Both aliases should be converted to declarations
  6. ; CHECK: @zeda0 = external global i32
  7. ; CHECK: define i32* @foo() {
  8. ; CHECK-NEXT: call void @a0bar()
  9. ; CHECK-NEXT: ret i32* @zeda0
  10. ; CHECK-NEXT: }
  11. ; CHECK: declare void @a0bar()
  12. ; DELETE: @zed = global i32 0
  13. ; DELETE: @zeda0 = alias i32* @zed
  14. ; DELETE-NEXT: @a0foo = alias i32* ()* @foo
  15. ; DELETE-NEXT: @a0a0bar = alias void ()* @bar
  16. ; DELETE-NEXT: @a0bar = alias void ()* @bar
  17. ; DELETE: declare i32* @foo()
  18. ; DELETE: define void @bar() {
  19. ; DELETE-NEXT: %c = call i32* @foo()
  20. ; DELETE-NEXT: ret void
  21. ; DELETE-NEXT: }
  22. ; ALIAS: @zed = external global i32
  23. ; ALIAS: @zeda0 = alias i32* @zed
  24. ; ALIASRE: @a0a0bar = alias void ()* @bar
  25. ; ALIASRE: @a0bar = alias void ()* @bar
  26. ; ALIASRE: declare void @bar()
  27. @zed = global i32 0
  28. @zeda0 = alias i32* @zed
  29. @a0foo = alias i32* ()* @foo
  30. define i32* @foo() {
  31. call void @a0bar()
  32. ret i32* @zeda0
  33. }
  34. @a0a0bar = alias void ()* @bar
  35. @a0bar = alias void ()* @bar
  36. define void @bar() {
  37. %c = call i32* @foo()
  38. ret void
  39. }