scan-view
Ubuntuにclang1.3.4をインストールし、コンパイルしてみた。
scan-build -V -o outClang gcc main.c sub.c
ファイル内のエラーは、ちゃんと検出していた。
ファイル間のエラーは、これだけじゃだめなのかな。
#include <stdio.h> int strcmp2(const char *s1, const char *s2); int strcmp(const char *s1, const char *s2) { while (*s1 == *s2++) if (*s1++ == 0) return (0); return (*(unsigned char *)s1 - *(unsigned char *)--s2); } int main(void) { char name[]="namae"; char *p = NULL; if (strcmp(name, p) == 0) { printf("Equal促n"); } else { printf("Not Equal [%s]", p); } if (strcmp2(name, p) == 0) { printf("Equal促n"); } else { printf("Not Equal [%s]", p); } }
#include <stdio.h> int strcmp2(const char *s1, const char *s2) { while (*s1 == *s2++) if (*s1++ == 0) return (0); return (*(unsigned char *)s1 - *(unsigned char *)--s2); }