Module Name:    src
Committed By:   rillig
Date:           Sat Jun 11 13:19:28 UTC 2022

Modified Files:
        src/usr.bin/xlint/lint1: lex.c

Log Message:
lint: make definition of type keywords simpler

The only type keyword that is available in more than one variant is
'signed', which can also be written '__signed'.  Neither of the type
keywords is declared as being specific to GCC, even though __int128_t
and __uint128_t actually are non-standard.

No binary change.


To generate a diff of this commit:
cvs rdiff -u -r1.131 -r1.132 src/usr.bin/xlint/lint1/lex.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/xlint/lint1/lex.c
diff -u src/usr.bin/xlint/lint1/lex.c:1.131 src/usr.bin/xlint/lint1/lex.c:1.132
--- src/usr.bin/xlint/lint1/lex.c:1.131	Fri May 20 21:18:55 2022
+++ src/usr.bin/xlint/lint1/lex.c	Sat Jun 11 13:19:28 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: lex.c,v 1.131 2022/05/20 21:18:55 rillig Exp $ */
+/* $NetBSD: lex.c,v 1.132 2022/06/11 13:19:28 rillig Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All Rights Reserved.
@@ -38,7 +38,7 @@
 
 #include <sys/cdefs.h>
 #if defined(__RCSID)
-__RCSID("$NetBSD: lex.c,v 1.131 2022/05/20 21:18:55 rillig Exp $");
+__RCSID("$NetBSD: lex.c,v 1.132 2022/06/11 13:19:28 rillig Exp $");
 #endif
 
 #include <ctype.h>
@@ -87,8 +87,8 @@ bool in_system_header;
 	kwdef(name, token, 0, 0, 0,		since, gcc, 0, deco)
 #define kwdef_sclass(name, sclass,		since, gcc, deco) \
 	kwdef(name, T_SCLASS, sclass, 0, 0,	since, gcc, 0, deco)
-#define kwdef_type(name, tspec,			since, gcc, deco) \
-	kwdef(name, T_TYPE, 0, tspec, 0,	since, gcc, 0, deco)
+#define kwdef_type(name, tspec,			since) \
+	kwdef(name, T_TYPE, 0, tspec, 0,	since, 0, 0, 1)
 #define kwdef_tqual(name, tqual,		since, gcc, deco) \
 	kwdef(name, T_QUAL, 0, 0, tqual,	since, gcc, 0, deco)
 #define kwdef_keyword(name, token) \
@@ -118,33 +118,33 @@ static const struct keyword {
 	kwdef_token(	"asm",		T_ASM,			78,1,7),
 	kwdef_token(	"attribute",	T_ATTRIBUTE,		78,1,6),
 	kwdef_sclass(	"auto",		AUTO,			78,0,1),
-	kwdef_type(	"_Bool",	BOOL,			99,0,1),
+	kwdef_type(	"_Bool",	BOOL,			99),
 	kwdef_keyword(	"break",	T_BREAK),
 	kwdef_token(	"__builtin_offsetof", T_BUILTIN_OFFSETOF, 78,1,1),
 	kwdef_keyword(	"case",		T_CASE),
-	kwdef_type(	"char",		CHAR,			78,0,1),
-	kwdef_type(	"_Complex",	COMPLEX,		99,0,1),
+	kwdef_type(	"char",		CHAR,			78),
+	kwdef_type(	"_Complex",	COMPLEX,		99),
 	kwdef_tqual(	"const",	CONST,			90,0,7),
 	kwdef_keyword(	"continue",	T_CONTINUE),
 	kwdef_keyword(	"default",	T_DEFAULT),
 	kwdef_keyword(	"do",		T_DO),
-	kwdef_type(	"double",	DOUBLE,			78,0,1),
+	kwdef_type(	"double",	DOUBLE,			78),
 	kwdef_keyword(	"else",		T_ELSE),
 	kwdef_keyword(	"enum",		T_ENUM),
 	kwdef_token(	"__extension__",T_EXTENSION,		78,1,1),
 	kwdef_sclass(	"extern",	EXTERN,			78,0,1),
-	kwdef_type(	"float",	FLOAT,			78,0,1),
+	kwdef_type(	"float",	FLOAT,			78),
 	kwdef_keyword(	"for",		T_FOR),
 	kwdef_token(	"_Generic",	T_GENERIC,		11,0,1),
 	kwdef_keyword(	"goto",		T_GOTO),
 	kwdef_keyword(	"if",		T_IF),
 	kwdef_token(	"__imag__",	T_IMAG,			78,1,1),
 	kwdef_sclass(	"inline",	INLINE,			99,0,7),
-	kwdef_type(	"int",		INT,			78,0,1),
+	kwdef_type(	"int",		INT,			78),
 #ifdef INT128_SIZE
-	kwdef_type(	"__int128_t",	INT128,			99,0,1),
+	kwdef_type(	"__int128_t",	INT128,			99),
 #endif
-	kwdef_type(	"long",		LONG,			78,0,1),
+	kwdef_type(	"long",		LONG,			78),
 	kwdef_token(	"_Noreturn",	T_NORETURN,		11,0,1),
 	kwdef_token(	"__packed",	T_PACKED,		78,0,1),
 	kwdef_token(	"__real__",	T_REAL,			78,1,1),
@@ -152,8 +152,8 @@ static const struct keyword {
 	kwdef_tqual(	"restrict",	RESTRICT,		99,0,7),
 	kwdef_keyword(	"return",	T_RETURN),
 	kwdef(		"section",	T_AT_SECTION,	0,0,0,	78,1,1,7),
-	kwdef_type(	"short",	SHORT,			78,0,1),
-	kwdef_type(	"signed",	SIGNED,			90,0,3),
+	kwdef_type(	"short",	SHORT,			78),
+	kwdef(		"signed",	T_TYPE, 0, SIGNED, 0,	90,0,0,3),
 	kwdef_keyword(	"sizeof",	T_SIZEOF),
 	kwdef_sclass(	"static",	STATIC,			78,0,1),
 	kwdef_keyword(	"_Static_assert",	T_STATIC_ASSERT),
@@ -165,11 +165,11 @@ static const struct keyword {
 	kwdef_sclass(	"typedef",	TYPEDEF,		78,0,1),
 	kwdef_token(	"typeof",	T_TYPEOF,		78,1,7),
 #ifdef INT128_SIZE
-	kwdef_type(	"__uint128_t",	UINT128,		99,0,1),
+	kwdef_type(	"__uint128_t",	UINT128,		99),
 #endif
 	kwdef("union",	T_STRUCT_OR_UNION, 0,	UNION,	0,	78,0,0,1),
-	kwdef_type(	"unsigned",	UNSIGN,			78,0,1),
-	kwdef_type(	"void",		VOID,			78,0,1),
+	kwdef_type(	"unsigned",	UNSIGN,			78),
+	kwdef_type(	"void",		VOID,			78),
 	kwdef_tqual(	"volatile",	VOLATILE,		90,0,7),
 	kwdef_keyword(	"while",	T_WHILE),
 

Reply via email to