+/* True if PTR is pure. */
+INLINE bool
+PURE_P (void *ptr)
+{
+ return (uintptr_t) (ptr) - (uintptr_t) pure <= PURESIZE;
+}
+
+/* Signal an error if OBJ is pure. PTR is OBJ untagged. */
+INLINE void
+CHECK_IMPURE (Lisp_Object obj, void *ptr)
+{
+ if (PURE_P (ptr))
+ pure_write_error (obj);
+}