title: error in unused template method
body: <pre><code>struct B
  {
      int a;
      void foo() {a = 5;}
  };
  
  template &lt;typename T&gt;
  struct A
  {
      A(int i) { B::foo(); }
      A(double d) {}
  };
  
  int main()
  {
      A&lt;int&gt; a(5.0);
  }
  </code></pre>
  
  <p>gcc 4.7.2 compiles it without errors.
  clang 3.4svn complains:</p>
  
  <pre><code>$ clang -Wall -Wextra test.cpp 
  test.cpp:10:16: error: call to non-static member function without an object argument
          A(int i) { B::foo(); }
                     ~~~^~~
  </code></pre>
  
  <p>Of course the code is wrong, but which compiler is conformant with the standard?</p>
  
  <p>It's also strange that clang doesn't print any 'in instantiation' note like gcc does if you use 5 instead of 5.0:</p>
  
  <pre><code>$ gcc test.cpp 
  test.cpp: In instantiation of ‘A&lt;T&gt;::A(int) [with T = int]’:
  test.cpp:15:12:   required from here
  test.cpp:9:13: error: cannot call member function ‘void B::foo()’ without object
  </code></pre>