<div dir="ltr">The easiest way to get an answer is probably to hang out on #llvm on oftc and try to get a hold of zygoloid or dgregor.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jun 5, 2013 at 7:54 PM, Alexandros Tzannes <span dir="ltr"><<a href="mailto:atzannes@illinois.edu" target="_blank">atzannes@illinois.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<br>
I am interesting in fixing this bug, unless someone is already working on it, but I may need some help as I am not familiar with the parser side of the Frontend in clang. Does anyone have any suggestions or advice on my question below?<br>

<br>
Thanks in advance<br>
Alex<div class="HOEnZb"><div class="h5"><br>
<br>
On 05/30/2013 11:35 PM, Alexandros Tzannes wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ok I (mis)filed a bug on this :) Thanks for refiling it.<br>
<br>
Now, if I were to try and fix this bug, where would I start? More specifically, is getTypeSourceInfo() supposed to return null for implicit function declarations? Probably not, right?<br>
<br>
On 05/29/2013 07:20 PM, Jordan Rose wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Sounds like a mistake—there are plenty of legitimate reasons to traverse the params of an implicit function. Please file a bug at <a href="http://llvm.org/bugs/" target="_blank">http://llvm.org/bugs/</a>.<br>
<br>
Jordan<br>
<br>
<br>
On May 29, 2013, at 9:39 , Alexandros Tzannes <<a href="mailto:atzannes@illinois.edu" target="_blank">atzannes@illinois.edu</a>> wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
I'm writing a checker that needs to visit and understand implicit code (among other things).<br>
<br>
Note: All three "should" functions of my visitor return true, though I'm not sure this matters in this specific case (keep reading).<br>
  bool shouldVisitTemplateInstantiati<u></u>ons() const { return true; }<br>
  bool shouldVisitImplicitCode() const { return true; }<br>
  bool shouldWalkTypesOfTypeLocs() const { return true; }<br>
<br>
<br>
In the code below the operator= is implicit (see commented out code)<br>
<br>
class Data {<br>
public:<br>
  int x;<br>
  int y;<br>
<br>
//inline Data &operator=(const Data &D) noexcept {<br>
//  this->x = D.x;<br>
//  this->y = D.y;<br>
//  return *this;<br>
//}<br>
<br>
};<br>
<br>
void copy(Data in, Data out) {<br>
  out = in;<br>
}<br>
<br>
I'm visiting the code using the RecursiveASTVisitor and my problem is that the parameter of the implicit function is not visited because getTypeSourceInfo() returns null on line 1739 of RecursiveASTVisitor.h<br>
<br>
-- RecursiveASTVisitor.h:lines 1735-1741 ----------------------------<br>
<br>
  // Visit the function type itself, which can be either<br>
  // FunctionNoProtoType or FunctionProtoType, or a typedef.  This<br>
  // also covers the return type and the function parameters,<br>
  // including exception specifications.<br>
  if (TypeSourceInfo *TSI = D->getTypeSourceInfo()) {<br>
    TRY_TO(TraverseTypeLoc(TSI-><u></u>getTypeLoc()));<br>
  }<br>
<br>
------------------------------<u></u>------------------------------<u></u>---------<br>
<br>
Nevertheless, dumping the AST node for the CXXMethod (operator=) reveals that a nameless parameter is properly created.<br>
<br>
Is this behavior (of not visiting the parameters of an implicit function) by design, or a corner case that slipped through the cracks? Any advice on how to visit the parameters of implicit functions with the RecursiveASTVisitor?<br>

<br>
Cheers!<br>
Alex<br>
______________________________<u></u>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-dev</a><br>
</blockquote></blockquote>
<br>
______________________________<u></u>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-dev</a><br>
</blockquote>
<br></div></div><span class="HOEnZb"><font color="#888888">
-- <br>
"Under the Illinois Freedom of Information Act (FOIA), any written<br>
communication to or from University employees regarding University<br>
business is a public record and may be subject to public disclosure."</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
______________________________<u></u>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-dev</a><br>
</div></div></blockquote></div><br></div>