58 lines
1.9 KiB
Diff
58 lines
1.9 KiB
Diff
From 63ab887be90c7fe37d537ea75e60eb95d6d87d3f Mon Sep 17 00:00:00 2001
|
||
From: Peter Seiderer <ps.report@gmx.net>
|
||
Date: Sun, 5 Mar 2023 22:08:13 +0100
|
||
Subject: [PATCH] uqmi: avoid gcc-12.x false error reporting (storing the
|
||
address of local variable 'complete' in '*req.complete')
|
||
|
||
Avoid gcc-12.x false error reporting (req->complete is later reset to NULL
|
||
in case of use of local complete):
|
||
|
||
dev.c:217:23: error: storing the address of local variable 'complete' in '*req.complete' [-Werror=dangling-pointer=]
|
||
217 | req->complete = &complete;
|
||
| ~~~~~~~~~~~~~~^~~~~~~~~~~
|
||
|
||
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
|
||
[Upstream: http://lists.openwrt.org/pipermail/openwrt-devel/2023-March/040667.html]
|
||
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
|
||
---
|
||
Changes v1 -> v2:
|
||
- apply pragma ignored only for gcc >= 12.x (as the warning
|
||
'-Wdangling-pointer' was introduced with gcc-12.x)
|
||
---
|
||
dev.c | 12 ++++++++++++
|
||
1 file changed, 12 insertions(+)
|
||
|
||
diff --git a/dev.c b/dev.c
|
||
index bd10207..dbd42d4 100644
|
||
--- a/dev.c
|
||
+++ b/dev.c
|
||
@@ -203,6 +203,15 @@ void qmi_request_cancel(struct qmi_dev *qmi, struct qmi_request *req)
|
||
__qmi_request_complete(qmi, req, NULL);
|
||
}
|
||
|
||
+/* avoid gcc-12.x false error reporting:
|
||
+ * dev.c:217:23: error: storing the address of local variable ‘complete’ in ‘*req.complete’ [-Werror=dangling-pointer=]
|
||
+ * 217 | req->complete = &complete;
|
||
+ * | ~~~~~~~~~~~~~~^~~~~~~~~~~
|
||
+ */
|
||
+#if __GNUC__ >= 12
|
||
+#pragma GCC diagnostic push
|
||
+#pragma GCC diagnostic ignored "-Wdangling-pointer"
|
||
+#endif
|
||
int qmi_request_wait(struct qmi_dev *qmi, struct qmi_request *req)
|
||
{
|
||
bool complete = false;
|
||
@@ -231,6 +240,9 @@ int qmi_request_wait(struct qmi_dev *qmi, struct qmi_request *req)
|
||
|
||
return req->ret;
|
||
}
|
||
+#if __GNUC__ >= 12
|
||
+#pragma GCC diagnostic pop
|
||
+#endif
|
||
|
||
struct qmi_connect_request {
|
||
struct qmi_request req;
|
||
--
|
||
2.39.2
|
||
|