浏览代码

+ emit a DW_AT_address_class dwarf attribute on i8086 for procdefs, indicating
their call model (near or far)

git-svn-id: trunk@39120 -

nickysn 7 年之前
父节点
当前提交
ad96cf758b
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      compiler/dbgdwarf.pas

+ 7 - 0
compiler/dbgdwarf.pas

@@ -2307,6 +2307,13 @@ implementation
         cc:=dwarf_calling_convention(def);
         cc:=dwarf_calling_convention(def);
         if (cc<>DW_CC_normal) then
         if (cc<>DW_CC_normal) then
           append_attribute(DW_AT_calling_convention,DW_FORM_data1,[ord(cc)]);
           append_attribute(DW_AT_calling_convention,DW_FORM_data1,[ord(cc)]);
+{$ifdef i8086}
+        { Call model (near or far). Open Watcom compatible. }
+        if tcpuprocdef(def).is_far then
+          append_attribute(DW_AT_address_class,DW_FORM_data1,[DW_ADDR_far16])
+        else
+          append_attribute(DW_AT_address_class,DW_FORM_data1,[DW_ADDR_none]);
+{$endif i8086}
         { Externally visible.  }
         { Externally visible.  }
         if (po_global in def.procoptions) and
         if (po_global in def.procoptions) and
            (def.parast.symtablelevel<=normal_function_level) then
            (def.parast.symtablelevel<=normal_function_level) then