From 7b9d16d2f891337f234ce947bef56335768e66bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Tue, 17 Aug 2021 07:28:30 +0200 Subject: [PATCH] fix gps: remove Wno-cast-align & fix it --- src/drivers/gps/CMakeLists.txt | 1 - src/drivers/gps/gps.cpp | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/drivers/gps/CMakeLists.txt b/src/drivers/gps/CMakeLists.txt index 85d8910a53..93e216eea7 100644 --- a/src/drivers/gps/CMakeLists.txt +++ b/src/drivers/gps/CMakeLists.txt @@ -37,7 +37,6 @@ px4_add_module( MODULE drivers__gps MAIN gps COMPILE_FLAGS - -Wno-cast-align # TODO: fix and enable -Wno-stringop-overflow # due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91707 SRCS gps.cpp diff --git a/src/drivers/gps/gps.cpp b/src/drivers/gps/gps.cpp index 21cc20fbef..980307790e 100644 --- a/src/drivers/gps/gps.cpp +++ b/src/drivers/gps/gps.cpp @@ -46,6 +46,7 @@ #endif #include +#include #include #include @@ -362,7 +363,9 @@ int GPS::callback(GPSCallbackType type, void *data1, int data2, void *user) switch (type) { case GPSCallbackType::readDeviceData: { - int num_read = gps->pollOrRead((uint8_t *)data1, data2, *((int *)data1)); + int timeout; + memcpy(&timeout, data1, sizeof(timeout)); + int num_read = gps->pollOrRead((uint8_t *)data1, data2, timeout); if (num_read > 0) { gps->dumpGpsData((uint8_t *)data1, (size_t)num_read, gps_dump_comm_mode_t::Full, false);