2013-05-17-VarargsAndBlockAddress.ll 663 B

12345678910111213141516171819202122232425
  1. ; RUN: opt %s -deadargelim -S | FileCheck %s
  2. @block_addr = global i8* blockaddress(@varargs_func, %l1)
  3. ; CHECK: @block_addr = global i8* blockaddress(@varargs_func, %l1)
  4. ; This function is referenced by a "blockaddress" constant but it is
  5. ; not address-taken, so the pass should be able to remove its unused
  6. ; varargs.
  7. define internal i32 @varargs_func(i8* %addr, ...) {
  8. indirectbr i8* %addr, [ label %l1, label %l2 ]
  9. l1:
  10. ret i32 1
  11. l2:
  12. ret i32 2
  13. }
  14. ; CHECK: define internal i32 @varargs_func(i8* %addr) {
  15. define i32 @caller(i8* %addr) {
  16. %r = call i32 (i8*, ...) @varargs_func(i8* %addr)
  17. ret i32 %r
  18. }
  19. ; CHECK: %r = call i32 @varargs_func(i8* %addr)