Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Dec 2004 11:51:55 -0700 (MST)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        scottl@freebsd.org
Cc:        arch@freebsd.org
Subject:   Re: Header files with enums instead of defines?
Message-ID:  <20041222.115155.71839775.imp@bsdimp.com>
In-Reply-To: <41C9C015.7050706@freebsd.org>
References:  <34cb7c8404122205002bd7de18@mail.gmail.com> <20041222.113411.76074974.imp@bsdimp.com> <41C9C015.7050706@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <41C9C015.7050706@freebsd.org>
            Scott Long <scottl@freebsd.org> writes:
: M. Warner Losh wrote:
: > In order to gain the benefits of the enums, errno would need to be an
: > enum errno_t or some such.  This breaks C++ code that sets errno = 0,
: > since you can't assign integers to errno values.
: > 
: > So even if you retained EBOGUS or whatever, this wouldn't work with
: > C++.  errno has to be an int to work there.
: > 
: > Warner
: 
: I think you might have missed that nothing was actually being declared
: with the errno_t type, but rather the type was used as a cast for gdb.
: It's a neat trick, but still a little cumbersome unless gdb was taught
: about it or given some clever macros.

Or better yet, just use the array of error values already compiled
into the programs that strerror() formats for you (you don't need to
use strerror, just sys_errlist[]).

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041222.115155.71839775.imp>