[cfe-dev] ld linker error using clang analyzer checker
Artem Dergachev via cfe-dev
cfe-dev at lists.llvm.org
Tue Feb 6 13:03:59 PST 2018
That's right, you cannot analyze and compile in a single clang instance.
I don't remember why it was designed this way, but i don't think anybody
is planning to fix it.
* It'd be much more scary to work on the analyzer if we had a chance to
cause code generation failures after our work is done, or if you'd be
unable to compile without tweaking your build system when the analyzer
is crashing.
* In particular, we're sometimes enjoying the ability to modify the AST
(eg. do the "body farms" thing).
* We have the fancy __clang_analyzer__ macro that hides code from the
analyzer without affecting compilation.
* Very often the project is compiled with a different compiler anyway.
* Anyway, compilation time is usually very small compared to analysis
time, so doing two compilations is not going to make things much slower.
On 06/02/2018 9:55 AM, Yingtong Liu via cfe-dev wrote:
> Thank you Aleksei, it worked to run the checkers.
>
> It seems like clang can't run the checker and do the compiling at the
> same time, meaning in one cmd? Just passing the -analyze option and
> allowing clang to compile the file will report ld error like I said
> before. Is that ture?
>
> Best,
> Yingtong
>
> --
> Ph.D
> Computer Science Department
> University of California, Irvine
>
> On Tue, Feb 6, 2018 at 1:34 AM, Aleksei Sidorin <a.sidorin at samsung.com
> <mailto:a.sidorin at samsung.com>> wrote:
>
> Hello,
>
> It looks like clang is thinking that he has to compile the file
> because the default behaviour was not changed via cmdline options.
> Could you try:
>
> clang --analyze -Xclang -analyzer-checker=checker_name test.c
>
> ? --analyze will tell clang that he doesn't need to produce
> binary, only to analyze the file.
>
>
> 06.02.2018 04:24, Yingtong Liu via cfe-dev пишет:
>> Hi,
>>
>> I am trying to use clang static checker from command line. I knew
>> there are two ways to do that. One is using scan-build command,
>> which works fine for me. But I need to use the checker in another
>> way, which is from the official website, like:
>>
>> clang -Xclang -analyze -Xclang
>> -analyzer-checker=checker_name test.c
>>
>> This reported me /usr/bin/ld: cannot find /tmp/xxx.o: File format
>> not recognized. It seems like the xxx.o file never being
>> generated using this command line.
>>
>> When I added -cc1 option, using it like this way,
>>
>> clang -cc1 -analyze -analyzer-checker=xxx test.c
>>
>> The error is gone, but I have to include all the default compiler
>> headers manually, which I don't wanna do.
>>
>> My question is, what's the right way to pass the checker to clang
>> to get the bug report and the built file at the same time?
>>
>> Thanks,
>> Ying
>>
>>
>> _______________________________________________
>> 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>
>
>
> --
> Best regards,
> Aleksei Sidorin,
> SRR, Samsung Electronics
>
>
>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
More information about the cfe-dev
mailing list