Add Builtin.addressOfRawLayout

This commit is contained in:
Alejandro Alonso
2024-03-25 22:05:29 -07:00
parent efb0e1e933
commit 5d0deaa4a3
5 changed files with 36 additions and 0 deletions

View File

@@ -2118,6 +2118,15 @@ static ValueDecl *getInjectEnumTag(ASTContext &ctx, Identifier id) {
return builder.build(id);
}
static ValueDecl *getAddressOfRawLayout(ASTContext &ctx, Identifier id) {
BuiltinFunctionBuilder builder(ctx, /* genericParamCount */ 1);
builder.addParameter(makeGenericParam(), ParamSpecifier::Borrowing);
builder.setResult(makeConcrete(ctx.TheRawPointerType));
return builder.build(id);
}
/// An array of the overloaded builtin kinds.
static const OverloadedBuiltinKind OverloadedBuiltinKinds[] = {
OverloadedBuiltinKind::None,
@@ -3191,6 +3200,9 @@ ValueDecl *swift::getBuiltinValueDecl(ASTContext &Context, Identifier Id) {
case BuiltinValueKind::DistributedActorAsAnyActor:
return getDistributedActorAsAnyActor(Context, Id);
case BuiltinValueKind::AddressOfRawLayout:
return getAddressOfRawLayout(Context, Id);
}
llvm_unreachable("bad builtin value!");