|
@@ -164,7 +164,21 @@ int aio_bh_poll(AioContext *ctx)
|
|
|
|
|
|
/* Synchronizes with QSLIST_INSERT_HEAD_ATOMIC in aio_bh_enqueue(). */
|
|
/* Synchronizes with QSLIST_INSERT_HEAD_ATOMIC in aio_bh_enqueue(). */
|
|
QSLIST_MOVE_ATOMIC(&slice.bh_list, &ctx->bh_list);
|
|
QSLIST_MOVE_ATOMIC(&slice.bh_list, &ctx->bh_list);
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * GCC13 [-Werror=dangling-pointer=] complains that the local variable
|
|
|
|
+ * 'slice' is being stored in the global 'ctx->bh_slice_list' but the
|
|
|
|
+ * list is emptied before this function returns.
|
|
|
|
+ */
|
|
|
|
+#if !defined(__clang__)
|
|
|
|
+#pragma GCC diagnostic push
|
|
|
|
+#pragma GCC diagnostic ignored "-Wpragmas"
|
|
|
|
+#pragma GCC diagnostic ignored "-Wdangling-pointer="
|
|
|
|
+#endif
|
|
QSIMPLEQ_INSERT_TAIL(&ctx->bh_slice_list, &slice, next);
|
|
QSIMPLEQ_INSERT_TAIL(&ctx->bh_slice_list, &slice, next);
|
|
|
|
+#if !defined(__clang__)
|
|
|
|
+#pragma GCC diagnostic pop
|
|
|
|
+#endif
|
|
|
|
|
|
while ((s = QSIMPLEQ_FIRST(&ctx->bh_slice_list))) {
|
|
while ((s = QSIMPLEQ_FIRST(&ctx->bh_slice_list))) {
|
|
QEMUBH *bh;
|
|
QEMUBH *bh;
|