FreeRTOS V8.2.0 compile warning in queue.c

wlauer wrote on Tuesday, March 10, 2015:

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

Can’t figure it out. Any ideas?

Thanks in advance,
Bill

rtel wrote on Tuesday, March 10, 2015:

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.

Regards.

wlauer wrote on Tuesday, March 10, 2015:

“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”

I’m assuming you meant 8 byte alignment.

rtel wrote on Tuesday, March 10, 2015:

I’m assuming you meant 8 byte alignment.

yes :o)