   internal init(
     unicodeScalar: Builtin.Int32
   ) {
-    self._startPtrOrData = UInt(UInt32(unicodeScalar))._builtinWordValue
+    self._startPtrOrData =
+      unsafeBitCast(
+        UInt(UInt32(unicodeScalar)),
+        to: OpaquePointer.self
+      )._rawValue
     self._utf8CodeUnitCount = 0._builtinWordValue
     self._flags = UnicodeScalar(_builtinUnicodeScalarLiteral: unicodeScalar).isASCII
       ? (0x3 as UInt8)._value

    _precondition(
      hasPointerRepresentation,
      "StaticString should have pointer representation")
    return UnsafePointer(bitPattern: UInt(_startPtrOrData))!
  }

  /// The stored Unicode scalar value.

    _precondition(
      !hasPointerRepresentation,
      "StaticString should have Unicode scalar representation")
    return UnicodeScalar(
      UInt32(UInt(bitPattern: UnsafePointer<Builtin.RawPointer>(_startPtrOrData)))
    )
  }

  /// If `self` stores a pointer to ASCII or UTF-8 code units, the
