delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2015/06/05/04:57:16

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Recipient: djgpp AT delorie DOT com
Date: Fri, 05 Jun 2015 11:56:57 +0300
From: "Eli Zaretskii (eliz AT gnu DOT org)" <djgpp AT delorie DOT com>
Subject: Re: DJGPP v2.05: some thoughts
In-reply-to: <83k2vipr7n.fsf@gnu.org>
X-012-Sender: halo1 AT inter DOT net DOT il
To: djgpp AT delorie DOT com
Message-id: <83iob2pm7a.fsf@gnu.org>
References: <55673F0B DOT 1090103 AT iki DOT fi> <83twuwwshg DOT fsf AT gnu DOT org> <55675040 DOT 9030008 AT iki DOT fi> <556F6E49 DOT 8010006 AT gmx DOT de> <556FCCDF DOT 7080005 AT iki DOT fi> <83bngvr0ef DOT fsf AT gnu DOT org> <557078B1 DOT 9040004 AT iki DOT fi> <201506041613 DOT t54GDT8m014488 AT envy DOT delorie DOT com> <5570B1F7 DOT 1070509 AT iki DOT fi> <201506042022 DOT t54KMxkJ024069 AT envy DOT delorie DOT com> <55712D17 DOT 2040205 AT iki DOT fi> <83k2vipr7n DOT fsf AT gnu DOT org>
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

FWIW, as far as I could glean from drafts of C++ standards available
on the net, the C++ standards define the following errno values:

C++98 and C++03 still required only EDOM and ERANGE, perhaps with
EILSEQ (I cannot say, some drafts have EILSEQ, some don't).

C++11 stated Posix compliance, and therefore added all of the values
defined by Posix:

  ECONNREFUSED EIO ENODEV ENOTEMPTY ERANGE
  E2BIG ECONNRESET EISCONN ENOENT ENOTRECOVERABLE EROFS
  EACCES EDEADLK EISDIR ENOEXEC ENOTSOCK ESPIPE
  EADDRINUSE EDESTADDRREQ ELOOP ENOLCK ENOTSUP ESRCH
  EADDRNOTAVAIL EDOM EMFILE ENOLINK ENOTTY ETIME
  EAFNOSUPPORT EEXIST EMLINK ENOMEM ENXIO ETIMEDOUT
  EAGAIN EFAULT EMSGSIZE ENOMSG EOPNOTSUPP ETXTBSY
  EALREADY EFBIG ENAMETOOLONG ENOPROTOOPT EOVERFLOW EWOULDBLOCK
  EBADF EHOSTUNREACH ENETDOWN ENOSPC EOWNERDEAD EXDEV
  EBADMSG EIDRM ENETRESET ENOSR EPERM
  EBUSY EILSEQ ENETUNREACH ENOSTR EPIPE
  ECANCELED EINPROGRESS ENFILE ENOSYS EPROTO
  ECHILD EINTR ENOBUFS ENOTCONN EPROTONOSUPPORT
  ECONNABORTED EINVAL ENODATA ENOTDIR EPROTOTYPE

This list stays unchanged through all the following C++ standards,
including C++14.

The latest C standard, C11, still defines only 3 errno values: EDOM,
EILSEQ, and ERANGE.

So therefore I think we should have only those 3 values in the
__STRICT_ANSI__ portion, unless __cplusplus is defined and its value
is greater or equal to 201103L (which is what AFAICS GCC defines when
invoked as "g++ -std=c++11"), in which case we should have all of the
above Posix values available.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019