Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/xlint/lint1 lint: write canonical form of keywords



details:   https://anonhg.NetBSD.org/src/rev/c0724589acad
branches:  trunk
changeset: 1022513:c0724589acad
user:      rillig <rillig%NetBSD.org@localhost>
date:      Fri Jul 23 15:36:56 2021 +0000

description:
lint: write canonical form of keywords

For keywords that have a single spelling variant (such as __packed),
write this form in the source, to make it searchable.  This also avoids
a few calls to malloc.

Previously, some keywords had leading underscores and some hadn't, this
was inconsistent.

No functional change.

diffstat:

 usr.bin/xlint/lint1/lex.c |  44 +++++++++++++++++++++++---------------------
 1 files changed, 23 insertions(+), 21 deletions(-)

diffs (125 lines):

diff -r 261f630edf4f -r c0724589acad usr.bin/xlint/lint1/lex.c
--- a/usr.bin/xlint/lint1/lex.c Fri Jul 23 15:21:47 2021 +0000
+++ b/usr.bin/xlint/lint1/lex.c Fri Jul 23 15:36:56 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: lex.c,v 1.55 2021/07/11 19:24:41 rillig Exp $ */
+/* $NetBSD: lex.c,v 1.56 2021/07/23 15:36:56 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID) && !defined(lint)
-__RCSID("$NetBSD: lex.c,v 1.55 2021/07/11 19:24:41 rillig Exp $");
+__RCSID("$NetBSD: lex.c,v 1.56 2021/07/23 15:36:56 rillig Exp $");
 #endif
 
 #include <ctype.h>
@@ -134,34 +134,26 @@
        bool    kw_attr : 1;    /* GCC attribute, keyword */
        u_int   kw_deco : 3;    /* 1 = name, 2 = __name, 4 = __name__ */
 } kwtab[] = {
-#ifdef INT128_SIZE
-       kwdef_type(     "__int128_t",   INT128,                 0,1,0,0,1),
-       kwdef_type(     "__uint128_t",  UINT128,                0,1,0,0,1),
-#endif
-       kwdef_tqual(    "__thread",     THREAD,                 0,0,1,0,1),
+       kwdef_gcc_attr( "alias",        T_AT_ALIAS),
        kwdef_keyword(  "_Alignas",     T_ALIGNAS),
        kwdef_keyword(  "_Alignof",     T_ALIGNOF),
-       kwdef_type(     "_Bool",        BOOL,                   0,1,0,0,1),
-       kwdef_type(     "_Complex",     COMPLEX,                0,1,0,0,1),
-       kwdef_token(    "_Generic",     T_GENERIC,              0,1,0,0,1),
-       kwdef_token(    "_Noreturn",    T_NORETURN,             0,1,0,0,1),
-       kwdef_tqual(    "_Thread_local", THREAD,                0,1,0,0,1),
-       kwdef_gcc_attr( "alias",        T_AT_ALIAS),
        kwdef_gcc_attr( "aligned",      T_AT_ALIGNED),
-       kwdef_token(    "alignof",      T_ALIGNOF,              0,0,0,0,4),
+       kwdef_token(    "__alignof__",  T_ALIGNOF,              0,0,0,0,1),
        kwdef_gcc_attr( "alloc_size",   T_AT_ALLOC_SIZE),
        kwdef_gcc_attr( "always_inline",T_AT_ALWAYS_INLINE),
        kwdef_token(    "asm",          T_ASM,                  0,0,1,0,7),
        kwdef_token(    "attribute",    T_ATTRIBUTE,            0,0,1,0,6),
        kwdef_sclass(   "auto",         AUTO,                   0,0,0,0,1),
+       kwdef_type(     "_Bool",        BOOL,                   0,1,0,0,1),
        kwdef_gcc_attr( "bounded",      T_AT_BOUNDED),
        kwdef_keyword(  "break",        T_BREAK),
        kwdef_gcc_attr( "buffer",       T_AT_BUFFER),
-       kwdef_token(    "builtin_offsetof", T_BUILTIN_OFFSETOF, 0,0,1,0,2),
+       kwdef_token(    "__builtin_offsetof", T_BUILTIN_OFFSETOF, 0,0,1,0,1),
        kwdef_keyword(  "case",         T_CASE),
        kwdef_type(     "char",         CHAR,                   0,0,0,0,1),
        kwdef_gcc_attr( "cold",         T_AT_COLD),
        kwdef_gcc_attr( "common",       T_AT_COMMON),
+       kwdef_type(     "_Complex",     COMPLEX,                0,1,0,0,1),
        kwdef_tqual(    "const",        CONST,                  1,0,0,0,7),
        kwdef_gcc_attr( "constructor",  T_AT_CONSTRUCTOR),
        kwdef_keyword(  "continue",     T_CONTINUE),
@@ -172,21 +164,25 @@
        kwdef_type(     "double",       DOUBLE,                 0,0,0,0,1),
        kwdef_keyword(  "else",         T_ELSE),
        kwdef_keyword(  "enum",         T_ENUM),
-       kwdef_token(    "extension",    T_EXTENSION,            0,0,1,0,4),
+       kwdef_token(    "__extension__",T_EXTENSION,            0,0,1,0,1),
        kwdef_sclass(   "extern",       EXTERN,                 0,0,0,0,1),
        kwdef_gcc_attr( "fallthrough",  T_AT_FALLTHROUGH),
        kwdef_type(     "float",        FLOAT,                  0,0,0,0,1),
        kwdef_keyword(  "for",          T_FOR),
        kwdef_gcc_attr( "format",       T_AT_FORMAT),
        kwdef_gcc_attr( "format_arg",   T_AT_FORMAT_ARG),
+       kwdef_token(    "_Generic",     T_GENERIC,              0,1,0,0,1),
        kwdef_gcc_attr( "gnu_inline",   T_AT_GNU_INLINE),
        kwdef_gcc_attr( "gnu_printf",   T_AT_FORMAT_GNU_PRINTF),
        kwdef_keyword(  "goto",         T_GOTO),
        kwdef_gcc_attr( "hot",          T_AT_HOT),
        kwdef_keyword(  "if",           T_IF),
-       kwdef_token(    "imag",         T_IMAG,                 0,0,1,0,4),
+       kwdef_token(    "__imag__",     T_IMAG,                 0,0,1,0,1),
        kwdef_sclass(   "inline",       INLINE,                 0,1,0,0,7),
        kwdef_type(     "int",          INT,                    0,0,0,0,1),
+#ifdef INT128_SIZE
+       kwdef_type(     "__int128_t",   INT128,                 0,1,0,0,1),
+#endif
        kwdef_type(     "long",         LONG,                   0,0,0,0,1),
        kwdef_gcc_attr( "malloc",       T_AT_MALLOC),
        kwdef_gcc_attr( "may_alias",    T_AT_MAY_ALIAS),
@@ -197,15 +193,16 @@
        kwdef_gcc_attr( "noinline",     T_AT_NOINLINE),
        kwdef_gcc_attr( "nonnull",      T_AT_NONNULL),
        kwdef_gcc_attr( "nonstring",    T_AT_NONSTRING),
+       kwdef_token(    "_Noreturn",    T_NORETURN,             0,1,0,0,1),
        kwdef_gcc_attr( "noreturn",     T_AT_NORETURN),
        kwdef_gcc_attr( "nothrow",      T_AT_NOTHROW),
        kwdef_gcc_attr( "optimize",     T_AT_OPTIMIZE),
        kwdef_gcc_attr( "packed",       T_AT_PACKED),
-       kwdef_token(    "packed",       T_PACKED,               0,0,0,0,2),
+       kwdef_token(    "__packed",     T_PACKED,               0,0,0,0,1),
        kwdef_gcc_attr( "pcs",          T_AT_PCS),
        kwdef_gcc_attr( "printf",       T_AT_FORMAT_PRINTF),
        kwdef_gcc_attr( "pure",         T_AT_PURE),
-       kwdef_token(    "real",         T_REAL,                 0,0,1,0,4),
+       kwdef_token(    "__real__",     T_REAL,                 0,0,1,0,1),
        kwdef_sclass(   "register",     REG,                    0,0,0,0,1),
        kwdef_tqual(    "restrict",     RESTRICT,               0,1,0,0,5),
        kwdef_keyword(  "return",       T_RETURN),
@@ -222,12 +219,17 @@
        kwdef_gcc_attr( "string",       T_AT_STRING),
        kwdef("struct", T_STRUCT_OR_UNION, 0,   STRUCT, 0,      0,0,0,0,1),
        kwdef_keyword(  "switch",       T_SWITCH),
-       kwdef_token(    "symbolrename", T_SYMBOLRENAME,         0,0,0,0,2),
+       kwdef_token(    "__symbolrename",       T_SYMBOLRENAME, 0,0,0,0,1),
        kwdef_gcc_attr( "syslog",       T_AT_FORMAT_SYSLOG),
+       kwdef_tqual(    "__thread",     THREAD,                 0,0,1,0,1),
+       kwdef_tqual(    "_Thread_local", THREAD,                0,1,0,0,1),
+       kwdef_gcc_attr( "tls_model",    T_AT_TLS_MODEL),
        kwdef_gcc_attr( "transparent_union", T_AT_TUNION),
-       kwdef_gcc_attr( "tls_model",    T_AT_TLS_MODEL),
        kwdef_sclass(   "typedef",      TYPEDEF,                0,0,0,0,1),
        kwdef_token(    "typeof",       T_TYPEOF,               0,0,1,0,7),
+#ifdef INT128_SIZE
+       kwdef_type(     "__uint128_t",  UINT128,                0,1,0,0,1),
+#endif
        kwdef("union",  T_STRUCT_OR_UNION, 0,   UNION,  0,      0,0,0,0,1),
        kwdef_type(     "unsigned",     UNSIGN,                 0,0,0,0,1),
        kwdef_gcc_attr( "unused",       T_AT_UNUSED),



Home | Main Index | Thread Index | Old Index