From 3bb3372bf96e8b5e27ef92c3abb146ebfe2058f6 Mon Sep 17 00:00:00 2001 From: Sei Lisa Date: Sat, 13 Jun 2015 03:04:52 +0200 Subject: [PATCH] +"thus" --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 1a5de25..0ff6339 100644 --- a/index.html +++ b/index.html @@ -210,7 +210,7 @@ llOwnerSay("Program version " STRINGIFY(VERSION)
  • case labels can't appear in nested blocks. That's because they are replaced by LSL labels, and as discussed in the Multiple labels with the same name section above, label scope rules prevent their visibility in an outer block, so once converted to labels, the corresponding jump instructions would not be able to find them. This limitation means that Duff's device or similar constructs can't be implemented with this optimizer.
  • switch() needs to be followed by a block, not by a single statement. For example, whiile this works in C, it won't work in this optimizer:
        switch(1) case 1: break;
    -
    The reason is that case is treated by this parser as a statement, rather than as a label prefix, making break be outside the switch and failing at that point. This limitation is probably only of theoretical importance and will not have any practical implication, since single-statement switch clauses are of little or no practical use (known to the author). Of course it works perfectly when enclosed in braces:
    +
    The reason is that case is treated by this parser as a statement, rather than as a label prefix, making break be outside the switch and thus failing at that point. This limitation is probably only of theoretical importance and will not have any practical implication, since single-statement switch clauses are of little or no practical use (known to the author). Of course it works perfectly when enclosed in braces:
        switch(1) { case 1: break; }