namespace Unity.Burst.CompilerServices { /// /// Compile-time aliasing intrinsics. /// public static class Aliasing { /// /// Will cause a compiler error in Burst-compiled code if a and b do not alias. /// /// A pointer to do aliasing checks on. /// A pointer to do aliasing checks on. public static unsafe void ExpectAliased(void* a, void* b) { } /// /// Will cause a compiler error in Burst-compiled code if a and b do not alias. /// /// The type of a. /// The type of b. /// A reference to do aliasing checks on. /// A reference to do aliasing checks on. public static void ExpectAliased(in A a, in B b) where A : struct where B : struct { } /// /// Will cause a compiler error in Burst-compiled code if a and b do not alias. /// /// The type of b. /// A pointer to do aliasing checks on. /// A reference to do aliasing checks on. public static unsafe void ExpectAliased(void* a, in B b) where B : struct { } /// /// Will cause a compiler error in Burst-compiled code if a and b do not alias. /// /// The type of a. /// A reference to do aliasing checks on. /// A pointer to do aliasing checks on. public static unsafe void ExpectAliased(in A a, void* b) where A : struct { } /// /// Will cause a compiler error in Burst-compiled code if a and b can alias. /// /// A pointer to do aliasing checks on. /// A pointer to do aliasing checks on. public static unsafe void ExpectNotAliased(void* a, void* b) { } /// /// Will cause a compiler error in Burst-compiled code if a and b can alias. /// /// The type of a. /// The type of b. /// A reference to do aliasing checks on. /// A reference to do aliasing checks on. public static void ExpectNotAliased(in A a, in B b) where A : struct where B : struct { } /// /// Will cause a compiler error in Burst-compiled code if a and b can alias. /// /// The type of b. /// A pointer to do aliasing checks on. /// A reference to do aliasing checks on. public static unsafe void ExpectNotAliased(void* a, in B b) where B : struct { } /// /// Will cause a compiler error in Burst-compiled code if a and b can alias. /// /// The type of a. /// A reference to do aliasing checks on. /// A pointer to do aliasing checks on. public static unsafe void ExpectNotAliased(in A a, void* b) where A : struct { } } }