From 91059234f4f9b3fee7b39423f5705d1ac0c70762 Mon Sep 17 00:00:00 2001 From: Peter Seiderer Date: Sun, 5 Mar 2023 23:55:53 +0100 Subject: [PATCH] package/uqmi: fix compile error (gcc false error reporting) Add upstream suggested patch ([1]) to avoid gcc false error reporting. Fixes: - http://autobuild.buildroot.net/results/ce9e2074bb8486d1ee25232b985d47475faefd63 dev.c:217:23: error: storing the address of local variable 'complete' in '*req.complete' [-Werror=dangling-pointer=] 217 | req->complete = &complete; | ~~~~~~~~~~~~~~^~~~~~~~~~~ [1] http://lists.openwrt.org/pipermail/openwrt-devel/2023-March/040633.html Signed-off-by: Peter Seiderer Signed-off-by: Peter Korsgaard (cherry picked from commit b3cf07d8db2ae0283bbac7e4a06f363c7bc39e58) Signed-off-by: Peter Korsgaard --- ...alse-error-reporting-storing-the-add.patch | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 package/uqmi/0001-uqmi-avoid-gcc-false-error-reporting-storing-the-add.patch diff --git a/package/uqmi/0001-uqmi-avoid-gcc-false-error-reporting-storing-the-add.patch b/package/uqmi/0001-uqmi-avoid-gcc-false-error-reporting-storing-the-add.patch new file mode 100644 index 0000000000..c940925767 --- /dev/null +++ b/package/uqmi/0001-uqmi-avoid-gcc-false-error-reporting-storing-the-add.patch @@ -0,0 +1,54 @@ +From 4c2eb926efb4de24af5a3b1e8c18195198827491 Mon Sep 17 00:00:00 2001 +From: Peter Seiderer +Date: Sun, 5 Mar 2023 22:08:13 +0100 +Subject: [PATCH] uqmi: avoid gcc false error reporting (storing the address of + local variable 'complete' in '*req.complete') + +Avoid gcc 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/040633.html] +Signed-off-by: Peter Seiderer +--- + dev.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/dev.c b/dev.c +index bd10207..b8ac273 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 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__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) ++#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__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) ++#pragma GCC diagnostic pop ++#endif + + struct qmi_connect_request { + struct qmi_request req; +-- +2.39.2 +