191586Smarkm/* $NetBSD: inittyp.c,v 1.3 2002/01/30 06:55:02 thorpej Exp $ */ 291586Smarkm 391586Smarkm/* 491586Smarkm * Copyright (c) 1994, 1995 Jochen Pohl 591586Smarkm * All Rights Reserved. 691586Smarkm * 791586Smarkm * Redistribution and use in source and binary forms, with or without 891586Smarkm * modification, are permitted provided that the following conditions 991586Smarkm * are met: 1091586Smarkm * 1. Redistributions of source code must retain the above copyright 1191586Smarkm * notice, this list of conditions and the following disclaimer. 1291586Smarkm * 2. Redistributions in binary form must reproduce the above copyright 1391586Smarkm * notice, this list of conditions and the following disclaimer in the 1491586Smarkm * documentation and/or other materials provided with the distribution. 1591586Smarkm * 3. All advertising materials mentioning features or use of this software 1691586Smarkm * must display the following acknowledgement: 1791586Smarkm * This product includes software developed by Jochen Pohl for 1891586Smarkm * The NetBSD Project. 1991586Smarkm * 4. The name of the author may not be used to endorse or promote products 2091586Smarkm * derived from this software without specific prior written permission. 2191586Smarkm * 2291586Smarkm * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 2391586Smarkm * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 2491586Smarkm * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 2591586Smarkm * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 2691586Smarkm * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 2791586Smarkm * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2891586Smarkm * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2991586Smarkm * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 3091586Smarkm * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 3191586Smarkm * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3291586Smarkm */ 3391586Smarkm 3491586Smarkm#include <sys/cdefs.h> 3591586Smarkm#if defined(__RCSID) && !defined(lint) 3691586Smarkm__RCSID("$NetBSD: inittyp.c,v 1.3 2002/01/30 06:55:02 thorpej Exp $"); 3791586Smarkm#endif 3891586Smarkm 3991586Smarkm#include <ctype.h> 4091586Smarkm#include <limits.h> 4191586Smarkm#include <stdlib.h> 4291586Smarkm 4391586Smarkm#include "lint.h" 4491586Smarkm 4591586Smarkm/* various type information */ 4691586Smarkmttab_t ttab[NTSPEC]; 4791586Smarkm 4891586Smarkmvoid 4991586Smarkminittyp(void) 5091586Smarkm{ 5191586Smarkm int i; 5291586Smarkm static const struct { 5391586Smarkm tspec_t it_tspec; 5491586Smarkm ttab_t it_ttab; 5591586Smarkm } ittab[NTSPEC] = { 5691586Smarkm { SIGNED, { 0, 0, 5791586Smarkm SIGNED, UNSIGN, 5891586Smarkm 0, 0, 0, 0, 0, "signed" } }, 5991586Smarkm { UNSIGN, { 0, 0, 6091586Smarkm SIGNED, UNSIGN, 6191586Smarkm 0, 0, 0, 0, 0, "unsigned" } }, 6291586Smarkm { CHAR, { CHAR_SIZE, CHAR_BIT, 6391586Smarkm SCHAR, UCHAR, 6491586Smarkm 1, 0, 0, 1, 1, "char" } }, 6591586Smarkm { SCHAR, { CHAR_SIZE, CHAR_BIT, 6691586Smarkm SCHAR, UCHAR, 6791586Smarkm 1, 0, 0, 1, 1, "signed char" } }, 6891586Smarkm { UCHAR, { CHAR_SIZE, CHAR_BIT, 6991586Smarkm SCHAR, UCHAR, 7091586Smarkm 1, 1, 0, 1, 1, "unsigned char" } }, 7191586Smarkm { SHORT, { SHORT_SIZE, 2 * CHAR_BIT, 7291586Smarkm SHORT, USHORT, 7391586Smarkm 1, 0, 0, 1, 1, "short" } }, 7491586Smarkm { USHORT, { SHORT_SIZE, 2 * CHAR_BIT, 7591586Smarkm SHORT, USHORT, 7691586Smarkm 1, 1, 0, 1, 1, "unsigned short" } }, 7791586Smarkm { INT, { INT_SIZE, 3 * CHAR_BIT, 7891586Smarkm INT, UINT, 7991586Smarkm 1, 0, 0, 1, 1, "int" } }, 8091586Smarkm { UINT, { INT_SIZE, 3 * CHAR_BIT, 8191586Smarkm INT, UINT, 8291586Smarkm 1, 1, 0, 1, 1, "unsigned int" } }, 8391586Smarkm { LONG, { LONG_SIZE, 4 * CHAR_BIT, 8491586Smarkm LONG, ULONG, 8591586Smarkm 1, 0, 0, 1, 1, "long" } }, 8691586Smarkm { ULONG, { LONG_SIZE, 4 * CHAR_BIT, 8791586Smarkm LONG, ULONG, 8891586Smarkm 1, 1, 0, 1, 1, "unsigned long" } }, 8991586Smarkm { QUAD, { QUAD_SIZE, 8 * CHAR_BIT, 9091586Smarkm QUAD, UQUAD, 9191586Smarkm 1, 0, 0, 1, 1, "long long" } }, 9291586Smarkm { UQUAD, { QUAD_SIZE, 8 * CHAR_BIT, 9391586Smarkm QUAD, UQUAD, 9491586Smarkm 1, 1, 0, 1, 1, "unsigned long long" } }, 9591586Smarkm { FLOAT, { FLOAT_SIZE, 4 * CHAR_BIT, 9691586Smarkm FLOAT, FLOAT, 9791586Smarkm 0, 0, 1, 1, 1, "float" } }, 9891586Smarkm { DOUBLE, { DOUBLE_SIZE, 8 * CHAR_BIT, 9991586Smarkm DOUBLE, DOUBLE, 10091586Smarkm 0, 0, 1, 1, 1, "double" } }, 10191586Smarkm { LDOUBLE, { LDOUBLE_SIZE, 10 * CHAR_BIT, 10291586Smarkm LDOUBLE, LDOUBLE, 10391586Smarkm 0, 0, 1, 1, 1, "long double" } }, 10491586Smarkm { VOID, { -1, -1, 10591586Smarkm VOID, VOID, 10691586Smarkm 0, 0, 0, 0, 0, "void" } }, 10791586Smarkm { STRUCT, { -1, -1, 10891586Smarkm STRUCT, STRUCT, 10991586Smarkm 0, 0, 0, 0, 0, "struct" } }, 11091586Smarkm { UNION, { -1, -1, 11191586Smarkm UNION, UNION, 11291586Smarkm 0, 0, 0, 0, 0, "union" } }, 11391586Smarkm { ENUM, { ENUM_SIZE, 3 * CHAR_BIT, 11491586Smarkm ENUM, ENUM, 11591586Smarkm 1, 0, 0, 1, 1, "enum" } }, 11691586Smarkm { PTR, { PTR_SIZE, 4 * CHAR_BIT, 11791586Smarkm PTR, PTR, 11891586Smarkm 0, 1, 0, 0, 1, "pointer" } }, 11991586Smarkm { ARRAY, { -1, -1, 12091586Smarkm ARRAY, ARRAY, 12191586Smarkm 0, 0, 0, 0, 0, "array" } }, 12291586Smarkm { FUNC, { -1, -1, 12391586Smarkm FUNC, FUNC, 12491586Smarkm 0, 0, 0, 0, 0, "function" } }, 12591586Smarkm }; 12691586Smarkm 12791586Smarkm for (i = 0; i < sizeof (ittab) / sizeof (ittab[0]); i++) 12891586Smarkm STRUCT_ASSIGN(ttab[ittab[i].it_tspec], ittab[i].it_ttab); 12991586Smarkm if (!pflag) { 13091586Smarkm for (i = 0; i < NTSPEC; i++) 13191586Smarkm ttab[i].tt_psz = ttab[i].tt_sz; 13291586Smarkm } 13391586Smarkm} 134