<div dir="ltr"><div class="gmail_default" style>In:</div><div class="gmail_default" style><br></div><div class="gmail_default" style><div class="gmail_default">class A {</div><div class="gmail_default"> protected:</div><div class="gmail_default">
  static void f() {}</div><div class="gmail_default">};</div><div class="gmail_default"><br></div><div class="gmail_default">class B : public A {</div><div class="gmail_default"> public:</div><div class="gmail_default">  using A::f;</div>
<div class="gmail_default">};</div><div class="gmail_default"><br></div><div class="gmail_default">void f() {</div><div class="gmail_default">  B::f();</div><div class="gmail_default">}</div><div class="gmail_default"><br>
</div><div class="gmail_default" style>The B::f() call creates a DeclRefExpr where the FoundDecl is the CXXMethodDecl A::f(). This is contrary to cases of non-static member functions (where the MemberExpr has a FoundDecl that is a UsingShadowDecl) and non-member functions in general (where the FoundDecl of the DeclRefExpr is a UsingShadowDecl).</div>
<div class="gmail_default" style><br></div><div class="gmail_default" style>Is this a bug? Does anyone know of hand how to fix it?</div></div></div>