Warning[Pa082]: undefined behavior: the order

jwestmoreland wrote on Tuesday, May 09, 2006:

Richard,

Warning[Pa082]: undefined behavior: the order of volatile accesses is undefined in this statement C:\…\Source\tasks.c 710

My line 710:

vListInsert( ( xList * ) pxOverflowDelayedTaskList, ( xListItem * ) &( pxCurrentTCB->xGenericListItem ) );

I have 8 more similar Warning messages in the tasks.c module - all list stuff.

I’m using the IAR tools - 3.41A - have you seen anything similar?

Thanks,
John W.

jwestmoreland wrote on Tuesday, May 09, 2006:

OK - this looks similar to this thread:

https://sourceforge.net/forum/message.php?msg_id=3488120

I have warnings on the vListInsert() function which is a little different than what’s in the above thread.

Regards,
John W.

rtel wrote on Tuesday, May 09, 2006:

This is one of the pains in supporting so many different compilers.  Some will warn if you assign a volatile pointer to a non volatile pointer, so a cast is required to keep the compiler quiet.  Some will do the opposite and warn if you cast.  To keep the compiler quite it is sometimes therefore necessary to just disable the warning in the project.

The warning is correct, but changing the code to remove it will just cause warning in other ports :frowning:

It is not going to cause you a problem (I don’t think).

Regards,
Richard.

jwestmoreland wrote on Wednesday, May 10, 2006:

Richard,

OK - all of the ports that I’ve done have this Warning - but they all work.  One of the development boards that I did a port for has been running for weeks - so I suppose the port is OK…:wink:

Thanks,
John W.