title: String literal binds to a non-const char pointer
body: <p>Consider the following program:</p>
  
  <pre><code>#include &lt;iostream&gt;
  
  void myprint(const char* fmt, ...)
  {
    std::cout &lt;&lt; "1 ";
  }
  
  void myprint(const char* fmt, char *x)
  {
    std::cout &lt;&lt; "2 ";
  }
  
  int main()
  {
    const char* s = "c";
    myprint("a", s);
    myprint("a", "b");
  }
  </code></pre>
  
  <p>It produces different output:</p>
  
  <ul>
  <li><p><a href="http://rextester.com/FRX58318" rel="nofollow noreferrer">GCC</a> and <a href="http://rextester.com/RAGTP26923" rel="nofollow noreferrer">MSVC</a>: <code>1 2</code></p></li>
  <li><p><a href="http://rextester.com/IUS58046" rel="nofollow noreferrer">clang</a>: <code>1 1</code></p></li>
  </ul>
  
  <p>My question is two-fold:</p>
  
  <ol>
  <li><p>Why does a string literal bind to a non-const <code>char*</code> even in the presence of <code>-std=c++14</code>? Isn't a string literal <code>const</code> since C++11?</p></li>
  <li><p>The ellipsis-overload is always ranked lowest. Why does clang select it? (one would think it doesn't allow binding to <code>char*</code> but if I remove the ellipsis overload, it still does - <a href="http://rextester.com/LALIF98887" rel="nofollow noreferrer">demo</a>)</p></li>
  </ol>
  
  <p>What's going on and who is right?</p>