title: How to detect implicit conversion in vsnprintf by GCC
body: <p>I want g++ to detect below incorrect implicit conversion in vsnprintf.
  I try with:</p>
  
  <pre><code>g++ -Wall -Werror -Wconversion -Wformat  test.cpp -o test.ext
  </code></pre>
  
  <p>But there is no warning. Code are as below:</p>
  
  <pre><code>#include &lt;cstdio&gt;
  #include &lt;cstdarg&gt;
  
  
  void PrintFError ( const char * format, ... )
  {
    char buffer[256];
    va_list args;
    va_start (args, format);
    vsnprintf (buffer,256,format, args);
    perror (buffer);
    va_end (args);
  }
  
  
  enum LEVEL
   {
       INFO = 1,
       WRN = 2
   };
  
  int main ()
  {
  
    PrintFError ("Error opening %s", WRN); // WRN is enum not char*, expecte some compile warning here
  
    return 0;
  }
  </code></pre>