[Python-checkins] fix warnings by adding more const (GH-12924)

Inada Naoki webhook-mailer at python.org
Tue Apr 23 07:39:56 EDT 2019


https://github.com/python/cpython/commit/09415ff0ebbbe97c8cd08ac1f94673d7a49c8018
commit: 09415ff0ebbbe97c8cd08ac1f94673d7a49c8018
branch: master
author: Inada Naoki <songofacandy at gmail.com>
committer: GitHub <noreply at github.com>
date: 2019-04-23T20:39:37+09:00
summary:

fix warnings by adding more const (GH-12924)

files:
M Include/grammar.h
M Modules/parsermodule.c
M Parser/acceler.c
M Parser/grammar1.c
M Parser/parser.c
M Parser/parser.h

diff --git a/Include/grammar.h b/Include/grammar.h
index faccae4657ee..4b66b1e9b974 100644
--- a/Include/grammar.h
+++ b/Include/grammar.h
@@ -66,7 +66,7 @@ typedef struct {
 } grammar;
 
 /* FUNCTIONS */
-dfa *PyGrammar_FindDFA(grammar *g, int type);
+const dfa *PyGrammar_FindDFA(grammar *g, int type);
 const char *PyGrammar_LabelRepr(label *lb);
 void PyGrammar_AddAccelerators(grammar *g);
 void PyGrammar_RemoveAccelerators(grammar *);
diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c
index a215c7ecacd7..0f681622f288 100644
--- a/Modules/parsermodule.c
+++ b/Modules/parsermodule.c
@@ -644,7 +644,6 @@ validate_node(node *tree)
 {
     int type = TYPE(tree);
     int nch = NCH(tree);
-    dfa *nt_dfa;
     state *dfa_state;
     int pos, arc;
 
@@ -654,7 +653,7 @@ validate_node(node *tree)
         PyErr_Format(parser_error, "Unrecognized node type %d.", TYPE(tree));
         return 0;
     }
-    nt_dfa = &_PyParser_Grammar.g_dfa[type];
+    const dfa *nt_dfa = &_PyParser_Grammar.g_dfa[type];
     REQ(tree, nt_dfa->d_type);
 
     /* Run the DFA for this nonterminal. */
diff --git a/Parser/acceler.c b/Parser/acceler.c
index 3a230c19bb9f..e515833e1dda 100644
--- a/Parser/acceler.c
+++ b/Parser/acceler.c
@@ -17,15 +17,14 @@
 #include "parser.h"
 
 /* Forward references */
