mirror of https://github.com/ArduPilot/ardupilot
f3ee7a9a85
The current approach to access the same memory location by using a reference is giving this warning: ../libraries/AP_AccelCal/AccelCalibrator.cpp: In constructor ‘AccelCalibrator::AccelCalibrator()’: ../libraries/AP_AccelCal/AccelCalibrator.cpp:34:64: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] _param_struct(*reinterpret_cast<struct param_t *>(&_param_array)) ^ ../libraries/AP_AccelCal/AccelCalibrator.cpp: In member function ‘void AccelCalibrator::run_fit(uint8_t, float&)’: ../libraries/AP_AccelCal/AccelCalibrator.cpp:336:79: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] struct param_t &fit_param(*reinterpret_cast<struct param_t *>(¶m_array)); ^ Using a union allows us to get rid of the warning, make sure the sizes of the different structs match and have a more elegant solution. |
||
---|---|---|
.. | ||
AP_AccelCal.cpp | ||
AP_AccelCal.h | ||
AccelCalibrator.cpp | ||
AccelCalibrator.h |