bison-patches
[Top][All Lists]
Advanced

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

Bison relation patches for integer sizes


From: Paul Eggert
Subject: Bison relation patches for integer sizes
Date: Fri, 10 Dec 2004 22:15:07 -0800
User-agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux)

--enable-gcc-warnings found some glitches in relation.c that are due
to int, unsigned, and size_t being mixed unwisely.  I installed this
patch to clean things up.

2004-12-10  Paul Eggert  <address@hidden>

        * src/relation.h (relation_print, relation_digraph):
        Relation sizes are of type relation_node, not size_t (this is
        merely a doc fix, since the two types are equivalent).
        (relation_transpose): Relation sizes are of type relation_node,
        not int.
        * src/relation.c: Likewise.
        (top, infinity): Now of type relation_node, not int.
        (traverse, relation_transpose): Use relation_node, not int.

Index: src/relation.h
===================================================================
RCS file: /cvsroot/bison/bison/src/relation.h,v
retrieving revision 1.6
diff -p -u -r1.6 relation.h
--- src/relation.h      22 Oct 2004 23:14:00 -0000      1.6
+++ src/relation.h      11 Dec 2004 06:01:08 -0000
@@ -35,16 +35,16 @@ typedef relation_nodes *relation;
 
 
 /* Report a relation R that has SIZE vertices.  */
-void relation_print (relation r, size_t size, FILE *out);
+void relation_print (relation r, relation_node size, FILE *out);
 
 /* Compute the transitive closure of the FUNCTION on the relation R
    with SIZE vertices.
 
    If R (NODE-1, NODE-2) then on exit FUNCTION[NODE - 1] was extended
    (unioned) with FUNCTION[NODE - 2].  */
-void relation_digraph (relation r, size_t size, bitsetv *function);
+void relation_digraph (relation r, relation_node size, bitsetv *function);
 
 /* Destructively transpose *R_ARG, of size N.  */
-void relation_transpose (relation *R_arg, int n);
+void relation_transpose (relation *R_arg, relation_node n);
 
 #endif /* ! RELATION_H_ */
Index: src/relation.c
===================================================================
RCS file: /cvsroot/bison/bison/src/relation.c,v
retrieving revision 1.10
diff -p -u -r1.10 relation.c
--- src/relation.c      10 Dec 2004 07:50:44 -0000      1.10
+++ src/relation.c      11 Dec 2004 06:01:08 -0000
@@ -26,17 +26,17 @@
 #include "relation.h"
 
 void
-relation_print (relation r, size_t size, FILE *out)
+relation_print (relation r, relation_node size, FILE *out)
 {
-  unsigned int i;
-  unsigned int j;
+  relation_node i;
+  relation_node j;
 
   for (i = 0; i < size; ++i)
     {
-      fprintf (out, "%3d: ", i);
+      fprintf (out, "%3lu: ", (unsigned long int) i);
       if (r[i])
        for (j = 0; r[i][j] != END_NODE; ++j)
-         fprintf (out, "%3d ", r[i][j]);
+         fprintf (out, "%3lu ", (unsigned long int) r[i][j]);
       fputc ('\n', out);
     }
   fputc ('\n', out);
@@ -53,15 +53,15 @@ relation_print (relation r, size_t size,
 static relation R;
 static relation_nodes INDEX;
 static relation_nodes VERTICES;
-static int top;
-static int infinity;
+static relation_node top;
+static relation_node infinity;
 static bitsetv F;
 
 static void
-traverse (int i)
+traverse (relation_node i)
 {
-  int j;
-  int height;
+  relation_node j;
+  relation_node height;
 
   VERTICES[++top] = i;
   INDEX[i] = height = top;
@@ -93,9 +93,9 @@ traverse (int i)
 
 
 void
-relation_digraph (relation r, size_t size, bitsetv *function)
+relation_digraph (relation r, relation_node size, bitsetv *function)
 {
-  unsigned int i;
+  relation_node i;
 
   infinity = size + 2;
   INDEX = xcalloc (size + 1, sizeof *INDEX);
@@ -121,15 +121,16 @@ relation_digraph (relation r, size_t siz
 `-------------------------------------------*/
 
 void
-relation_transpose (relation *R_arg, int n)
+relation_transpose (relation *R_arg, relation_node n)
 {
   /* The result. */
   relation new_R = xnmalloc (n, sizeof *new_R);
   /* END_R[I] -- next entry of NEW_R[I]. */
   relation end_R = xnmalloc (n, sizeof *end_R);
   /* NEDGES[I] -- total size of NEW_R[I]. */
-  int *nedges = xcalloc (n, sizeof *nedges);
-  int i, j;
+  size_t *nedges = xcalloc (n, sizeof *nedges);
+  relation_node i;
+  relation_node j;
 
   if (trace_flag & trace_sets)
     {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]