mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 10:39:40 +01:00 
			
		
		
		
	* Use TDebugInfoDwarf2.appenddef_object's DoAppend also for writing the
debuginfo for standard classes in the Dwarf-3 format. (No changes for -gw2 debuginfo. -gw3 debuginfo is changed) git-svn-id: trunk@16748 -
This commit is contained in:
		
							parent
							
								
									f9f316ac45
								
							
						
					
					
						commit
						1e92e576dd
					
				@ -388,6 +388,7 @@ interface
 | 
			
		||||
      private
 | 
			
		||||
      protected
 | 
			
		||||
        procedure appenddef_set_intern(list:TAsmList;def:tsetdef; force_tag_set: boolean);
 | 
			
		||||
        procedure append_object_struct(def: tobjectdef; const createlabel: boolean; const objectname: PShortString);
 | 
			
		||||
 | 
			
		||||
        procedure appenddef_file(list:TAsmList;def:tfiledef); override;
 | 
			
		||||
        procedure appenddef_formal(list:TAsmList;def:tformaldef); override;
 | 
			
		||||
@ -3413,8 +3414,7 @@ implementation
 | 
			
		||||
        finish_entry;
 | 
			
		||||
      end;
 | 
			
		||||
 | 
			
		||||
    procedure TDebugInfoDwarf2.appenddef_object(list:TAsmList;def: tobjectdef);
 | 
			
		||||
      procedure doappend(const createlabel: boolean; const objectname: PShortString);
 | 
			
		||||
    procedure TDebugInfoDwarf2.append_object_struct(def: tobjectdef; const createlabel: boolean; const objectname: PShortString);
 | 
			
		||||
      begin
 | 
			
		||||
        if createlabel then
 | 
			
		||||
          begin
 | 
			
		||||
@ -3486,11 +3486,13 @@ implementation
 | 
			
		||||
      end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    procedure TDebugInfoDwarf2.appenddef_object(list:TAsmList;def: tobjectdef);
 | 
			
		||||
 | 
			
		||||
      begin
 | 
			
		||||
        case def.objecttype of
 | 
			
		||||
          odt_cppclass,
 | 
			
		||||
          odt_object:
 | 
			
		||||
            doappend(false,def.objname);
 | 
			
		||||
            append_object_struct(def,false,def.objname);
 | 
			
		||||
          odt_interfacecom,
 | 
			
		||||
          odt_interfacecorba,
 | 
			
		||||
          odt_dispinterface,
 | 
			
		||||
@ -3501,14 +3503,14 @@ implementation
 | 
			
		||||
              append_labelentry_ref(DW_AT_type,def_dwarf_class_struct_lab(def));
 | 
			
		||||
              finish_entry;
 | 
			
		||||
 | 
			
		||||
              doappend(true,def.objname);
 | 
			
		||||
              append_object_struct(def,true,def.objname);
 | 
			
		||||
            end;
 | 
			
		||||
          odt_objcclass:
 | 
			
		||||
            { Objective-C class: same as regular class, except for
 | 
			
		||||
                a) Apple-specific tag that identifies it as an Objective-C class
 | 
			
		||||
                b) use extname^ instead of objname
 | 
			
		||||
            }
 | 
			
		||||
            doappend(true,def.objextname);
 | 
			
		||||
            append_object_struct(def,true,def.objextname);
 | 
			
		||||
          odt_objcprotocol:
 | 
			
		||||
            begin
 | 
			
		||||
              append_entry(DW_TAG_pointer_type,false,[]);
 | 
			
		||||
@ -3902,8 +3904,14 @@ implementation
 | 
			
		||||
            end;
 | 
			
		||||
          odt_class:
 | 
			
		||||
            begin
 | 
			
		||||
              dostruct(DW_TAG_class_type);
 | 
			
		||||
              doparent(false);
 | 
			
		||||
              //dostruct(DW_TAG_class_type);
 | 
			
		||||
              //doparent(false);
 | 
			
		||||
              append_entry(DW_TAG_pointer_type,false,[]);
 | 
			
		||||
              append_labelentry_ref(DW_AT_type,def_dwarf_class_struct_lab(def));
 | 
			
		||||
              finish_entry;
 | 
			
		||||
 | 
			
		||||
              append_object_struct(def,true,def.objrealname);
 | 
			
		||||
              Exit;
 | 
			
		||||
            end;
 | 
			
		||||
        else
 | 
			
		||||
          internalerror(200609171);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user