alias-resolve.ll 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. ; RUN: opt < %s -globalopt -S | FileCheck %s
  2. @foo1 = alias void ()* @foo2
  3. ; CHECK: @foo1 = alias void ()* @bar2
  4. @foo2 = alias void()* @bar1
  5. ; CHECK: @foo2 = alias void ()* @bar2
  6. @bar1 = alias void ()* @bar2
  7. ; CHECK: @bar1 = alias void ()* @bar2
  8. @weak1 = weak alias void ()* @bar2
  9. ; CHECK: @weak1 = weak alias void ()* @bar2
  10. @bar4 = private unnamed_addr constant [2 x i8*] zeroinitializer
  11. @foo4 = linkonce_odr unnamed_addr alias getelementptr inbounds ([2 x i8*], [2 x i8*]* @bar4, i32 0, i32 1)
  12. ; CHECK: @foo4 = linkonce_odr unnamed_addr alias getelementptr inbounds ([2 x i8*], [2 x i8*]* @bar4, i32 0, i32 1)
  13. define void @bar2() {
  14. ret void
  15. }
  16. ; CHECK: define void @bar2()
  17. define void @baz() {
  18. entry:
  19. call void @foo1()
  20. ; CHECK: call void @bar2()
  21. call void @foo2()
  22. ; CHECK: call void @bar2()
  23. call void @bar1()
  24. ; CHECK: call void @bar2()
  25. call void @weak1()
  26. ; CHECK: call void @weak1()
  27. ret void
  28. }
  29. @foo3 = alias void ()* @bar3
  30. ; CHECK-NOT: bar3
  31. define internal void @bar3() {
  32. ret void
  33. }
  34. ;CHECK: define void @foo3