With opaque pointers, we always create forward references as i8
globals, so it will not be Function here.
// types agree.
auto I = ForwardRefValIDs.find(NumberedVals.size());
if (I != ForwardRefValIDs.end()) {
- FwdFn = cast<Function>(I->second.first);
+ FwdFn = I->second.first;
if (!FwdFn->getType()->isOpaque() && FwdFn->getType() != PFT)
return error(NameLoc, "type of definition and forward reference of '@" +
Twine(NumberedVals.size()) +
define void @byval(ptr byval({ i32, i32 }) %0) {
ret void
}
+
+; CHECK: define void @call_unnamed_fn() {
+; CHECK: call void @0()
+define void @call_unnamed_fn() {
+ call void @0()
+ ret void
+}
+
+; CHECK: define void @0() {
+define void @0() {
+ ret void
+}