title: Q_ASSERT - "Incorrect format specifier"
body: <p>I have a <code>Q_ASSERT()</code>:</p>
  
  <pre><code>Q_ASSERT(QString("%1").arg(0) != "0");
  </code></pre>
  
  <p>When it fails, it shows an Abort/Retry/Ignore message box, but in the text it says:</p>
  
  <pre><code>File: f:\dd\vctools\crt_bld\self_x86\crt\src\output.c
  Line: 1120
  Expression: ("Incorrect format specifier", 0)
  </code></pre>
  
  <p>With this call stack:</p>
  
  <pre><code>0   _output_s_l output.c    1120    0x5dbee38d  
  1   _vsnprintf_helper   vsprintf.c  140 0x5dbb00e8  
  2   _vsnprintf_s_l  vsprintf.c  288 0x5dbb0610  
  3   _vsnprintf_s    vsprintf.c  340 0x5dbb0880  
  4   _VCrtDbgReportA dbgrptt.c   301 0x5dc2571e  
  5   _CrtDbgReportV  dbgrpt.c    241 0x5dc24992  
  6   _CrtDbgReport   dbgrpt.c    258 0x5dc2494b  
  7   qt_message_output   qglobal.cpp 2232    0x5d43bacf  
  8   qt_message  qglobal.cpp 2298    0x5d43bc69  
  9   qFatal  qglobal.cpp 2481    0x5d43c059  
  10  qt_assert   qglobal.cpp 1999    0x5d43b629  
  </code></pre>
  
  <p>But if I change it to:</p>
  
  <pre><code>Q_ASSERT(QString("0").arg(0) != "0");
  </code></pre>
  
  <p>It works as expected, showing </p>
  
  <pre><code>File: global\qglobal.cpp
  Line: 2232
  
  ASSERT: "QString("0").arg(0) != "0"" in file ..\MyProject\tester.cpp, line 132
  </code></pre>
  
  <p>So why this strange behavior, is it a bug in Qt?</p>