diff --git a/library/debug.c b/library/debug.c
index 71872fd..e17f7e0 100644
--- a/library/debug.c
+++ b/library/debug.c
@@ -220,6 +220,7 @@
 
 #if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO)
 
+/* no-check-names will be removed in mbedtls#10229. */
 #if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) || defined(MBEDTLS_PK_USE_PSA_RSA_DATA) //no-check-names
 static void mbedtls_debug_print_integer(const mbedtls_ssl_context *ssl, int level,
                                         const char *file, int line, const char *text,
@@ -256,6 +257,7 @@
         debug_send_line(ssl, level, file, line, str);
     }
 }
+/* no-check-names will be removed in mbedtls#10229. */
 #endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY || MBEDTLS_PK_USE_PSA_RSA_DATA */ //no-check-names
 
 #if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)
@@ -290,6 +292,7 @@
 }
 #endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */
 
+/* no-check-names will be removed in mbedtls#10229. */
 #if defined(MBEDTLS_PK_USE_PSA_RSA_DATA) //no-check-names
 static size_t debug_count_valid_bits(unsigned char **buf, size_t len)
 {
@@ -323,6 +326,7 @@
                                         const char *text, const mbedtls_pk_context *pk)
 {
     char str[DEBUG_BUF_SIZE];
+    /* no-check-names will be removed in mbedtls#10229. */
     unsigned char key_der[MBEDTLS_PK_MAX_RSA_PUBKEY_RAW_LEN]; //no-check-names
     unsigned char *start_cur;
     unsigned char *end_cur;
@@ -374,6 +378,7 @@
     mbedtls_snprintf(str, sizeof(str), "%s.E", text);
     mbedtls_debug_print_integer(ssl, level, file, line, str, start_cur, bits);
 }
+/* no-check-names will be removed in mbedtls#10229. */
 #endif /* MBEDTLS_PK_USE_PSA_RSA_DATA */ //no-check-names
 
 static void debug_print_pk(const mbedtls_ssl_context *ssl, int level,
@@ -405,6 +410,7 @@
             mbedtls_debug_print_mpi(ssl, level, file, line, name, items[i].value);
         } else
 #endif /* MBEDTLS_RSA_C */
+/* no-check-names will be removed in mbedtls#10229. */
 #if defined(MBEDTLS_PK_USE_PSA_RSA_DATA) //no-check-names
         if (items[i].type == MBEDTLS_PK_DEBUG_PSA_RSA) { //no-check-names
             mbedtls_debug_print_psa_rsa(ssl, level, file, line, name, items[i].value);
