From owner-freebsd-bugs Sat May 26 10:20:16 2001 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id ADFE237B422 for ; Sat, 26 May 2001 10:20:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.1/8.11.1) id f4QHK2Q55919; Sat, 26 May 2001 10:20:02 -0700 (PDT) (envelope-from gnats) Date: Sat, 26 May 2001 10:20:02 -0700 (PDT) Message-Id: <200105261720.f4QHK2Q55919@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Naohiko Tsuji Subject: Re: misc/27606: stddef.h has wrong defines. 'mbstate_t' and so on. Reply-To: Naohiko Tsuji Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org The following reply was made to PR misc/27606; it has been noted by GNATS. From: Naohiko Tsuji To: freebsd-gnats-submit@FreeBSD.org Cc: Subject: Re: misc/27606: stddef.h has wrong defines. 'mbstate_t' and so on. Date: Sun, 27 May 2001 02:18:22 +0900 Thank you for committing. And I'm sorry for my rude and poor English. libstdc++-v3 gcc/libstdc++-v3/include/c_std/bits/std_cwchar.h gcc-3_0-branch rev. 1.5.2.2 // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the // Free Software Foundation; either version 2, or (at your option) // any later version. // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License along // with this library; see the file COPYING. If not, write to the Free // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, // USA. // As a special exception, you may use this file as part of a free software // library without restriction. Specifically, if other files instantiate // templates or use macros or inline functions from this file, or you compile // this file and link it with other files to produce an executable, this // file does not by itself cause the resulting executable to be covered by // the GNU General Public License. This exception does not however // invalidate any other reasons why the executable file might be covered by // the GNU General Public License. // // ISO C++ 14882: ??? // // Note: This is not a conforming implementation. #ifndef _CPP_CWCHAR #define _CPP_CWCHAR 1 #include #include #include #include #if _GLIBCPP_HAVE_WCHAR_H // Need to mangle these "C" functions because C++ modifies their signature. #define wcschr __glibcpp_wcschr #define wcsbrk __glibcpp_wcspbrk #define wcsrchr __glibcpp_wcsrchr #define wcsstr __glibcpp_wcsstr #define wmemchr __glibcpp_wmemchr #pragma GCC system_header #include #endif // Need to do a bit of trickery here with mbstate_t as char_traits > // assumes it is in wchar.h, regardless of wchar_t specializations. ! #ifndef _GLIBCPP_HAVE_MBSTATE_T ! extern "C" ! { ! typedef struct ! { ! int __fill[6]; ! } mbstate_t; ! } ! #endif .... If _GLIBCPP_HAVE_WCHAR_H is 0, _GLIBCPP_HAVE_MBSTATE_T is not defined. So 'mbstate_t' is defined here. The Single UNIX ® Specification, Version 2 Copyright © 1997 The Open Group _________________________________________________________________ NAME stddef.h - standard type definitions SYNOPSIS #include DESCRIPTION The header defines the following: NULL Null pointer constant. offsetof(type, member-designator) Integral constant expression of type size_t, the value of which is the offset in bytes to the structure member (member-designator), from the beginning of its structure (type). The header defines through typedef: ptrdiff_t Signed integral type of the result of subtracting two pointers. wchar_t Integral type whose range of values can represent distinct wide-character codes for all members of the largest character set specified among the locales supported by the compilation environment: the null character has the code value 0 and each member of the Portable Character Set has a code value equal to its value when used as the lone character in an integer character constant. size_t Unsigned integral type of the result of the sizeof operator. ..... The Single UNIX ® Specification, Version 2 Copyright © 1997 The Open Group _________________________________________________________________ NAME wchar.h - wide-character types SYNOPSIS #include DESCRIPTION The header defines the following data types through wchar_t As described in [1]. wint_t An integral type capable of storing any valid value of wchar_t, or WEOF. wctype_t A scalar type of a data object that can hold values which represent locale-specific character classification. mbstate_t An object type other than an array type that can hold the conversion state information necessary to convert between sequences of (possibly multibyte) characters and wide-characters. If a codeset is being used such that an mbstate_t needs to preserve more than 2 levels of reserved state, the results are unspecified. FILE As described in . size_t As described in . ..... /* $NetBSD: basesrc/include/stddef.h,v 1.9 2000/11/10 06:35:45 tshiozak Exp $ */ /*- * Copyright (c) 1990, 1993 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @(#)stddef.h 8.1 (Berkeley) 6/2/93 */ #ifndef _STDDEF_H_ #define _STDDEF_H_ #include typedef _BSD_PTRDIFF_T_ ptrdiff_t; #ifdef _BSD_SIZE_T_ typedef _BSD_SIZE_T_ size_t; #undef _BSD_SIZE_T_ #endif #ifdef _BSD_WCHAR_T_ typedef _BSD_WCHAR_T_ wchar_t; #undef _BSD_WCHAR_T_ #endif #include #define offsetof(type, member) ((size_t)(unsigned long)(&((type *)0)->member)) #endif /* _STDDEF_H_ */ /* $NetBSD: basesrc/include/wchar.h,v 1.9 2000/12/29 15:26:33 kleink Exp $ */ /*- * Copyright (c)1999 Citrus Project, * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ /*- * Copyright (c) 1999, 2000 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Julian Coleman. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the NetBSD * Foundation, Inc. and its contributors. * 4. Neither the name of The NetBSD Foundation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef _WCHAR_H_ #define _WCHAR_H_ #include #include #include #ifdef _BSD_WCHAR_T_ typedef _BSD_WCHAR_T_ wchar_t; #undef _BSD_WCHAR_T_ #endif #ifdef _BSD_MBSTATE_T_ typedef _BSD_MBSTATE_T_ mbstate_t; #undef _BSD_MBSTATE_T_ #endif #ifdef _BSD_WINT_T_ typedef _BSD_WINT_T_ wint_t; #undef _BSD_WINT_T_ #endif #ifdef _BSD_SIZE_T_ typedef _BSD_SIZE_T_ size_t; #undef _BSD_SIZE_T_ #endif #ifndef WEOF #define WEOF ((wint_t)-1) #endif ..... To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message