浏览代码

Record filepos in TInstruction class, to avoid problems with wrong source lines
in GDB for assembler instructions followed by {$ifdef XXX} lines.

git-svn-id: trunk@22472 -

pierre 13 年之前
父节点
当前提交
934980ec62
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      compiler/rautils.pas

+ 3 - 0
compiler/rautils.pas

@@ -124,6 +124,7 @@ type
     condition : tasmcond;
     ops       : byte;
     labeled   : boolean;
+    filepos  : tfileposinfo;
     constructor create(optype : tcoperand);virtual;
     destructor  destroy;override;
     { converts the instruction to an instruction how it's used by the assembler writer
@@ -1007,6 +1008,7 @@ constructor TInstruction.create(optype : tcoperand);
     Condition:=C_NONE;
     Ops:=0;
     }
+    filepos:=current_filepos;
     for i:=1 to max_operands do
       Operands[i]:=optype.create;
     Labeled:=false;
@@ -1069,6 +1071,7 @@ end;
         operands[i].CheckOperand;
 
       ai:=taicpu.op_none(opcode);
+      ai.fileinfo:=filepos;
       ai.Ops:=Ops;
       ai.Allocate_oper(Ops);
       for i:=1 to Ops do