title: Integer promotion - what are the steps
body: <p>This code prints B2</p>
  
  <pre><code>short a=-5;
  unsigned short b=-5u;
  if(a==b)
      printf("A1");
  else
      printf("B2");
  </code></pre>
  
  <p>I read about integer promotion but it's still unclear to me, how does it work in the example here? Can someone thoroughly post the steps the compiler follows in widening/truncating the values?</p>