[mew-dist 28623] Re: no warnings

Eisaku YAMAGUCHI eisaku at example.com
2008年 9月 12日 (金) 20:41:38 JST


山口です.

From: KOIE Hidetaka (鯉江英隆) <hide at example.com>
Subject: [mew-dist 28622] Re: no warnings
Date: Fri, 12 Sep 2008 17:06:00 +0900 (JST)
> 
>   Message-Id: <20080912.163805.130181437.kazu at example.com>
>   Date:       Fri, 12 Sep 2008 16:38:05 +0900 (JST)
>   From:       Kazu Yamamoto (山本和彦) <kazu at example.com>
>   Subject:    [mew-dist 28621] Re: no warnings
> 
>   | > cc -c  -O -I/usr/local/include -I/usr/sfw/include incm.c
>   | > "incm.c", line 167: warning: statement not reached
> 
>   | reach するコードに見えるのですが。。。
> 
> こういうことじゃないでしょうか。

はい.そうだと思います.
Getlogin() も鯉江さん流にして統一してしまうのが美しいと思います.

別の回避方法として,Getlogin() と同じような構造にするのもアリのようです.

*** incm.c.org	Mon Feb 18 19:24:28 2008
--- incm.c	Fri Sep 12 15:10:54 2008
***************
*** 151,160 ****
  private char *
  Gethomedir(void)
  {
! 	char *home;
!   
! 	if ((home = getenv("HOME")) != NULL)
! 		return home;
  #ifdef HAVE_GETPWUID
  	{
  		struct passwd *pw;
--- 151,161 ----
  private char *
  Gethomedir(void)
  {
! 	{
! 		char *home;
! 		if ((home = getenv("HOME")) != NULL)
! 			return home;
! 	}
  #ifdef HAVE_GETPWUID
  	{
  		struct passwd *pw;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

gcc -Wall では warning は出ません.
SPARC Compiler 縁の cc は,reach するかしかいかのチェックが gcc よりは
厳格みたいです.でも,上の回避方法を見るに... ちょっと厳格なだけで,無
茶苦茶厳格な訳ではないようです.

参考までに,以下が Solaris 9 での cpp (Workshop 6)処理後の抜粋です.

static char *
Gethomedir(void)
{
 char *home;

 if ((home = getenv("HOME")) != 0)
  return home;

 {
  struct passwd *pw;
  if ((pw = getpwuid(getuid())) == 0)
   return 0;
  else
   return pw->pw_dir;
 }

 return 0;
}

-- Eisaku YAMAGUCHI



Mew-dist メーリングリストの案内