[hackers] [scc] Fix translation limits for c89 || Quentin Rameau

From: <git_AT_suckless.org>
Date: Wed, 11 May 2016 16:59:37 +0200 (CEST)

commit 464cd37eadea52260ce8b506ca3cc0172b4c6cf1
Author: Quentin Rameau <quinq_AT_fifth.space>
AuthorDate: Wed May 11 16:01:02 2016 +0200
Commit: Quentin Rameau <quinq_AT_fifth.space>
CommitDate: Wed May 11 16:59:20 2016 +0200

    Fix translation limits for c89

diff --git a/cc1/lex.c b/cc1/lex.c
index 72342b7..5f4685d 100644
--- a/cc1/lex.c
+++ b/cc1/lex.c
_AT_@ -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
index 6f66ee5..af87017 100644
--- a/cc2/arch/amd64-sysv/code.c
+++ b/cc2/arch/amd64-sysv/code.c
_AT_@ -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
index 657f422..850779f 100644
--- a/cc2/arch/i386-sysv/code.c
+++ b/cc2/arch/i386-sysv/code.c
_AT_@ -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
index b48abef..99624fc 100644
--- a/cc2/arch/qbe/code.c
+++ b/cc2/arch/qbe/code.c
_AT_@ -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
index 9899bc5..594bd4d 100644
--- a/cc2/arch/z80/code.c
+++ b/cc2/arch/z80/code.c
_AT_@ -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
index 4df515f..d78c51f 100644
--- a/inc/sizes.h
+++ b/inc/sizes.h
_AT_@ -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
Received on Wed May 11 2016 - 16:59:37 CEST

This archive was generated by hypermail 2.3.0 : Wed May 11 2016 - 17:00:20 CEST