【问题标题】:how to run clang static analyzer on different target using scan-build如何使用 scan-build 在不同的目标上运行 clang 静态分析器
【发布时间】:2016-09-14 13:40:33
【问题描述】:

我想在不同的目标上运行 clang 静态分析器。这是makefile片段:

CC = <path to clang folder>/build/bin/clang
.
.
.    
src/%.o: ../src/%.c
    ${CC} --target=powerpc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o "$@" "$<"

我正在尝试编译到 powerpc。这是命令行和输出:

>> <path_to_llvm_folder>/llvm/tools/clang/tools/scan-build/scan-build --use-analyzer=<path_to_llvm_folder>/build/bin/clang make
scan-build: Using '<path_to_llvm_folder>/build/bin/clang' for static analysis
Building file: ../src/testing.c
Invoking: GCC C Compiler
<path to clang folder>/llvm/tools/clang/tools/scan-build/ccc-analyzer --target=powerpc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/testing.d" -MT"src/testing.o" -o "src/testing.o" "../src/testing.c"
cc1: warning: command line option "-ftarget=powerpc" is valid for Java but not for C

请注意,尽管 makefile 正在调用 clang - 我收到 gcc 警告...那么如何使用 clang 编译代码并针对不同目标进行静态分析?

【问题讨论】:

    标签: clang static-analysis


    【解决方案1】:

    找到了解决方案。我认为下一个参数中的 ccc-analyzer 脚本中存在错误:

    my %CompilerLinkerOptionMap = (
      '-Wwrite-strings' => 0,
      '-ftrapv-handler' => 1, # specifically call out separated -f flag
      '-mios-simulator-version-min' => 0, # This really has 1 argument, but always has '='
      '-isysroot' => 1,
      '-arch' => 1,
      '-m32' => 0,
      '-m64' => 0,
      '-stdlib' => 0, # This is really a 1 argument, but always has '='
      '--sysroot' => 1,
      '-target' => 1,
      '-v' => 0,
      '-mmacosx-version-min' => 0, # This is really a 1 argument, but always has '='
      '-miphoneos-version-min' => 0 # This is really a 1 argument, but always has '='
    );
    

    '-target' => 1,
    

    需要

    '--target' => 1,
    

    (带有双'-')...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-17
      • 2017-10-27
      • 2010-12-24
      • 1970-01-01
      • 2012-11-17
      • 2015-12-03
      • 1970-01-01
      • 2012-12-13
      相关资源
      最近更新 更多