🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by W. Wilson Ho Mon, 10 Oct 1988 23:36
error in parsing C expression
#606
Author: W. Wilson Ho
Date: Mon, 10 Oct 1988 23:36
52 lines
2279 bytes
Version, system, etc.:

	Gdb version 2.7 running under Ultrix 2.2 on a Vax 8600.

Problem:

	Consider the following script:

how@iris:62> gdb
GDB 2.6, Copyright (C) 1988 Free Software Foundation, Inc.
There is ABSOLUTELY NO WARRANTY for GDB; type "info warranty" for details.
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "info copying" to see the conditions.
Type "help" for a list of commands.
(gdb) printf "%f\n", 3+(4.0-
Invalid syntax in expression.
(gdb) printf "%f %f\n", 3.4, 5.6
Wrong number of arguments for specified format-string
(gdb) quit


	I've figured out the error happens when ALL of the following
are true:

1)	A "printf" command was called
2)	That command line contains a C expression
3)	There is an error in the C expression
4)	The error is detected after parsing a left paren, but before
parsing the corresponding right paren.

	After the above error has happened, subsequence calls to
printf that involve a list of arguments will get the wrong number of
arguments error.


	I also believe that I've found that bug.  In expread.y, there
is a static variable "paren_depth".   Whenever a left paren is
processed by yylex(), paren_depth is incremented by one.  But it is
not reset to zero when an error is detected.  So, next time when
parse_to_comma_and_eval() is called, it will not stop at the correct
position of the comma because paren_depth is NOT zero at that time.

Wilson HO

-------------------------------------------------------------------------------
  W. Wilson Ho		        |  INTERNET: how@iris.ucdavis.edu
  Division of Computer Science	|  UUCP:     {lll-crg, ucbvax}!ucdavis!iris!how
  EECS Department		|
  University of California	|  Phone:    (916)752-7109
  Davis, CA 95616		|
-------------------------------------------------------------------------------
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads