Fix unused variable and signed/unsigned warnings (GH-15537)

diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index aa93377..d4b2c93 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -500,10 +500,14 @@
     }
     else {
         PyCompactUnicodeObject *compact = (PyCompactUnicodeObject *)op;
+#ifndef NDEBUG
         void *data;
+#endif
 
         if (ascii->state.compact == 1) {
+#ifndef NDEBUG
             data = compact + 1;
+#endif
             _PyObject_ASSERT(op, kind == PyUnicode_1BYTE_KIND
                                  || kind == PyUnicode_2BYTE_KIND
                                  || kind == PyUnicode_4BYTE_KIND);
@@ -512,9 +516,11 @@
             _PyObject_ASSERT(op, compact->utf8 != data);
         }
         else {
+#ifndef NDEBUG
             PyUnicodeObject *unicode = (PyUnicodeObject *)op;
 
             data = unicode->data.any;
+#endif
             if (kind == PyUnicode_WCHAR_KIND) {
                 _PyObject_ASSERT(op, ascii->length == 0);
                 _PyObject_ASSERT(op, ascii->hash == -1);