Add clang analyzer CI job

This commit is contained in:
Christian Göttsche 2020-09-21 15:06:19 +02:00 committed by cgzones
parent d69585b82a
commit b82a13c6ba
3 changed files with 26 additions and 3 deletions

View File

@ -55,6 +55,26 @@ jobs:
- name: Distcheck - name: Distcheck
run: make distcheck DISTCHECK_CONFIGURE_FLAGS='--enable-werror --enable-openvz --enable-cgroup --enable-vserver --enable-ancient-vserver --enable-taskstats --enable-unicode --enable-hwloc --enable-setuid --enable-delayacct' run: make distcheck DISTCHECK_CONFIGURE_FLAGS='--enable-werror --enable-openvz --enable-cgroup --enable-vserver --enable-ancient-vserver --enable-taskstats --enable-unicode --enable-hwloc --enable-setuid --enable-delayacct'
build-ubuntu-latest-clang-analyzer:
runs-on: ubuntu-latest
env:
CC: clang-11
steps:
- uses: actions/checkout@v2
- name: install clang repo
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key 2>/dev/null | sudo apt-key add -
sudo add-apt-repository 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main' -y
sudo apt-get update -q
- name: Install Dependencies
run: sudo apt-get install clang-11 clang-tools-11 libncursesw5-dev libhwloc-dev libnl-3-dev libnl-genl-3-dev
- name: Bootstrap
run: ./autogen.sh
- name: Configure
run: scan-build-11 -analyze-headers --status-bugs ./configure --enable-debug --enable-werror --enable-openvz --enable-cgroup --enable-vserver --enable-ancient-vserver --enable-taskstats --enable-unicode --enable-hwloc --enable-setuid --enable-delayacct
- name: Build
run: scan-build-11 -analyze-headers --status-bugs make -j"$(nproc)"
whitespace_check: whitespace_check:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:

View File

@ -274,9 +274,10 @@ static MaskItem *AffinityPanel_addObject(AffinityPanel* this, hwloc_obj_t obj, u
} }
xSnprintf(&indent_buf[off], left, "%s", xSnprintf(&indent_buf[off], left, "%s",
obj->next_sibling ? CRT_treeStr[TREE_STR_RTEE] : CRT_treeStr[TREE_STR_BEND]); obj->next_sibling ? CRT_treeStr[TREE_STR_RTEE] : CRT_treeStr[TREE_STR_BEND]);
size_t len = strlen(&indent_buf[off]); // Uncomment when further appending to indent_buf
off += len; //size_t len = strlen(&indent_buf[off]);
left -= len; //off += len;
//left -= len;
} }
xSnprintf(buf, 64, "%s %s%u", type_name, index_prefix, index); xSnprintf(buf, 64, "%s %s%u", type_name, index_prefix, index);

2
htop.c
View File

@ -107,6 +107,7 @@ static CommandLineSettings parseArguments(int argc, char** argv) {
printVersionFlag(); printVersionFlag();
exit(0); exit(0);
case 's': case 's':
assert(optarg); /* please clang analyzer, cause optarg can be NULL in the 'u' case */
if (strcmp(optarg, "help") == 0) { if (strcmp(optarg, "help") == 0) {
for (int j = 1; j < Platform_numberOfFields; j++) { for (int j = 1; j < Platform_numberOfFields; j++) {
const char* name = Process_fields[j].name; const char* name = Process_fields[j].name;
@ -158,6 +159,7 @@ static CommandLineSettings parseArguments(int argc, char** argv) {
flags.treeView = true; flags.treeView = true;
break; break;
case 'p': { case 'p': {
assert(optarg); /* please clang analyzer, cause optarg can be NULL in the 'u' case */
char* argCopy = xStrdup(optarg); char* argCopy = xStrdup(optarg);
char* saveptr; char* saveptr;
char* pid = strtok_r(argCopy, ",", &saveptr); char* pid = strtok_r(argCopy, ",", &saveptr);