bison-patches
[Top][All Lists]
Advanced

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

Re: yacc.c: Extracting yysyntax_error


From: Hans Aberg
Subject: Re: yacc.c: Extracting yysyntax_error
Date: Wed, 21 Sep 2005 09:03:17 +0200

On 21 Sep 2005, at 01:13, Paul Eggert wrote:

 2.  Avoid memory leaks when a C signal handler does a setjmp out of a
     parser.  Traditionally this has been useful for programs that
     read and parse input interactively, and that trap signals and use
     longjmp in signal handers.
...
As for (2), how are C++ programs supposed to prevent memory leaks in
such situations?  Does lalr1.cc handle this correctly?  (glr.c
doesn't, not that I'm tempted to modify it to handle this....)

If one uses exception handling instead of longjmp, then cleanup can be made automatic. In particular, it is, if one uses the standard classes std::stack, std::deque, etc. If one mixes exceptions with longjmp, that can result in undefined behavior. One advantage with C+ + is its automatic cleanup; one drawback is that in the current C++ revision (which may change in the future), is that it is difficult to implement a GC, other than a reference count.

  Hans Aberg






reply via email to

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