enum, out of range

Hello,

I have added U postfix to the integer but the problem still is the same.

I read following pages but didn't work.
http://www.keil.com/support/docs/3243.htm
http://www.keil.com/forum/14703/

#define M(x)         (u32)(1U << (x%32))

enum{
   eFirst = M(x)
   .....
   eLast = M(31)     // generate "integer operation result is out of range"
}

Can I avoid this warning?

More questions in this forum