Brad King 5d85fb4f40 Fix assertion failure on unmatched function or macro
The fix in commit v3.2.3~3^2 (Fix assertion failure on unmatched foreach
in function, 2015-05-18) broke handling of unmatched non-loop blocks
because it assumed all function blockers removed during error unwinding
were for loops, essentially switching the set of mishandled cases.

The purpose of the loop block push/pop operations is to define a scope
matching the lifetime of the loop function blockers.  Since our function
blockers already have the proper lifetime, simply move the push/pop
operations to their constructor/destructor.

Extend the RunCMake.Syntax test with a case covering this.
2015-06-22 11:41:51 -04:00
..
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2015-04-13 09:09:42 -04:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:35 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2012-09-28 17:00:52 -04:00
2014-10-15 23:16:44 +02:00
2014-10-15 23:16:44 +02:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2012-02-02 23:40:21 +00:00
2014-03-11 15:03:50 +01:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:35 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-04-28 21:43:40 -04:00
2014-03-08 13:05:39 -05:00
2014-06-05 12:44:18 -04:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00
2014-03-08 13:05:39 -05:00