のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

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);
}