[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