                     PR("}").
                     NL();
             }
-            ifdefClose(output,c);
+            ifdefClose(output,c, true);
             output.NL();
         }
     }

    const ifdef;
    const ifndef;
    const if_;
}

class GCPointer extends GCField { function GCPointer(tag, attr) { super(tag, attr) } }
class GCAtom extends GCField { function GCAtom(tag, attr) { super(tag, attr) } }
class GCStructure extends GCField { function GCStructure(tag, attr) { super(tag, attr) } }
class GCConservative extends GCField { function GCConservative(tag, attr) { super(tag, attr) } }

class GCPointers extends GCField
{
    function GCPointers(tag, attr) {
        splitFieldAndSize(attr, 1);
        super(tag,attr);
        declCount = getAttr(attr, 2);
        count = getAttr(attr, 3);
        hint = tag.match("_SMALL") != null ? "small" : null;


            var gcIndex = -1;
            var nativeIndex = -1;
            var cppIndex = -1;
            if (!as3file) {
                gcIndex = line.indexOf("GC_");
                cppIndex = line.indexOf("#");
            }
            if (!cppfile)
                nativeIndex = line.indexOf("[native");
            if (gcIndex == -1 && cppIndex == -1 && nativeIndex == -1)
                continue;

            errorContext = "On " + filename + " line " + lineno;
