title: Generate warnings for incorrect sign with printf format specifier
body: <p>Is there any way to get gcc or clang to generate warnings for a mismatch with signed vs. unsigned variables with the printf() format specifiers?</p>
  
  <p>I am aware of using <code>-Wformat</code>, however that only reports a warning if the size of the data type is incorrect.  It will not generate a warning if only the sign is incorrect.</p>
  
  <p>For example the following does not generate a warning even though there is a mismatch with printing an unsigned int as signed:</p>
  
  <pre><code>uint32_t x = UINT_MAX;
  printf("%d", x);
  </code></pre>
  
  <p>This will print out -1.  </p>
  
  <p>It seems like this would be a useful warning, but I haven't found any way to enable it.</p>