-static void fixdfa(grammar *, dfa *);
+static void fixdfa(grammar *, const dfa *);
 static void fixstate(grammar *, state *);
 
 void
 PyGrammar_AddAccelerators(grammar *g)
 {
-    dfa *d;
     int i;
-    d = g->g_dfa;
+    const dfa *d = g->g_dfa;
     for (i = g->g_ndfas; --i >= 0; d++)
         fixdfa(g, d);
     g->g_accel = 1;
@@ -34,10 +33,9 @@ PyGrammar_AddAccelerators(grammar *g)
 void
 PyGrammar_RemoveAccelerators(grammar *g)
 {
-    dfa *d;
     int i;
     g->g_accel = 0;
-    d = g->g_dfa;
+    const dfa *d = g->g_dfa;
     for (i = g->g_ndfas; --i >= 0; d++) {
         state *s;
         int j;
@@ -51,7 +49,7 @@ PyGrammar_RemoveAccelerators(grammar *g)
 }
 
 static void
-fixdfa(grammar *g, dfa *d)
+fixdfa(grammar *g, const dfa *d)
 {
     state *s;
     int j;
@@ -63,7 +61,7 @@ fixdfa(grammar *g, dfa *d)
 static void
 fixstate(grammar *g, state *s)
 {
-    arc *a;
+    const arc *a;
     int k;
     int *accel;
     int nl = g->g_ll.ll_nlabels;
@@ -78,14 +76,14 @@ fixstate(grammar *g, state *s)
     a = s->s_arc;
     for (k = s->s_narcs; --k >= 0; a++) {
         int lbl = a->a_lbl;
-        label *l = &g->g_ll.ll_label[lbl];
+        const label *l = &g->g_ll.ll_label[lbl];
         int type = l->lb_type;
         if (a->a_arrow >= (1 << 7)) {
             printf("XXX too many states!\n");
             continue;
         }
         if (ISNONTERMINAL(type)) {
-            dfa *d1 = PyGrammar_FindDFA(g, type);
+            const dfa *d1 = PyGrammar_FindDFA(g, type);
             int ibit;
             if (type - NT_OFFSET >= (1 << 7)) {
                 printf("XXX too high nonterminal number!\n");
diff --git a/Parser/grammar1.c b/Parser/grammar1.c
index fec6d9ec0ee2..e0b8fbb8b828 100644
--- a/Parser/grammar1.c
+++ b/Parser/grammar1.c
@@ -7,12 +7,11 @@
 
 /* Return the DFA for the given type */
 
-dfa *
+const dfa *
 PyGrammar_FindDFA(grammar *g, int type)
 {
-    dfa *d;
     /* Massive speed-up */
-    d = &g->g_dfa[type - NT_OFFSET];
+    const dfa *d = &g->g_dfa[type - NT_OFFSET];
     assert(d->d_type == type);
     return d;
 }
diff --git a/Parser/parser.c b/Parser/parser.c
index c21b6fdf466d..227b9184f471 100644
--- a/Parser/parser.c
+++ b/Parser/parser.c
@@ -35,7 +35,7 @@ s_reset(stack *s)
 #define s_empty(s) ((s)->s_top == &(s)->s_base[MAXSTACK])
 
 static int
-s_push(stack *s, dfa *d, node *parent)
+s_push(stack *s, const dfa *d, node *parent)
 {
     stackentry *top;
     if (s->s_top == s->s_base) {
@@ -119,7 +119,7 @@ shift(stack *s, int type, char *str, int newstate, int lineno, int col_offset,
 }
 
 static int
-push(stack *s, int type, dfa *d, int newstate, int lineno, int col_offset,
+push(stack *s, int type, const dfa *d, int newstate, int lineno, int col_offset,
      int end_lineno, int end_col_offset)
 {
     int err;
@@ -144,7 +144,7 @@ classify(parser_state *ps, int type, const char *str)
     int n = g->g_ll.ll_nlabels;
 
     if (type == NAME) {
-        label *l = g->g_ll.ll_label;
+        const label *l = g->g_ll.ll_label;
         int i;
         for (i = n; i > 0; i--, l++) {
             if (l->lb_type != NAME || l->lb_str == NULL ||
@@ -168,7 +168,7 @@ classify(parser_state *ps, int type, const char *str)
     }
 
     {
-        label *l = g->g_ll.ll_label;
+        const label *l = g->g_ll.ll_label;
         int i;
         for (i = n; i > 0; i--, l++) {
             if (l->lb_type == type && l->lb_str == NULL) {
@@ -246,7 +246,7 @@ PyParser_AddToken(parser_state *ps, int type, char *str,
     /* Loop until the token is shifted or an error occurred */
     for (;;) {
         /* Fetch the current dfa and state */
-        dfa *d = ps->p_stack.s_top->s_dfa;
+        const dfa *d = ps->p_stack.s_top->s_dfa;
         state *s = &d->d_state[ps->p_stack.s_top->s_state];
 
         D(printf(" DFA '%s', state %d:",
@@ -260,7 +260,6 @@ PyParser_AddToken(parser_state *ps, int type, char *str,
                     /* Push non-terminal */
                     int nt = (x >> 8) + NT_OFFSET;
                     int arrow = x & ((1<<7)-1);
-                    dfa *d1;
                     if (nt == func_body_suite && !(ps->p_flags & PyCF_TYPE_COMMENTS)) {
                         /* When parsing type comments is not requested,
                            we can provide better errors about bad indentation
@@ -268,7 +267,7 @@ PyParser_AddToken(parser_state *ps, int type, char *str,
                         D(printf(" [switch func_body_suite to suite]"));
                         nt = suite;
                     }
-                    d1 = PyGrammar_FindDFA(
+                    const dfa *d1 = PyGrammar_FindDFA(
                         ps->p_grammar, nt);
                     if ((err = push(&ps->p_stack, nt, d1,
                         arrow, lineno, col_offset,
diff --git a/Parser/parser.h b/Parser/parser.h
index ebb06c2b1976..b16075e7f29f 100644
--- a/Parser/parser.h
+++ b/Parser/parser.h
@@ -11,7 +11,7 @@ extern "C" {
 
 typedef struct {
     int              s_state;       /* State in current DFA */
-    dfa             *s_dfa;         /* Current DFA */
+    const dfa       *s_dfa;         /* Current DFA */
     struct _node    *s_parent;      /* Where to add next node */
 } stackentry;
 



More information about the Python-checkins mailing list