commit 61f2ecbb9662397475b8ce43cf8d3a902db3e118
parent f51a68e44b4bb4255a371f30ec95da9282033bd5
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Wed, 11 May 2016 17:01:57 +0200
Merge remote-tracking branch 'origin/master'
Diffstat:
7 files changed, 157 insertions(+), 34 deletions(-)
diff --git a/cc1/lex.c b/cc1/lex.c
@@ -250,7 +250,7 @@ repeat:
static void
tok2str(void)
{
- if ((yylen = input->p - input->begin) > IDENTSIZ)
+ if ((yylen = input->p - input->begin) > INTIDENTSIZ)
error("token too big");
strncpy(yytext, input->begin, yylen);
yytext[yylen] = '\0';
diff --git a/cc2/arch/amd64-sysv/code.c b/cc2/arch/amd64-sysv/code.c
@@ -33,7 +33,7 @@ segment(int seg)
static char *
symname(Symbol *sym)
{
- static char name[IDENTSIZ+1];
+ static char name[INTIDENTSIZ+1];
if (sym->name) {
switch (sym->kind) {
diff --git a/cc2/arch/i386-sysv/code.c b/cc2/arch/i386-sysv/code.c
@@ -33,7 +33,7 @@ segment(int seg)
static char *
symname(Symbol *sym)
{
- static char name[IDENTSIZ+1];
+ static char name[INTIDENTSIZ+1];
if (sym->name) {
switch (sym->kind) {
diff --git a/cc2/arch/qbe/code.c b/cc2/arch/qbe/code.c
@@ -7,7 +7,7 @@
#include "../../cc2.h"
#include "../../../inc/sizes.h"
-#define ADDR_LEN (IDENTSIZ+64)
+#define ADDR_LEN (INTIDENTSIZ+64)
static void binary(void), unary(void), store(void), jmp(void), ret(void),
branch(void);
diff --git a/cc2/arch/z80/code.c b/cc2/arch/z80/code.c
@@ -34,7 +34,7 @@ segment(int seg)
static char *
symname(Symbol *sym)
{
- static char name[IDENTSIZ+1];
+ static char name[INTIDENTSIZ+1];
if (sym->name) {
switch (sym->kind) {
diff --git a/inc/sizes.h b/inc/sizes.h
@@ -1,85 +1,100 @@
-
/*
* 15 nesting levels of compound statements, iteration control
* structures, and selection control structures
*/
-#define NR_BLOCK 15
+#define NR_BLOCK 15
/*
* 8 nesting levels of conditional inclusion
*/
-#define NR_COND 8
-/*
- * number of defined structs/unions in one translation unit
- */
-#define NR_MAXSTRUCTS 127
+#define NR_COND 8
/*
* 12 pointer, array, and function declarators (in any combinations)
- * modifying an arithmetic, a structure, a union, or an incomplete type
- * in a declaration
+ * modifying an arithmetic, a structure, a union, or an incomplete type
+ * in a declaration
*/
#define NR_DECLARATORS 12
/*
- * 31 declarators nested by parentheses within a full declarator.
+ * 31 declarators nested by parentheses within a full declarator
*/
-#define NR_SUBTYPE 31
+#define NR_SUBTYPE 31
/*
* 32 expressions nested by parentheses within a full expression
*/
-#define NR_SUBEXPR 32
+#define NR_SUBEXPR 32
/*
* 31 significant initial characters in an internal identifier or a
* macro name
*/
-#define IDENTSIZ 31
+#define INTIDENTSIZ 31
+/*
+ * 6 significant initial characters in an external identifier
+ */
+#define EXTIDENTSIZ 6
/*
* 511 external identifiers in one translation unit
*/
-#define NR_EXT_IDENT 511
+#define NR_EXT_IDENT 511
/*
* 127 identifiers with block scope declared in one block
*/
-#define NR_INT_IDENT 127
+#define NR_INT_IDENT 127
+/*
+ * 1024 macro identifiers simultaneously defined in one translation
+ * unit
+ */
+#define NR_MACROIDENT 1024
+/*
+ * 31 parameters in one function definition
+ */
+#define NR_FUNPARAM 31
/*
- * 31 parameters in one function definition * 6 significant initial
- * characters in an external identifier.
+ * 31 arguments in one function call
*/
-#define NR_FUNPARAM 31
+#define NR_FUNARG 31
/*
* 31 parameters in one macro definition
*/
-#define NR_MACROARG 31
+#define NR_MACROPARAM 31
+/*
+ * 31 arguments in one macro invocation
+ */
+#define NR_MACROARG 31
/*
- * 509 characters in a logical source line.
+ * 509 characters in a logical source line
*/
-#define LINESIZ 509
+#define LINESIZ 509
/*
* 509 characters in a character string literal or wide string literal
* (after concatenation)
*/
-#define STRINGSIZ 509
+#define STRINGSIZ 509
+/*
+ * 32767 bytes in an object (in a hosted environment only)
+ */
+#define OBJECTSIZ 32767
/*
* 8 nesting levels for #include'd files
*/
-#define NR_INCLUDE 9
+#define NR_INCLUDE 8
/*
* 257 case labels for a switch statement (excluding those for any
* nested switch statements)
*/
-#define NR_SWITCH 257
+#define NR_SWITCH 257
/*
* 127 members in a single structure or union
*/
-#define NR_FIELDS 127
+#define NR_FIELDS 127
/*
* 127 enumeration constants in a single enumeration
*/
-#define NR_ENUM_CTES 127
+#define NR_ENUM_CTES 127
/*
* 15 levels of nested structure or union definitions in a single
- * struct-declaration-list
+ * struct-declaration-list
*/
#define NR_STRUCT_LEVEL 15
/*
- * 32767 bytes in an object (in a hosted environment only)
+ * number of defined structs/unions in one translation unit
*/
-#define OBJECTSIZ 32767
+#define NR_MAXSTRUCTS 127
diff --git a/inc/sizes_c99.h b/inc/sizes_c99.h
@@ -0,0 +1,108 @@
+/*
+ * 127 nesting levels of blocks
+ */
+#define NR_BLOCK 127
+/*
+ * 63 nesting levels of conditional inclusion
+ */
+#define NR_COND 63
+/*
+ * 12 pointer, array, and function declarators (in any combinations)
+ * modifying an arithmetic, a structure, a union, or an incomplete type
+ * in a declaration
+ */
+#define NR_DECLARATORS 12
+/*
+ * 63 nesting levels of parenthesized declarators within a full
+ * declarator
+ */
+#define NR_SUBTYPE 63
+/*
+ * 63 nesting levels of parenthesized expressions within a full
+ * expression
+ */
+#define NR_SUBEXPR 63
+/*
+ * 63 significant initial characters in an internal identifier or a
+ * macro name (each universal character name or extended source
+ * character is considered a single character)
+ */
+#define INTIDENTSIZ 63
+/*
+ * 31 significant initial characters in an external identifier (each
+ * universal character name specifying a short identifier of 0000FFFF
+ * or less is considered 6 characters, each universal character name
+ * specifying a short identifier of 00010000 or more is considered 10
+ * characters, and each extended source character is considered the
+ * same number of characters as the corresponding universal character
+ * name, if any)
+ */
+#define EXTIDENTSIZ 63
+/*
+ * 4095 external identifiers in one translation unit
+ */
+#define NR_EXT_IDENT 4095
+/*
+ * 511 identifiers with block scope declared in one block
+ */
+#define NR_INT_IDENT 511
+/*
+ * 4096 macro identifiers simultaneously defined in one preprocessing
+ * translation unit
+ */
+#define NR_MACROIDENT 4096
+/*
+ * 127 parameters in one function definition
+ */
+#define NR_FUNPARAM 127
+/*
+ * 127 arguments in one function call
+ */
+#define NR_FUNARG 127
+/*
+ * 127 parameters in one macro definition
+ */
+#define NR_MACROPARAM 127
+/*
+ * 127 arguments in one macro invocation
+ */
+#define NR_MACROARG 127
+/*
+ * 4095 characters in a logical source line
+ */
+#define LINESIZ 4095
+/*
+ * 4095 characters in a character string literal or wide string literal
+ * (after concatenation)
+ */
+#define STRINGSIZ 4095
+/*
+ * 65535 bytes in an object (in a hosted environment only)
+ */
+#define OBJECTSIZ 65535
+/*
+ * 15 nesting levels for #include'd files
+ */
+#define NR_INCLUDE 15
+/*
+ * 1023 case labels for a switch statement (excluding those for any
+ * nested switch statements)
+ */
+#define NR_SWITCH 1023
+/*
+ * 1023 members in a single structure or union
+ */
+#define NR_FIELDS 1023
+/*
+ * 1023 enumeration constants in a single enumeration
+ */
+#define NR_ENUM_CTES 1023
+/*
+ * 63 levels of nested structure or union definitions in a single
+ * struct-declaration-list
+ */
+#define NR_STRUCT_LEVEL 63
+/*
+ * number of defined structs/unions in one translation unit
+ */
+#define NR_MAXSTRUCTS 127