From 859d5585090d966a222da6bc4f14f0d749d13277 Mon Sep 17 00:00:00 2001
From: Ries van Twisk <github@rvt.dds.nl>
Date: Mon, 30 Dec 2019 12:12:22 +0100
Subject: FreePIE Use packed struct with clang to receive datagram

---
 tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp b/tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp
index 6622a3b7..8c4d7c47 100644
--- a/tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp
+++ b/tracker-freepie-udp/ftnoir_tracker_freepie-udp.cpp
@@ -17,13 +17,21 @@ tracker_freepie::~tracker_freepie()
 }
 
 void tracker_freepie::run() {
-#pragma pack(push, 1)
-    struct {
+#ifdef __clang__
+    struct __attribute__((packed)) {
         uint8_t pad1;
         uint8_t flags;
         float fl[12];
-    } data {};
-#pragma pack(pop)
+    } data  {};
+#else
+    #pragma pack(push, 1)
+        struct {
+            uint8_t pad1;
+            uint8_t flags;
+            float fl[12];
+        } data {};
+    #pragma pack(pop)
+#endif
 
     enum F
     {
-- 
cgit v1.2.3