krememek added a comment.

In http://reviews.llvm.org/D10356#217564, @honggyu.kim wrote:

>




> With --analyzer-target option, we can provide target info to clang static 
> analyzer as follows:

> 

> $ scan-build -v -v -v --analyzer-target=arm-linux-gnueabi 
> --use-cc=arm-linux-gnueabi-gcc make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

> 

>   ...

>   CC      arch/arm/kernel/opcodes.o

> 

> 1. compilation works the same as before ``` arm-linux-gnueabi-gcc ... 
> -march=armv7-a ... -c -o arch/arm/kernel/opcodes.o arch/arm/kernel/opcodes.c 
> ```

> 2. analysis uses the target triple that is given by --analyzer-target option 
> and analysis works fine then. ``` 'clang' '-cc1' '-triple' 
> 'armv7--linux-gnueabi' '-analyze' ... '-target-cpu' 'cortex-a8' ... 
> 'arch/arm/kernel/opcodes.c') ```

> 

>   So we have to use the same target triple for compilation and analysis by 
> using this option. Please let me know if there's a better way to fix this 
> issue.


I see.  The problem is that the ad hoc interposition that scan-build uses does 
not handle the case that the underlying compiler is built as a cross-compiler, 
but does not take a direct target triple.  That compiler only builds for the 
other target, unlike clang which is a cross-compiler.

In that case, I am fine with taking this change.  That you for explaining it.


http://reviews.llvm.org/D10356



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to