fix problem with yy_size_t vs int param to lexer_input
authorStephen M. Cameron <stephenmcameron@gmail.com>
Mon, 6 Oct 2014 22:58:32 +0000 (17:58 -0500)
committerJens Axboe <axboe@fb.com>
Tue, 7 Oct 2014 01:19:21 +0000 (19:19 -0600)
BSD yacc uses "int" for this param, linux uses size_t

Signed-off-by: Jens Axboe <axboe@fb.com>
Makefile
exp/expression-parser.y

index d735ec7e991dc2cbb745e4b64246b5f275b65d43..424a112f68a7fbef21587af5d0a6fceacc93a3b3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -268,7 +268,7 @@ override CFLAGS += -DFIO_VERSION='"$(FIO_VERSION)"'
 
 ifdef CONFIG_ARITHMETIC
 lex.yy.c: exp/expression-parser.l
-       $(QUIET_LEX)$(LEX) exp/expression-parser.l
+       $(QUIET_LEX)$(LEX) --header-file=lexer.h exp/expression-parser.l
 
 lex.yy.o: lex.yy.c y.tab.h
        $(QUIET_CC)$(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -c $<
@@ -281,6 +281,8 @@ y.tab.c: exp/expression-parser.y
 
 y.tab.h: y.tab.c
 
+lexer.h: lex.yy.c
+
 exp/test-expression-parser.o: exp/test-expression-parser.c
        $(QUIET_CC)$(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -c $<
 exp/test-expression-parser: exp/test-expression-parser.o
index e4373d4db53d4ee2efe90367c61e0c842e36733b..83b5b302ed1ae10ae8e40cb676cc1a13613b0777 100644 (file)
@@ -21,6 +21,8 @@
 #include <stdio.h>
 #include <string.h>
 #include <math.h>
+#include "lexer.h"
+
 struct parser_value_type {
        double dval;
        long long ival;
@@ -186,7 +188,7 @@ expression: expression '+' expression {
 static int lexer_read_offset = 0;
 static char lexer_input_buffer[1000];
 
-int lexer_input(char* buffer, int *bytes_read, int bytes_requested)
+int lexer_input(char* buffer, yy_size_t *bytes_read, int bytes_requested)
 {
        int bytes_left = strlen(lexer_input_buffer) - lexer_read_offset;