very nice!

On Mar 1, 2010, at 3:15 PM, Douglas Gregor wrote:

> Author: dgregor
> Date: Mon Mar  1 17:15:13 2010
> New Revision: 97518
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=97518&view=rev
> Log:
> Keep an explicit stack of function and block scopes, each element of
> which has the label map, switch statement stack, etc. Previously, we
> had a single set of maps in Sema (for the function) along with a stack
> of block scopes. However, this lead to funky behavior with nested
> functions, e.g., in the member functions of local classes.
> 
> The explicit-stack approach is far cleaner, and we retain a 1-element
> cache so that we're not malloc/free'ing every time we enter a
> function. Fixes PR6382.
> 
> Also, tweaked the unused-variable warning suppression logic to look at
> errors within a given Scope rather than within a given function. The
> prior code wasn't looking at the right number-of-errors count when
> dealing with blocks, since the block's count would be deallocated
> before we got to ActOnPopScope. This approach works with nested
> blocks/functions, and gives tighter error recovery.

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to