Just got around to upgrading to V8.2.0 Using Atmel Studio 6.2.1563 which uses ARM GCC\Native\4.8.1443
I get the following warning when compiling:
Warning 1 cast increases required alignment of target type [-Wcast-align] …\src\ASF\thirdparty\freertos\freertos-8.2.0\source\queue.c 343 16
Interestingly I’ve never seen that warning. Projects created in Atmel Studio do, by default, have a very ‘elaborate’ set of warnings turned on individually. I normally just -Wall -Wextra.
It is a genuine warning non-the-less:
pxNewQueue = ( Queue_t * ) pcAllocatedBuffer;
pcAllocatedBuffer is a char*, with no alignment requirement. pxNewQueue is a Queue_t * with a 4 byte alignment requirement. Hence it is warning you that the alignment might not be correct after the assignment.
However, what the compiler does not know is that pcAllocatedBuffer is guaranteed to have 8-bit alignment as it was dynamically allocated. Therefore, it is a valid warning, but it is warning you about something that cannot possibly happen.
“However, what the compiler does not know is that pcAllocatedBuffer is guaranteed to have 8-bit alignment as it was dynamically allocated. Therefore, it is a valid warning, but it is warning you about something that cannot possibly happen”