title: Bitwise operation with (signed) enum value
body: <p>I am using enumerator values for flags:</p>
  
  <pre><code>typedef enum
  {
      a = 0x00,
      b = 0x01u, // the u has no influence, as expected
      c = 0x02u, // the u has no influence, as expected
  ...
  } enum_name;
  
  volatile unsigned char* reg = SomeAddress;
  *reg |= b;
  </code></pre>
  
  <p>According to MISRA-C:2004 bitwise operations shall not be done with a signed type. Unfortunately, My compiler IAR use <em>signed</em> int (or short or char) as underlying type of enums, and the only option I can find relates to the size, not the signedness ("--enum-is-int").</p>