Browse Source

* on non x86 systems currency is a orddef type

git-svn-id: trunk@2637 -
florian 19 years ago
parent
commit
3a1cac6f0d
1 changed files with 20 additions and 10 deletions
  1. 20 10
      compiler/dbgdwarf.pas

+ 20 - 10
compiler/dbgdwarf.pas

@@ -508,7 +508,7 @@ implementation
 
 
               DW_FORM_flag:
               DW_FORM_flag:
                 asmlist[al_dwarf_info].concat(tai_const.create_8bit(byte(data[i].VBoolean)));
                 asmlist[al_dwarf_info].concat(tai_const.create_8bit(byte(data[i].VBoolean)));
-                
+
               DW_FORM_data1:
               DW_FORM_data1:
                  case data[i].VType of
                  case data[i].VType of
                   vtInteger:
                   vtInteger:
@@ -519,8 +519,8 @@ implementation
                     asmlist[al_dwarf_info].concat(tai_const.create_8bit(data[i].VQWord^));
                     asmlist[al_dwarf_info].concat(tai_const.create_8bit(data[i].VQWord^));
                   else
                   else
                     internalerror(200602143);
                     internalerror(200602143);
-                end;              
-                
+                end;
+
               DW_FORM_data2:
               DW_FORM_data2:
                  case data[i].VType of
                  case data[i].VType of
                   vtInteger:
                   vtInteger:
@@ -531,8 +531,8 @@ implementation
                     asmlist[al_dwarf_info].concat(tai_const.create_16bit(data[i].VQWord^));
                     asmlist[al_dwarf_info].concat(tai_const.create_16bit(data[i].VQWord^));
                   else
                   else
                     internalerror(200602144);
                     internalerror(200602144);
-                end;              
-                
+                end;
+
               DW_FORM_data4:
               DW_FORM_data4:
                  case data[i].VType of
                  case data[i].VType of
                   vtInteger:
                   vtInteger:
@@ -543,8 +543,8 @@ implementation
                     asmlist[al_dwarf_info].concat(tai_const.create_32bit(data[i].VQWord^));
                     asmlist[al_dwarf_info].concat(tai_const.create_32bit(data[i].VQWord^));
                   else
                   else
                     internalerror(200602145);
                     internalerror(200602145);
-                end;              
-                
+                end;
+
               DW_FORM_data8:
               DW_FORM_data8:
                  case data[i].VType of
                  case data[i].VType of
                   vtInteger:
                   vtInteger:
@@ -555,7 +555,7 @@ implementation
                     asmlist[al_dwarf_info].concat(tai_const.create_64bit(data[i].VQWord^));
                     asmlist[al_dwarf_info].concat(tai_const.create_64bit(data[i].VQWord^));
                   else
                   else
                     internalerror(200602146);
                     internalerror(200602146);
-                end;              
+                end;
 
 
               DW_FORM_sdata:
               DW_FORM_sdata:
                 case data[i].VType of
                 case data[i].VType of
@@ -592,7 +592,7 @@ implementation
                     asmlist[al_dwarf_info].concat(tai_const.create_8bit(data[i].VQWord^));
                     asmlist[al_dwarf_info].concat(tai_const.create_8bit(data[i].VQWord^));
                   else
                   else
                     internalerror(200602141);
                     internalerror(200602141);
-                end;              
+                end;
               else
               else
                 internalerror(200601263);
                 internalerror(200601263);
             end;
             end;
@@ -773,6 +773,16 @@ implementation
                   ]);
                   ]);
                 finish_entry;
                 finish_entry;
               end;
               end;
+            scurrency :
+              begin
+                { we should use DW_ATE_signed_fixed, however it isn't supported yet by GDB (FK) }
+                append_entry(DW_TAG_base_type,false,[
+                  DW_AT_name,DW_FORM_string,'Currency'#0,
+                  DW_AT_encoding,DW_FORM_data1,DW_ATE_signed,
+                  DW_AT_byte_size,DW_FORM_data1,8
+                  ]);
+                finish_entry;
+              end;
             s64bit :
             s64bit :
               begin
               begin
                 append_entry(DW_TAG_base_type,false,[
                 append_entry(DW_TAG_base_type,false,[
@@ -1903,7 +1913,7 @@ implementation
         { version }
         { version }
         asmlist[al_dwarf_info].concat(tai_const.create_16bit(2));
         asmlist[al_dwarf_info].concat(tai_const.create_16bit(2));
         { abbrev table }
         { abbrev table }
-        if isdwarf64 then        
+        if isdwarf64 then
           asmlist[al_dwarf_info].concat(tai_const.create_type_sym(aitconst_64bit,
           asmlist[al_dwarf_info].concat(tai_const.create_type_sym(aitconst_64bit,
             objectlibrary.newasmsymbol('.Ldebug_abbrev0',AB_EXTERNAL,AT_DATA)))
             objectlibrary.newasmsymbol('.Ldebug_abbrev0',AB_EXTERNAL,AT_DATA)))
         else
         else