Don't miss values used in calls outside regular argument list.
assert(isa<Function>(Callee) || isa<GlobalAlias>(Callee));
auto B = CB.arg_begin(), E = CB.arg_end();
+ int Found = 0;
for (auto A = B; A != E; ++A) {
if (A->get() == V) {
+ ++Found;
ConstantRange Offset = offsetFrom(UI, Ptr);
US.Calls.emplace_back(Callee, A - B, Offset);
}
}
+ if (!Found) {
+ US.updateRange(UnknownRange);
+ return false;
+ }
break;
}
%val = load %zerosize_type, %zerosize_type* %p, align 4
ret void
}
+
+define void @OperandBundle() {
+; CHECK-LABEL: @OperandBundle dso_preemptable{{$}}
+; CHECK-NEXT: args uses:
+; CHECK-NEXT: allocas uses:
+; CHECK-NEXT: a[4]: full-set
+; CHECK-NOT: ]:
+entry:
+ %a = alloca i32, align 4
+ call void @LeakAddress() ["unknown"(i32* %a)]
+ ret void
+}