inalloca2.ll 721 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. ; This used to be invalid, but now it's valid. Ensure the verifier
  2. ; doesn't reject it.
  3. ; RUN: llvm-as %s -o /dev/null
  4. declare void @doit(i64* inalloca %a)
  5. define void @a() {
  6. entry:
  7. %a = alloca inalloca [2 x i32]
  8. %b = bitcast [2 x i32]* %a to i64*
  9. call void @doit(i64* inalloca %b)
  10. ret void
  11. }
  12. define void @b() {
  13. entry:
  14. %a = alloca inalloca i64
  15. call void @doit(i64* inalloca %a)
  16. call void @doit(i64* inalloca %a)
  17. ret void
  18. }
  19. define void @c(i1 %cond) {
  20. entry:
  21. br i1 %cond, label %if, label %else
  22. if:
  23. %a = alloca inalloca i64
  24. br label %call
  25. else:
  26. %b = alloca inalloca i64
  27. br label %call
  28. call:
  29. %args = phi i64* [ %a, %if ], [ %b, %else ]
  30. call void @doit(i64* inalloca %args)
  31. ret void
  32. }