<div dir="ltr">That's pretty weird. I would also not expect it to happen and I would also like to know the answer.</div><div class="gmail_extra"><br><div class="gmail_quote">2016-08-07 6:06 GMT-07:00 Dhriti Khanna via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><font color="#000000" face="arial, helvetica, sans-serif">Hello,</font></div><div><font color="#000000" face="arial, helvetica, sans-serif"><br></font></div><div><font color="#000000" face="arial, helvetica, sans-serif">I want to print the arguments passed to a function. But clang returns Parameter names used in the function definition. Here is my code:</font></div><div><font color="#000000" face="arial, helvetica, sans-serif"><br></font></div><div><font color="#000000" face="arial, helvetica, sans-serif">if (CallExpr *call = dyn_cast<CallExpr>(st)) </font></div><div><font color="#000000" face="arial, helvetica, sans-serif">{ </font></div><div><font color="#000000" face="arial, helvetica, sans-serif">    LangOptions LangOpts;</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">    LangOpts.CPlusPlus = true;</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">    PrintingPolicy Policy(LangOpts);</font></div><div><font color="#000000" face="arial, helvetica, sans-serif"><br></font></div><div><font color="#000000" face="arial, helvetica, sans-serif">    for(int i=0, j=call->getNumArgs(); i<j; i++)</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">    {</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">        std::string TypeS;</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">        raw_string_ostream raw(TypeS);</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">        call->getArg(i)->printPretty(<wbr>raw, 0, Policy);</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">        errs() << raw.str() << "\n";</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">    }</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">}</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">Example: </font></div><div><font color="#000000" face="arial, helvetica, sans-serif">int iArgument = 123;</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">char cArgument = 'c';</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">foo(iArgument, cArgument);</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">For this code, it should print iArgument and cArgument, but it is printing the names of the parameters given in function definition.</font></div><div><font color="#000000" face="arial, helvetica, sans-serif"><br></font></div><div><font color="#000000" face="arial, helvetica, sans-serif">Please tell what might be the problem.</font></div><div><font color="#000000" face="arial, helvetica, sans-serif"><br></font></div><div><font color="#000000" face="arial, helvetica, sans-serif">Also, I am able to get the arguments' name when I am using a simple C++ code. But when I start using another library's API (for that I am specifying compile_commands.json file), this presents problems.</font></div><span class="HOEnZb"><font color="#888888"><div><font color="#000000" face="arial, helvetica, sans-serif"><br></font></div><div><font color="#000000" face="arial, helvetica, sans-serif">-- </font></div><div><font color="#000000" face="arial, helvetica, sans-serif">Regards,</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">Dhriti Khanna</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">PhD Scholar</font></div><div><font color="#000000" face="arial, helvetica, sans-serif">IIIT Delhi</font></div></font></span></div>
</div>
<br>______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>