title: Warn if another typedef'd name of a type is used in an argument list
body: <p>Consider a large project, where many types are <code>typedef</code>'d, e.g.</p>
  
  <pre><code>typedef int age;
  typedef int height;
  </code></pre>
  
  <p>and some functions getting arguments of those types:</p>
  
  <pre><code>void printPerson(age a, height h) {
      printf("Age %d, Height %d\n", a, h);
  }
  </code></pre>
  
  <p>Is there a way to warn at compile time, if those arguments are of the wrong type, e.g.</p>
  
  <pre><code>age a = 30;
  height h = 180;
  printPerson(h, a); /* No warning, because a and h are both integers */
  </code></pre>
  
  <p>Does gcc (or some static code analysis tool) have an option to warn in such cases?</p>