Files
swift-mirror/test/SILOptimizer/moveonly_builtins.swift
Henrik G. Olsson cbc0ec3b88 Add -verify-ignore-unrelated where necessary (NFC)
These are tests that fail in the next commit without this flag. This
does not add -verify-ignore-unrelated to all tests with -verify, only
the ones that would fail without it. This is NFC since this flag is
currently a no-op.
2025-10-04 14:19:52 -07:00

37 lines
1.7 KiB
Swift

// RUN: %target-swift-frontend-typecheck -verify -verify-ignore-unrelated %s -DILLEGAL \
// RUN: -enable-builtin-module \
// RUN: -verify-additional-prefix illegal-
// RUN: %target-swift-frontend -emit-sil -sil-verify-all -verify -verify-ignore-unrelated %s \
// RUN: -enable-builtin-module
import Builtin
struct NC: ~Copyable {}
func checkPointerBuiltins(_ ptr: Builtin.RawPointer, _ value: consuming NC) {
Builtin.initialize(value, ptr)
}
func checkArrayBuiltins(_ dest: Builtin.RawPointer, src: Builtin.RawPointer, count: Builtin.Word) {
Builtin.takeArrayFrontToBack(NC.self, dest, src, count)
Builtin.takeArrayBackToFront(NC.self, dest, src, count)
Builtin.assignTakeArray(NC.self, dest, src, count)
Builtin.destroyArray(NC.self, dest, count)
#if ILLEGAL
Builtin.copyArray(NC.self, dest, src, count) // expected-illegal-error {{global function 'copyArray' requires that 'NC' conform to 'Copyable'}}
Builtin.assignCopyArrayNoAlias(NC.self, dest, src, count) // expected-illegal-error {{global function 'assignCopyArrayNoAlias' requires that 'NC' conform to 'Copyable'}}
Builtin.assignCopyArrayFrontToBack(NC.self, dest, src, count) // expected-illegal-error {{global function 'assignCopyArrayFrontToBack' requires that 'NC' conform to 'Copyable'}}
Builtin.assignCopyArrayBackToFront(NC.self, dest, src, count) // expected-illegal-error {{global function 'assignCopyArrayBackToFront' requires that 'NC' conform to 'Copyable'}}
#endif
}
public func checkIllegal() {
#if ILLEGAL
_ = Builtin.unsafeCastToNativeObject(NC())
_ = Builtin.castToNativeObject(NC()) // expected-illegal-error {{global function 'castToNativeObject' requires that 'NC' conform to 'Copyable'}}
let _: NC = Builtin.zeroInitializer()
#endif
}