clang-check 使用 arm 作为目标

clang-check using arm as a target

我一直在尝试使用 clang-check 进行静态代码分析。 我的 makefile 生成一个 compile_commands.json,到目前为止,clang-check 适用于 x86 平台,但我也想将它用于 arm 平台。 其中一个条目如下所示:

{
     "directory": "/path/to/myproject/src",
     "command": "arm-none-eabi-gcc -DBOARD_VERSION=3 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -std=gnu11 -Wall -Werror -Os -DVERSION_MAJOR=2 -DVERSION_MINOR=4 -DVERSION_PATCH=2 -I/path/to/myproject/src -I/usr/arm-none-eabi/include -MMD -MP -MF/path/to/myproject/.build/debug/src/main.d -MT//path/to/myproject/.build/debug/src/main.o -c -o /path/to/myproject/.build/debug/src/main.o /path/to/myproject/src/main.c",
     "file": "/path/to/myproject/src/main.c"
},

对于 arm,虽然它给了我一些一般性错误,但它也给了我与 x86 相关的错误(比如中断语法):

error: x86-64 'interrupt' attribute only applies to functions that have only a pointer parameter optionally followed by an integer parameter

我使用的 clang-check 二进制文件是 fedora 发行版的一部分,但我想知道是否有办法让它也适用于 arm?

也许有一些选项(我找不到任何选项),或者我可能需要编译一个特定的 clang-check 或者它可能无法在 arm 上工作,在这种情况下可能有其他选择。

没关系我发现使用:

scan-build --use-cc=$(CC) --analyzer-target=arm -o .build make clean all

也是使用 clang 分析器的不错选择