Date: Thu, 20 Jul 2000 06:24:10 -0400 (EDT) Message-Id: <200007201024.GAA09536@indy.delorie.com> From: Eli Zaretskii To: martin AT loewis DOT home DOT cs DOT tu-berlin DOT de CC: lauras AT softhome DOT net, mrs AT windriver DOT com, gcc AT gcc DOT gnu DOT org, djgpp-workers AT delorie DOT com In-reply-to: <200007200729.JAA01060@loewis.home.cs.tu-berlin.de> (martin@loewis.home.cs.tu-berlin.de) Subject: Re: GCC headers and DJGPP port References: <200007180918 DOT FAA06988 AT indy DOT delorie DOT com> <200007181913 DOT VAA01170 AT loewis DOT home DOT cs DOT tu-berlin DOT de> <200007191826 DOT OAA08693 AT indy DOT delorie DOT com> <200007200729 DOT JAA01060 AT loewis DOT home DOT cs DOT tu-berlin DOT de> Reply-To: djgpp-workers AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > Date: Thu, 20 Jul 2000 09:29:35 +0200 > From: "Martin v. Loewis" > > > Seriously, though: the conclusion was that we didn't like the > > redefinition of NULL in C++ headers (see my other message for the > > problems this causes). > > So you had all this discussion to agree on a mental state (you don't > like it)? No, we actually acted on that (by blocking redefinition of NULL in the C headers). > I had hoped you could have concluded that it either does or > does not break the library. We couldn't do that because we had no information on how __null works in the C++ compiler. If we missed something in the docs, please tell where we should have read about it. > Please try to be technical instead of political - especially if you > are asking the same from GCC developers! I thought I was technical. I explained the technical reasons in a message I sent today. If it didn't yet reach you, soon it will. If I still failed to explain something, please tell what needs further explanation. > It's very easy. In C++, NULL is an "implementation-defined C++ null > pointer constant", according to 18.1, [lib.support.types]/4. That > means, "possible definitions include 0 and 0L, but not (void*)0". Thank you for this information. What is of interest to us is what will a C function see when called with a __null argument from a C++ program. This is required to DTRT in C headers so that they would work with C++ programs regardless of the order of headers inclusion (since some headers in libstdc++ define NULL).