[cfe-dev] Clang returns Parameter names instead of Arguments
Dhriti Khanna via cfe-dev
cfe-dev at lists.llvm.org
Mon Aug 15 03:04:42 PDT 2016
Hello,
I used intercept-build to generate the compilation database for an MPI
program but I am not able to get the argument names.
This is the compile_commands.json file:
[
{
"command": "c++ -c -I/usr/include/mpi -I/usr/lib/openmpi/include
-I/usr/lib/openmpi/include/openmpi -pthread BasicMPIProgram.cpp",
"directory": "/home/dhriti/Dropbox/CLANG_MPI_LLVM/MPI",
"file":
"/home/dhriti/Dropbox/CLANG_MPI_LLVM/MPI/BasicMPIProgram.cpp"
}
]
On Tue, Aug 9, 2016 at 12:24 AM, Alexander Droste <
alexander.ra.droste at googlemail.com> wrote:
> Hi Dhriti,
>
> when applying analysis scripts on an MPI project,
> I experienced problems in case mpicc|mpic++ is denoted
> as the used compiler in the compile_commands.json file.
> From my experience this is what CMake does if
> -DCMAKE_EXPORT_COMPILE_COMMANDS=1 is used for an MPI project.
> A possible workaround could be to use the scan-build intercept script
> as described here: https://github.com/0ax1/MPI-Ch
> ecker/tree/master/examples,
> to generate the compilation database.
>
> -Alex
>
>
> On 08.08.16 20:34, Dhriti Khanna via cfe-dev wrote:
>
>> I am working with clang version 3.8. I have a MPI program which is
>> causing the
>> problem. Version 4.9.3 of mpiCC. I guess you will be able to reproduce the
>> problem with a simple mpi program.
>>
>> Also, I use this compile_commands.json file:
>> [
>> {
>> "directory": "~/Dropbox/CLANG_MPI_LLVM/MPI",
>> "command": "mpiCC -I/usr/include/mpi BasicMPIProgram.cpp",
>> "file": "~/Dropbox/CLANG_MPI_LLVM/MPI/BasicMPIProgram.cpp"
>> }
>> ]
>>
>> And this to run the clang tool on a mpi source file: ./tool -p
>> ~/Dropbox/CLANG_MPI_LLVM/MPI BasicMPIProgram.cpp
>>
>>
>>
>>
>> On Mon, Aug 8, 2016 at 12:52 AM, Aaron Ballman <aaron at aaronballman.com
>> <mailto:aaron at aaronballman.com>> wrote:
>>
>> On Sun, Aug 7, 2016 at 9:06 AM, Dhriti Khanna via cfe-dev
>> <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>> > Hello,
>> >
>> > I want to print the arguments passed to a function. But clang
>> returns
>> > Parameter names used in the function definition. Here is my code:
>> >
>> > if (CallExpr *call = dyn_cast<CallExpr>(st))
>> > {
>> > LangOptions LangOpts;
>> > LangOpts.CPlusPlus = true;
>> > PrintingPolicy Policy(LangOpts);
>> >
>> > for(int i=0, j=call->getNumArgs(); i<j; i++)
>> > {
>> > std::string TypeS;
>> > raw_string_ostream raw(TypeS);
>> > call->getArg(i)->printPretty(raw, 0, Policy);
>> > errs() << raw.str() << "\n";
>> > }
>> > }
>> > Example:
>> > int iArgument = 123;
>> > char cArgument = 'c';
>> > foo(iArgument, cArgument);
>> > For this code, it should print iArgument and cArgument, but it is
>> printing
>> > the names of the parameters given in function definition.
>> >
>> > Please tell what might be the problem.
>>
>> I cannot reproduce this issue. Are you testing with ToT, or some other
>> version of Clang?
>>
>> > 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.
>>
>> Can you give some steps to reproduce? Is it possible that the other
>> library's API is what's causing the problem?
>>
>> ~Aaron
>>
>> >
>> > --
>> > Regards,
>> > Dhriti Khanna
>> > PhD Scholar
>> > IIIT Delhi
>> >
>> > _______________________________________________
>> > cfe-dev mailing list
>> > cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
>> > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>> <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev>
>> >
>>
>>
>>
>>
>> --
>> Regards,
>> Dhriti Khanna
>> PhD Scholar
>> IIIT Delhi
>>
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>
>>
--
Regards,
Dhriti Khanna
PhD Scholar
IIIT Delhi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160815/91800568/attachment.html>
More information about the cfe-dev
mailing list