Date: Fri, 30 Nov 2012 10:30:25 +0100 From: Erik Cederstrand <erik@cederstrand.dk> To: Konstantin Belousov <kostikbel@gmail.com> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Eitan Adler <eadler@freebsd.org> Subject: Re: svn commit: r243665 - head/sbin/dump Message-ID: <9E5035D8-506F-4A18-9511-BFA0511ACE10@cederstrand.dk> In-Reply-To: <20121129120147.GE3013@kib.kiev.ua> References: <201211290516.qAT5GoT5098709@svn.freebsd.org> <20121129120147.GE3013@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
Den 29/11/2012 kl. 13.01 skrev Konstantin Belousov = <kostikbel@gmail.com>: > On Thu, Nov 29, 2012 at 05:16:50AM +0000, Eitan Adler wrote: >> Author: eadler >> Date: Thu Nov 29 05:16:50 2012 >> New Revision: 243665 >> URL: http://svnweb.freebsd.org/changeset/base/243665 >>=20 >> Log: >> Mark non-returning function as such >>=20 >> PR: bin/172978 >> Approved by: cperciva >> MFC after: 3 days >>=20 >> Modified: >> head/sbin/dump/dump.h >>=20 >> Modified: head/sbin/dump/dump.h >> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >> --- head/sbin/dump/dump.h Thu Nov 29 03:48:39 2012 = (r243664) >> +++ head/sbin/dump/dump.h Thu Nov 29 05:16:50 2012 = (r243665) >> @@ -121,7 +121,7 @@ void trewind(void); >> void writerec(char *dp, int isspcl); >>=20 >> void Exit(int status) __dead2; >> -void dumpabort(int signo); >> +void dumpabort(int signo) __dead2; >> void dump_getfstab(void); >>=20 >> char *rawname(char *cp); > What is the goal of this change ? >=20 > It is arguably backward. There is absolutely no use to mark signal = handler > as __dead2, and all other uses do not benefit from the redundand = declaration. I submitted this patch because it fixes static analysis warnings. = Compilation units that contain the header but not the implementation = need this to reason about the code. As I see it, the __dead2 is part of the function definition, just like = 'void' and 'int signo'. Actually, before the patch, return type 'void' = was a lie, because the function never returns. > Also, being quite removed from the function definition, there is a = chance > that some future modification would make the attribute a lie. That is not any different than some future modification changing the = return type to 'int', which the compiler would also warn about. Thanks, Erik=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9E5035D8-506F-4A18-9511-BFA0511ACE10>