From 6d131b4582d0940c3ca3525ebfc281a4b5144b68 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 23 Jan 2003 16:33:10 +0000 Subject: [PATCH] Fix problem with flex scanners and huge token sizes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5410 91177308-0d34-0410-b5e6-96231b3b80d8 --- Makefile.common | 11 ++++++++++- Makefile.rules | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Makefile.common b/Makefile.common index 4d61ad7024d..37cce15f70f 100644 --- a/Makefile.common +++ b/Makefile.common @@ -467,8 +467,17 @@ YACC_OUTPUT = $(addprefix $(YACC_FILES:%.y=%), .h .cpp .output) # Create a .cpp source file from a flex input file... this uses sed to cut down # on the warnings emited by GCC... +# +# The last line is a gross hack to work around flex aparently not being able to +# resize the buffer on a large token input. Currently, for uninitialized string +# buffers in LLVM we can generate very long tokens, so this is a hack around it. +# FIXME. (f.e. char Buffer[10000]; ) +# %.cpp: %.l - flex -t $< | sed '/^find_rule/d' | sed 's/void yyunput/inline void yyunput/' | sed 's/void \*yy_flex_realloc/inline void *yy_flex_realloc/' > $@ + flex -t $< | sed '/^find_rule/d' | \ + sed 's/void yyunput/inline void yyunput/' | \ + sed 's/void \*yy_flex_realloc/inline void *yy_flex_realloc/' | \ + sed 's/#define YY_BUF_SIZE 16384/#define YY_BUF_SIZE (16384*64)/' > $@ # Rule for building the bison parsers... diff --git a/Makefile.rules b/Makefile.rules index 4d61ad7024d..37cce15f70f 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -467,8 +467,17 @@ YACC_OUTPUT = $(addprefix $(YACC_FILES:%.y=%), .h .cpp .output) # Create a .cpp source file from a flex input file... this uses sed to cut down # on the warnings emited by GCC... +# +# The last line is a gross hack to work around flex aparently not being able to +# resize the buffer on a large token input. Currently, for uninitialized string +# buffers in LLVM we can generate very long tokens, so this is a hack around it. +# FIXME. (f.e. char Buffer[10000]; ) +# %.cpp: %.l - flex -t $< | sed '/^find_rule/d' | sed 's/void yyunput/inline void yyunput/' | sed 's/void \*yy_flex_realloc/inline void *yy_flex_realloc/' > $@ + flex -t $< | sed '/^find_rule/d' | \ + sed 's/void yyunput/inline void yyunput/' | \ + sed 's/void \*yy_flex_realloc/inline void *yy_flex_realloc/' | \ + sed 's/#define YY_BUF_SIZE 16384/#define YY_BUF_SIZE (16384*64)/' > $@ # Rule for building the bison parsers... -- 2.34.1