Fix a bug in lemon that does not effect SQLite. Ticket #1068. (CVS 2208)
FossilOrigin-Name: 7113b5ed8d51718356ce1cc51896a3070875a7e2
This commit is contained in:
parent
c08d405d2e
commit
8d65973d93
14
manifest
14
manifest
@ -1,5 +1,5 @@
|
||||
C Tidy\sup\smalloc.test\sa\sbit.\s(CVS\s2207)
|
||||
D 2005-01-13T13:35:58
|
||||
C Fix\sa\sbug\sin\slemon\sthat\sdoes\snot\seffect\sSQLite.\s\sTicket\s#1068.\s(CVS\s2208)
|
||||
D 2005-01-13T23:54:07
|
||||
F Makefile.in 6ce51dde6a8fe82fc12f20dec750572f6a19f56a
|
||||
F Makefile.linux-gcc a9e5a0d309fa7c38e7c14d3ecf7690879d3a5457
|
||||
F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1
|
||||
@ -209,7 +209,7 @@ F test/varint.test ab7b110089a08b9926ed7390e7e97bdefeb74102
|
||||
F test/view.test 3f96df86f1c61ee850b945204683773bbbb8643e
|
||||
F test/where.test 0d7c9dad0aabb30aa8babdee659cc558db85a274
|
||||
F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
|
||||
F tool/lemon.c 250b30bcf3f1f422a2cad24b1597314777058a4b
|
||||
F tool/lemon.c eb3b2bbefc0d442fa459f4f1924e598e804eca9c
|
||||
F tool/lempar.c 1e61d2b6cb9d8affa264a13336bc0c088498caa4
|
||||
F tool/memleak.awk 4e7690a51bf3ed757e611273d43fe3f65b510133
|
||||
F tool/memleak2.awk 9cc20c8e8f3c675efac71ea0721ee6874a1566e8
|
||||
@ -268,7 +268,7 @@ F www/tclsqlite.tcl e73f8f8e5f20e8277619433f7970060ab01088fc
|
||||
F www/vdbe.tcl 095f106d93875c94b47367384ebc870517431618
|
||||
F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
|
||||
F www/whentouse.tcl c3b50d3ac31c54be2a1af9b488a89d22f1e6e746
|
||||
P 2c7a1a1698851914de705a0a942ebaaad5545fbc
|
||||
R f1470a4facb1a63af2a4c86a82a6a799
|
||||
U danielk1977
|
||||
Z 17062bc61ce0613e5a4bff945da3ebb7
|
||||
P 94cf91cc5dc0d656636211d23350a1ec29aced8a
|
||||
R 22751790adbb0fabba4752e324de35f9
|
||||
U drh
|
||||
Z df8ba3dea9dafef9b539e800490a2365
|
||||
|
@ -1 +1 @@
|
||||
94cf91cc5dc0d656636211d23350a1ec29aced8a
|
||||
7113b5ed8d51718356ce1cc51896a3070875a7e2
|
28
tool/lemon.c
28
tool/lemon.c
@ -3664,6 +3664,20 @@ int mhflag; /* Output in makeheaders format if true */
|
||||
fprintf(out," break;\n"); lineno++;
|
||||
}
|
||||
}
|
||||
if( lemp->vardest ){
|
||||
struct symbol *dflt_sp = 0;
|
||||
for(i=0; i<lemp->nsymbol; i++){
|
||||
struct symbol *sp = lemp->symbols[i];
|
||||
if( sp==0 || sp->type==TERMINAL ||
|
||||
sp->index<=0 || sp->destructor!=0 ) continue;
|
||||
fprintf(out," case %d:\n",sp->index); lineno++;
|
||||
dflt_sp = sp;
|
||||
}
|
||||
if( dflt_sp!=0 ){
|
||||
emit_destructor_code(out,dflt_sp,lemp,&lineno);
|
||||
fprintf(out," break;\n"); lineno++;
|
||||
}
|
||||
}
|
||||
for(i=0; i<lemp->nsymbol; i++){
|
||||
struct symbol *sp = lemp->symbols[i];
|
||||
if( sp==0 || sp->type==TERMINAL || sp->destructor==0 ) continue;
|
||||
@ -3683,20 +3697,6 @@ int mhflag; /* Output in makeheaders format if true */
|
||||
emit_destructor_code(out,lemp->symbols[i],lemp,&lineno);
|
||||
fprintf(out," break;\n"); lineno++;
|
||||
}
|
||||
if( lemp->vardest ){
|
||||
struct symbol *dflt_sp = 0;
|
||||
for(i=0; i<lemp->nsymbol; i++){
|
||||
struct symbol *sp = lemp->symbols[i];
|
||||
if( sp==0 || sp->type==TERMINAL ||
|
||||
sp->index<=0 || sp->destructor!=0 ) continue;
|
||||
fprintf(out," case %d:\n",sp->index); lineno++;
|
||||
dflt_sp = sp;
|
||||
}
|
||||
if( dflt_sp!=0 ){
|
||||
emit_destructor_code(out,dflt_sp,lemp,&lineno);
|
||||
fprintf(out," break;\n"); lineno++;
|
||||
}
|
||||
}
|
||||
tplt_xfer(lemp->name,in,out,&lineno);
|
||||
|
||||
/* Generate code which executes whenever the parser stack overflows */
|
||||
|
Loading…
x
Reference in New Issue
Block a user