X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fcodegen%2Fssa%2Fstatements%2FLetApply.java;h=b4c2955385954515a8a516d7d4dd855c9a2d20db;hp=2733868cf06d312ac82f0a687840b4ca4a2420ff;hb=91682baa9a8252390f09b80fd724f47e5957b234;hpb=3826e289058a51d09310b7ba1251e959dc0ed3d0 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/statements/LetApply.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/statements/LetApply.java index 2733868cf..b4c295538 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/statements/LetApply.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/statements/LetApply.java @@ -55,7 +55,7 @@ public class LetApply extends LetStatement implements ValRefBinder { } public void push(MethodBuilder mb) { - //mb.getCodeBuilder().mapLineNumber(lineNumber); + int oldLineNumber = mb.lineNumber(lineNumber); Val f = getFunction().getBinding(); Val[] ps = ValRef.getBindings(getParameters()); if(f instanceof Constant) { @@ -70,11 +70,13 @@ public class LetApply extends LetStatement implements ValRefBinder { mb.genericApply(ps.length); mb.unbox(target.getType()); } + mb.lineNumber(oldLineNumber); } @Override public void generateCode(MethodBuilder mb) { if(!target.generateOnFly) { + mb.lineNumber(lineNumber); push(mb); mb.store(target); } @@ -101,6 +103,7 @@ public class LetApply extends LetStatement implements ValRefBinder { public void bodyToString(PrintingContext context) { if(context.getErrorMarker() == this) context.append("!> "); + context.append("L" + lineNumber + ": "); if(hasEffect()) { context.append("<"); context.append(effect); @@ -417,8 +420,7 @@ public class LetApply extends LetStatement implements ValRefBinder { // Merge blocks thisFunction.mergeBlocks(function); - headBlock.setExit(new Jump(function.getFirstBlock().createOccurrence(), - parameters)); + headBlock.setExit(new Jump(lineNumber, function.getFirstBlock().createOccurrence(), parameters)); function.getReturnCont().replaceWith(tailBlock); this.function.remove();