Browse Source

AP_GPS: do not use flexible array in union

We actually don't want a flexible array in this union, but rather a way
to access it byte by byte. This fixes the build for gcc >= 6

In file included from ../../libraries/AP_GPS/AP_GPS.cpp:24:0:
../../libraries/AP_GPS/AP_GPS_ERB.h:93:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.

In file included from ../../libraries/AP_GPS/AP_GPS_ERB.cpp:22:0:
../../libraries/AP_GPS/AP_GPS_ERB.h:93:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.

In file included from ../../libraries/AP_GPS/AP_GPS_MTK.cpp:25:0:
../../libraries/AP_GPS/AP_GPS_MTK.h:75:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.

In file included from ../../libraries/AP_GPS/AP_GPS_MTK19.cpp:26:0:
../../libraries/AP_GPS/AP_GPS_MTK.h:75:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.

In file included from ../../libraries/AP_GPS/AP_GPS_SIRF.cpp:22:0:
../../libraries/AP_GPS/AP_GPS_SIRF.h:101:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.

In file included from ../../libraries/AP_GPS/AP_GPS_UBLOX.cpp:23:0:
../../libraries/AP_GPS/AP_GPS_UBLOX.h:387:23: error: flexible array member in union
         uint8_t bytes[];
                       ^
compilation terminated due to -Wfatal-errors.
mission-4.1.18
Lucas De Marchi 9 years ago
parent
commit
39bd196481
  1. 2
      libraries/AP_GPS/AP_GPS_ERB.h
  2. 2
      libraries/AP_GPS/AP_GPS_MTK.h
  3. 2
      libraries/AP_GPS/AP_GPS_MTK19.h
  4. 2
      libraries/AP_GPS/AP_GPS_SIRF.h
  5. 2
      libraries/AP_GPS/AP_GPS_UBLOX.h

2
libraries/AP_GPS/AP_GPS_ERB.h

@ -90,7 +90,7 @@ private: @@ -90,7 +90,7 @@ private:
erb_stat stat;
erb_dops dops;
erb_vel vel;
uint8_t bytes[];
uint8_t bytes[1];
} _buffer;
enum erb_protocol_bytes {

2
libraries/AP_GPS/AP_GPS_MTK.h

@ -72,7 +72,7 @@ private: @@ -72,7 +72,7 @@ private:
// Receive buffer
union PACKED {
diyd_mtk_msg msg;
uint8_t bytes[];
uint8_t bytes[1];
} _buffer;
// Buffer parse & GPS state update

2
libraries/AP_GPS/AP_GPS_MTK19.h

@ -78,6 +78,6 @@ private: @@ -78,6 +78,6 @@ private:
// Receive buffer
union {
diyd_mtk_msg msg;
uint8_t bytes[];
uint8_t bytes[1];
} _buffer;
};

2
libraries/AP_GPS/AP_GPS_SIRF.h

@ -98,7 +98,7 @@ private: @@ -98,7 +98,7 @@ private:
// Message buffer
union {
sirf_geonav nav;
uint8_t bytes[];
uint8_t bytes[1];
} _buffer;
bool _parse_gps(void);

2
libraries/AP_GPS/AP_GPS_UBLOX.h

@ -384,7 +384,7 @@ private: @@ -384,7 +384,7 @@ private:
ubx_rxm_rawx rxm_rawx;
#endif
ubx_ack_ack ack;
uint8_t bytes[];
uint8_t bytes[1];
} _buffer;
enum ubs_protocol_bytes {

Loading…
Cancel
Save