LSL-PyOptimizer/lslopt
Sei Lisa e60457f00e Fix rare bug with breakcont and label scope.
This caused "Label not defined within scope" when breakcont was active:
  default{timer(){jump x;while(0)@x;}}
The problem was that breakcont opens a new scope for the case where it has to deal with a loop which is the single statement of an outer statement, e.g.
  default{timer(){if(1)while(1)break;}}
would add braces to jump to the correct break point:
  default{timer(){if(1){while(1)jump brk;@brk;}}
To avoid excessive complication, a new scope was always opened for the whole statement in each of the loops, regardless of whether we needed braces later on or not. That should be transparent most of the time, but then if the statement was a label declaration, the label would be in a new scope that would be invisible outside the loop.

Fix that by checking explicitly for a label to temporarily get rid of the new scope in that case, and add a test case for it.
2016-07-09 23:41:27 +02:00
..
__init__.py Initial commit. Status so far: 2014-07-26 02:43:44 +02:00
lslbasefuncs.py Update copyright years of some files; add legalese to seftable.txt 2016-06-27 20:06:41 +02:00
lslcommon.py Reorganize main to use getopt. Implement -o for output file and -O help. 2015-03-14 23:17:15 +01:00
lsldeadcode.py Fix problem due to not copying a node. It still needs more analysis, but this patch is an improvement in that it fixes known problematic cases and doesn't seem to introduce new ones. 2015-06-14 05:11:32 +02:00
lslextrafuncs.py Add copyright notices to all files, to prepare the program for release. 2015-03-05 23:18:41 +01:00
lslfoldconst.py Update copyright years of some files; add legalese to seftable.txt 2016-06-27 20:06:41 +02:00
lslfuncparams.py Implement library function parameter optimization. 2015-04-21 04:56:09 +02:00
lslfuncs.py Add copyright notices to all files, to prepare the program for release. 2015-03-05 23:18:41 +01:00
lsljson.py Add copyright notices to all files, to prepare the program for release. 2015-03-05 23:18:41 +01:00
lsloptimizer.py Update copyright years of some files; add legalese to seftable.txt 2016-06-27 20:06:41 +02:00
lsloutput.py Update copyright years of some files; add legalese to seftable.txt 2016-06-27 20:06:41 +02:00
lslparse.py Fix rare bug with breakcont and label scope. 2016-07-09 23:41:27 +02:00
lslrenamer.py Document the internal behaviour of run_time_permissions under LSO 2015-12-11 02:28:51 +01:00