From 63ab887be90c7fe37d537ea75e60eb95d6d87d3f Mon Sep 17 00:00:00 2001 From: Peter Seiderer 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 [Upstream: http://lists.openwrt.org/pipermail/openwrt-devel/2023-March/040667.html] Signed-off-by: Peter Seiderer --- 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