[fpc-devel] TDef flags
J. Gareth Moreton
gareth at moreton-family.com
Sun Jul 4 12:59:04 CEST 2021
Okay, okay. Not too harsh, please.
I feel I don't yet know enough about defs and generics to properly fix
this bug, only that the defs used aren't getting written out as debug
information because of the df_generic flag being present.
In the attached .s file, you can search for the reference to .La17 on
line 600 that refers to a generic def, related to the line
"R.GetArr<single>;" in the source file.
(tw38827.lpr)
program tw38827;
{$mode delphi}
uses tw38827_u;
var R: TRec;
begin
R.GetArr<single>;
end.
(tw38827_u.pas)
unit tw38827_u;
{$mode delphi}
interface
type
TRec = record
C: TArray<single>;
function GetArr<T>: TArray<T>; inline;
end;
implementation
function TRec.GetArr<T>: TArray<T>;
begin
result := nil;
case GetTypeKind(T) of
tkFloat:
if SizeOf(T) = SizeOf(Single) then result := C;
end;
end;
end.
Gareth aka. Kit
On 04/07/2021 11:41, Sven Barth wrote:
> Am 03.07.2021 um 15:01 schrieb J. Gareth Moreton via fpc-devel:
>> Hi everyone,
>>
>> I'm trying to fix i38827, and am trying a few things. One thing I've
>> noticed is that some specializations have both the df_generic and
>> df_specialization flags set, and the def missing from the debug
>> information that raises the linker error is one such def. Manually
>> removing the df_generic fixes the problem (since the presence of the
>> flag stops it from being written to the debug information), but is
>> there a situation where a def can legitimately have both flags set?
>>
>> To guess, I would say if a generic has multiple parameters and not
>> all of them are specialized, then that makes a def that's both, but
>> then a fully specialized generic type shouldn't have the generic flag
>> any more, right?
>
> First of you *do not* modify defs when writing debug information.
> Period. (except for fields that are *only* related to debug information)
>
> Second df_generic is set for any def *inside* a generic. The TArray<T>
> is a specialization inside a generic thus it will have both flags set.
>
> Regards,
> Sven
>
--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
-------------- next part --------------
.file "tw38827.lpr"
# Begin asmlist al_begin
.section .debug_line
.Ldebug_linesection0:
.Ldebug_line0:
.section .debug_abbrev
.Ldebug_abbrevsection0:
.Ldebug_abbrev0:
.section .text.b_DEBUGSTART_$P$TW38827,"ax"
.globl DEBUGSTART_$P$TW38827
DEBUGSTART_$P$TW38827:
# End asmlist al_begin
# Begin asmlist al_procedures
.section .text.n_p$tw38827_$$_getarr$1$crc84de8c0d$crcb6af655f$$tarray$1$crc84de8c0d,"ax"
.balign 16,0x90
.globl P$TW38827_$$_GETARR$1$CRC84DE8C0D$CRCB6AF655F$$TARRAY$1$CRC84DE8C0D
P$TW38827_$$_GETARR$1$CRC84DE8C0D$CRCB6AF655F$$TARRAY$1$CRC84DE8C0D:
.Lc2:
.seh_proc P$TW38827_$$_GETARR$1$CRC84DE8C0D$CRCB6AF655F$$TARRAY$1$CRC84DE8C0D
# path: C:\Users\garet\Documents\programming\error_test\
# file: tw38827_u.pas
# indx: 2
.Ll1:
pushq %rbp
.seh_pushreg %rbp
.Lc3:
movq %rsp,%rbp
.Lc4:
leaq -64(%rsp),%rsp
.seh_stackalloc 64
.seh_endprologue
movq %rcx,-8(%rbp)
movq %rdx,-16(%rbp)
.Ll2:
movq $0,-24(%rbp)
# Peephole Optimization: LeaMov2Lea done
leaq -24(%rbp),%r9
leaq RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D(%rip),%rdx
movq -16(%rbp),%rcx
# Peephole Optimization: movq $1,%r8 -> movl $1,%r8d (immediate can be represented with just 32 bits)
movl $1,%r8d
call fpc_dynarray_setlength
.Ll3:
leaq RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D(%rip),%r8
movq -8(%rbp),%rax
movq (%rax),%rdx
movq -16(%rbp),%rcx
call fpc_dynarray_assign
.Ll4:
nop
leaq (%rbp),%rsp
popq %rbp
ret
.seh_endproc
.Lc1:
.Lt2:
.Ll5:
.section .text.n_p$tw38827_$$_fin$00000004,"ax"
.balign 16,0x90
.globl P$TW38827_$$_fin$00000004
P$TW38827_$$_fin$00000004:
.Lc6:
.seh_proc P$TW38827_$$_fin$00000004
.Ll6:
pushq %rbp
.seh_pushreg %rbp
.Lc7:
movq %rcx,%rbp
.Lc8:
leaq -32(%rsp),%rsp
.seh_stackalloc 32
.seh_endprologue
.Ll7:
leaq RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D(%rip),%rdx
leaq -8(%rbp),%rcx
call fpc_dynarray_clear
.Ll8:
nop
leaq 32(%rsp),%rsp
popq %rbp
.Lc9:
ret
.seh_endproc
.Lc5:
.Lt5:
.Ll9:
.section .text.n_main,"ax"
.balign 16,0x90
.globl main
main:
.globl PASCALMAIN
PASCALMAIN:
.Lc11:
.seh_proc main
.Ll10:
pushq %rbp
.seh_pushreg %rbp
.Lc12:
movq %rsp,%rbp
.Lc13:
leaq -48(%rsp),%rsp
.seh_stackalloc 48
.seh_endprologue
call fpc_initializeunits
.Ll11:
movq $0,-8(%rbp)
.Lj15:
nop
.Lj11:
.Ll12:
movq $0,-16(%rbp)
# Peephole Optimization: LeaMov2Lea done
leaq -16(%rbp),%r9
leaq RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D(%rip),%rdx
leaq -8(%rbp),%rcx
# Peephole Optimization: movq $1,%r8 -> movl $1,%r8d (immediate can be represented with just 32 bits)
movl $1,%r8d
call fpc_dynarray_setlength
leaq RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D(%rip),%r8
movq U_$P$TW38827_$$_R(%rip),%rdx
leaq -8(%rbp),%rcx
call fpc_dynarray_assign
.Lj13:
.Ll13:
nop
.Lj12:
movq %rbp,%rcx
call P$TW38827_$$_fin$00000004
.Ll14:
call fpc_do_exit
nop
ret
.seh_handler __FPC_specific_handler, at unwind
.seh_handlerdata
.long 1
.long 0
.rva .Lj11
.rva .Lj12
.rva P$TW38827_$$_fin$00000004
.section .text.n_main,"ax"
.seh_endproc
.Lc10:
.Lt1:
.Ll15:
.section .text.n_p$tw38827_$$_init_implicit$,"ax"
.balign 16,0x90
.globl P$TW38827_$$_init_implicit$
P$TW38827_$$_init_implicit$:
.globl INIT$_$P$TW38827
INIT$_$P$TW38827:
.Lc15:
.seh_proc P$TW38827_$$_init_implicit$
pushq %rbp
.seh_pushreg %rbp
.Lc16:
movq %rsp,%rbp
.Lc17:
leaq -32(%rsp),%rsp
.seh_stackalloc 32
.seh_endprologue
# Peephole Optimization: LeaMov2Lea done
leaq U_$P$TW38827_$$_R(%rip),%rcx
leaq INIT_$TW38827_U_$$_TREC(%rip),%rdx
call fpc_initialize
nop
leaq (%rbp),%rsp
popq %rbp
ret
.seh_endproc
.Lc14:
.Lt3:
.Ll16:
.section .text.n_p$tw38827_$$_finalize_implicit$,"ax"
.balign 16,0x90
.globl P$TW38827_$$_finalize_implicit$
P$TW38827_$$_finalize_implicit$:
.globl FINALIZE$_$P$TW38827
FINALIZE$_$P$TW38827:
.globl PASCALFINALIZE
PASCALFINALIZE:
.Lc19:
.seh_proc P$TW38827_$$_finalize_implicit$
pushq %rbp
.seh_pushreg %rbp
.Lc20:
movq %rsp,%rbp
.Lc21:
leaq -32(%rsp),%rsp
.seh_stackalloc 32
.seh_endprologue
# Peephole Optimization: LeaMov2Lea done
leaq U_$P$TW38827_$$_R(%rip),%rcx
leaq INIT_$TW38827_U_$$_TREC(%rip),%rdx
call fpc_finalize
nop
leaq (%rbp),%rsp
popq %rbp
ret
.seh_endproc
.Lc18:
.Lt4:
.Ll17:
.section .fpc.n_links,"aw"
.quad DEBUGSTART_$P$TW38827
.quad DEBUGEND_$P$TW38827
.quad DEBUGSTART_$TW38827_U
.quad DEBUGEND_$TW38827_U
# End asmlist al_procedures
# Begin asmlist al_globals
.section .bss,"aw"
.balign 8
.globl U_$P$TW38827_$$_R
U_$P$TW38827_$$_R:
.zero 8
.section .data.n_INITFINAL,"aw"
.balign 8
.globl INITFINAL
INITFINAL:
.quad 5,0
.quad INIT$_$SYSTEM
.quad FINALIZE$_$SYSTEM
.quad 0
.quad FINALIZE$_$OBJPAS
.quad INIT$_$LNFODWRF
.quad FINALIZE$_$LNFODWRF
.quad INIT$_$FPINTRES
.quad 0
.quad INIT$_$P$TW38827
.quad FINALIZE$_$P$TW38827
.section .data.n_FPC_THREADVARTABLES,"aw"
.balign 8
.globl FPC_THREADVARTABLES
FPC_THREADVARTABLES:
.long 1
.byte 0,0,0,0
.quad THREADVARLIST_$SYSTEM$indirect
.section .rodata.n_FPC_RESOURCESTRINGTABLES,"aw"
.balign 8
.globl FPC_RESOURCESTRINGTABLES
FPC_RESOURCESTRINGTABLES:
.quad 0
.section .data.n_FPC_WIDEINITTABLES,"aw"
.balign 8
.globl FPC_WIDEINITTABLES
FPC_WIDEINITTABLES:
.quad 0
.section .data.n_FPC_RESSTRINITTABLES,"aw"
.balign 8
.globl FPC_RESSTRINITTABLES
FPC_RESSTRINITTABLES:
.quad 0
.section .fpc.n_version,"aw"
.balign 16
__fpc_ident:
.ascii "FPC 3.3.1 [2021/07/04] for x86_64 - Win64"
.section .data.n___heapsize,"aw"
.balign 8
.globl __heapsize
__heapsize:
.quad 0
.section .data.n___fpc_valgrind,"aw"
.balign 8
.globl __fpc_valgrind
__fpc_valgrind:
.byte 0
# End asmlist al_globals
# Begin asmlist al_rtti
.section .rodata.n_RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D,"aw"
.balign 8
.globl RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D
RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D:
.byte 21,20
.ascii "TArray$1$crc84DE8C0D"
.quad 0,4
.quad RTTI_$SYSTEM_$$_SINGLE$indirect
.long 4
.quad 0
.byte 7
.ascii "tw38827"
# End asmlist al_rtti
# Begin asmlist al_indirectglobals
.section .rodata.n_RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D,"aw"
.balign 8
.globl RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D$indirect
RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D$indirect:
.quad RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D
# End asmlist al_indirectglobals
# Begin asmlist al_dwarf_frame
.section .debug_frame
.Lc22:
.long .Lc24-.Lc23
.Lc23:
.long -1
.byte 1
.byte 0
.uleb128 1
.sleb128 -4
.byte 16
.byte 12
.uleb128 7
.uleb128 8
.byte 5
.uleb128 16
.uleb128 2
.balign 4,0
.Lc24:
.long .Lc26-.Lc25
.Lc25:
.secrel32 .Lc22
.quad .Lc2
.quad .Lc1-.Lc2
.byte 2
.byte .Lc3-.Lc2
.byte 14
.uleb128 16
.byte 5
.uleb128 6
.uleb128 4
.byte 2
.byte .Lc4-.Lc3
.byte 13
.uleb128 6
.balign 4,0
.Lc26:
.long .Lc29-.Lc28
.Lc28:
.secrel32 .Lc22
.quad .Lc6
.quad .Lc5-.Lc6
.byte 2
.byte .Lc7-.Lc6
.byte 14
.uleb128 16
.byte 5
.uleb128 6
.uleb128 4
.byte 2
.byte .Lc8-.Lc7
.byte 13
.uleb128 6
.byte 4
.long .Lc9-.Lc8
.byte 14
.uleb128 8
.balign 4,0
.Lc29:
.long .Lc32-.Lc31
.Lc31:
.secrel32 .Lc22
.quad .Lc11
.quad .Lc10-.Lc11
.byte 7
.uleb128 16
.byte 2
.byte .Lc12-.Lc11
.byte 14
.uleb128 16
.byte 5
.uleb128 6
.uleb128 4
.byte 2
.byte .Lc13-.Lc12
.byte 13
.uleb128 6
.balign 4,0
.Lc32:
.long .Lc35-.Lc34
.Lc34:
.secrel32 .Lc22
.quad .Lc15
.quad .Lc14-.Lc15
.byte 2
.byte .Lc16-.Lc15
.byte 14
.uleb128 16
.byte 5
.uleb128 6
.uleb128 4
.byte 2
.byte .Lc17-.Lc16
.byte 13
.uleb128 6
.balign 4,0
.Lc35:
.long .Lc38-.Lc37
.Lc37:
.secrel32 .Lc22
.quad .Lc19
.quad .Lc18-.Lc19
.byte 2
.byte .Lc20-.Lc19
.byte 14
.uleb128 16
.byte 5
.uleb128 6
.uleb128 4
.byte 2
.byte .Lc21-.Lc20
.byte 13
.uleb128 6
.balign 4,0
.Lc38:
# End asmlist al_dwarf_frame
# Begin asmlist al_dwarf_info
.section .debug_info
.Ldebug_info0:
.long .Ledebug_info0-.Lf2
.Lf2:
.short 2
.secrel32 .Ldebug_abbrev0
.byte 8
.uleb128 1
.ascii "../../error_test/tw38827.lpr\000"
.ascii "Free Pascal 3.3.1 2021/07/04\000"
.ascii "C:/Users/garet/Documents/programming/fpc/tests/\000"
.byte 9
.byte 3
.secrel32 .Ldebug_line0
.quad DEBUGSTART_$P$TW38827
.quad DEBUGEND_$P$TW38827
# Syms - Begin Staticsymtable
# Symbol SYSTEM
# Symbol LNFODWRF
# Symbol FPINTRES
# Symbol OBJPAS
# Symbol TW38827_U
# Symbol TW38827
# Symbol main
# Symbol R
.uleb128 2
.ascii "R\000"
.byte 9
.byte 3
.quad U_$P$TW38827_$$_R
.long .La1-.Ldebug_info0
# Symbol GETARR$1$CRC84DE8C0D$CRCB6AF655F
# Symbol TARRAY$1$CRC84DE8C0D
# Symbol P$TW38827_$$_init_implicit$
# Symbol P$TW38827_$$_finalize_implicit$
# Symbol fin$00000004
# Symbol SYSINIT
# Symbol rttidef$RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D
# Symbol rtti_dyn_array$
# Symbol rtti_dyn_array_inner$
# Syms - End Staticsymtable
# Procdef $main; Register;
.uleb128 3
.ascii "main\000"
.byte 1
.byte 65
.byte 1
.quad main
.quad .Lt1
.byte 0
# Procdef GetArr$1$crc84DE8C0D$crcB6AF655F(<var TRec>;<var TArray$1$crc84DE8C0D>):{Dynamic} Array Of Single;
.uleb128 4
.ascii "GETARR$1$CRC84DE8C0D$CRCB6AF655F\000"
.byte 1
.byte 65
.byte 1
.long .La3-.Ldebug_info0
.quad P$TW38827_$$_GETARR$1$CRC84DE8C0D$CRCB6AF655F$$TARRAY$1$CRC84DE8C0D
.quad .Lt2
# Symbol this
.uleb128 5
.ascii "this\000"
.byte 3
.byte 118
.sleb128 -8
.byte 6
.byte 1
.long .La1-.Ldebug_info0
# Symbol result
.uleb128 2
.ascii "result\000"
.byte 3
.byte 118
.sleb128 -16
.byte 6
.long .La3-.Ldebug_info0
# Symbol GETARR$1$CRC84DE8C0D$CRCB6AF655F
.uleb128 2
.ascii "GETARR$1$CRC84DE8C0D$CRCB6AF655F\000"
.byte 3
.byte 118
.sleb128 -16
.byte 6
.long .La3-.Ldebug_info0
# Symbol RESULT
.uleb128 2
.ascii "RESULT\000"
.byte 3
.byte 118
.sleb128 -16
.byte 6
.long .La3-.Ldebug_info0
.byte 0
# Procdef $P$TW38827_$$_init_implicit$; Register;
.uleb128 3
.ascii "P$TW38827_$$_init_implicit$\000"
.byte 1
.byte 65
.byte 1
.quad P$TW38827_$$_init_implicit$
.quad .Lt3
.byte 0
# Procdef $P$TW38827_$$_finalize_implicit$; Register;
.uleb128 3
.ascii "P$TW38827_$$_finalize_implicit$\000"
.byte 1
.byte 65
.byte 1
.quad P$TW38827_$$_finalize_implicit$
.quad .Lt4
.byte 0
# Procdef $fin$00000004(<^untyped>); Register;
.uleb128 6
.ascii "fin$00000004\000"
.byte 1
.byte 65
.quad P$TW38827_$$_fin$00000004
.quad .Lt5
# Symbol parentfp
.uleb128 7
.ascii "parentfp\000"
.byte 2
.byte 144
.uleb128 6
.long .La11-.Ldebug_info0
.byte 0
# Defs - Begin unit SYSTEM has index 1
# Definition ^untyped
.La11:
.uleb128 8
.ascii "parentfp_void_pointer\000"
.long .La13-.Ldebug_info0
.La13:
.uleb128 9
.La12:
.uleb128 10
.long .La11-.Ldebug_info0
# Defs - End unit SYSTEM has index 1
# Defs - Begin unit STRINGS has index 4
# Defs - End unit STRINGS has index 4
# Defs - Begin unit OBJPAS has index 6
# Defs - End unit OBJPAS has index 6
# Defs - Begin unit WINDOWS has index 5
# Defs - End unit WINDOWS has index 5
# Defs - Begin unit EXEINFO has index 3
# Defs - End unit EXEINFO has index 3
# Defs - Begin unit LNFODWRF has index 2
# Defs - End unit LNFODWRF has index 2
# Defs - Begin unit FPINTRES has index 7
# Defs - End unit FPINTRES has index 7
# Defs - Begin unit TW38827_U has index 8
# Definition TRec
.La1:
.uleb128 8
.ascii "TREC\000"
.long .La14-.Ldebug_info0
.La14:
.uleb128 11
.ascii "TREC\000"
.uleb128 8
.uleb128 12
.ascii "C\000"
.byte 2
.byte 35
.uleb128 0
.long .La15-.Ldebug_info0
# Procdef GetArr$1(<var TRec>):{Dynamic} Array Of T;
.uleb128 13
.ascii "GETARR$1\000"
.byte 1
.byte 65
.byte 1
.long .La17-.Ldebug_info0
# Symbol this
.uleb128 14
.ascii "this\000"
.byte 1
.long .La1-.Ldebug_info0
.byte 0
.byte 0
.La2:
.uleb128 10
.long .La1-.Ldebug_info0
# Definition TArray$1$crc84DE8C0D
.La15:
.uleb128 8
.ascii "TARRAY$1$CRC84DE8C0D\000"
.long .La19-.Ldebug_info0
.La19:
.uleb128 15
.long .La20-.Ldebug_info0
.La20:
.uleb128 16
.ascii "TARRAY$1$CRC84DE8C0D\000"
.uleb128 4
.long .La21-.Ldebug_info0
.uleb128 17
.sleb128 0
.long .La23-.Ldebug_info0
.byte 0
.La16:
.uleb128 10
.long .La15-.Ldebug_info0
# Defs - End unit TW38827_U has index 8
# Defs - Begin unit SYSINIT has index 9
# Defs - End unit SYSINIT has index 9
# Defs - Begin Staticsymtable
# Definition TArray$1$crc84DE8C0D
.La3:
.uleb128 8
.ascii "TARRAY$1$CRC84DE8C0D\000"
.long .La25-.Ldebug_info0
.La25:
.uleb128 15
.long .La26-.Ldebug_info0
.La26:
.uleb128 16
.ascii "TARRAY$1$CRC84DE8C0D\000"
.uleb128 4
.long .La21-.Ldebug_info0
.uleb128 17
.sleb128 0
.long .La23-.Ldebug_info0
.byte 0
.La4:
.uleb128 10
.long .La3-.Ldebug_info0
# Definition <record type>
.La5:
.uleb128 8
.ascii "rttidef$RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D\000"
.long .La27-.Ldebug_info0
.La27:
.uleb128 11
.ascii "$RTTIDEF$RTTI_$P$TW38827_$$_TARRAY$1$CRC84DE8C0D\000"
.uleb128 66
.byte 0
.La6:
.uleb128 10
.long .La5-.Ldebug_info0
# Definition <record type>
.La7:
.uleb128 8
.ascii "rtti_dyn_array$\000"
.long .La28-.Ldebug_info0
.La28:
.uleb128 11
.ascii "$RTTI_DYN_ARRAY$\000"
.uleb128 44
.byte 0
.La8:
.uleb128 10
.long .La7-.Ldebug_info0
# Definition <record type>
.La9:
.uleb128 8
.ascii "rtti_dyn_array_inner$\000"
.long .La29-.Ldebug_info0
.La29:
.uleb128 11
.ascii "$RTTI_DYN_ARRAY_INNER$\000"
.uleb128 36
.byte 0
.La10:
.uleb128 10
.long .La9-.Ldebug_info0
# Defs - End Staticsymtable
# Definition Single
.La21:
.uleb128 8
.ascii "SINGLE\000"
.long .La30-.Ldebug_info0
.La30:
.uleb128 18
.ascii "SINGLE\000"
.byte 4
.byte 4
.La22:
.uleb128 10
.long .La21-.Ldebug_info0
# Definition LongInt
.La23:
.uleb128 8
.ascii "LONGINT\000"
.long .La31-.Ldebug_info0
.La31:
.uleb128 18
.ascii "LONGINT\000"
.byte 5
.byte 4
.La24:
.uleb128 10
.long .La23-.Ldebug_info0
.byte 0
.Ledebug_info0:
# End asmlist al_dwarf_info
# Begin asmlist al_dwarf_abbrev
.section .debug_abbrev
# Abbrev 1
.uleb128 1
.uleb128 17
.byte 1
.uleb128 3
.uleb128 8
.uleb128 37
.uleb128 8
.uleb128 27
.uleb128 8
.uleb128 19
.uleb128 11
.uleb128 66
.uleb128 11
.uleb128 16
.uleb128 6
.uleb128 17
.uleb128 1
.uleb128 18
.uleb128 1
.byte 0
.byte 0
# Abbrev 2
.uleb128 2
.uleb128 52
.byte 0
.uleb128 3
.uleb128 8
.uleb128 2
.uleb128 10
.uleb128 73
.uleb128 19
.byte 0
.byte 0
# Abbrev 3
.uleb128 3
.uleb128 46
.byte 1
.uleb128 3
.uleb128 8
.uleb128 39
.uleb128 12
.uleb128 54
.uleb128 11
.uleb128 63
.uleb128 12
.uleb128 17
.uleb128 1
.uleb128 18
.uleb128 1
.byte 0
.byte 0
# Abbrev 4
.uleb128 4
.uleb128 46
.byte 1
.uleb128 3
.uleb128 8
.uleb128 39
.uleb128 12
.uleb128 54
.uleb128 11
.uleb128 63
.uleb128 12
.uleb128 73
.uleb128 19
.uleb128 17
.uleb128 1
.uleb128 18
.uleb128 1
.byte 0
.byte 0
# Abbrev 5
.uleb128 5
.uleb128 5
.byte 0
.uleb128 3
.uleb128 8
.uleb128 2
.uleb128 10
.uleb128 52
.uleb128 12
.uleb128 73
.uleb128 19
.byte 0
.byte 0
# Abbrev 6
.uleb128 6
.uleb128 46
.byte 1
.uleb128 3
.uleb128 8
.uleb128 39
.uleb128 12
.uleb128 54
.uleb128 11
.uleb128 17
.uleb128 1
.uleb128 18
.uleb128 1
.byte 0
.byte 0
# Abbrev 7
.uleb128 7
.uleb128 5
.byte 0
.uleb128 3
.uleb128 8
.uleb128 2
.uleb128 10
.uleb128 73
.uleb128 19
.byte 0
.byte 0
# Abbrev 8
.uleb128 8
.uleb128 22
.byte 0
.uleb128 3
.uleb128 8
.uleb128 73
.uleb128 19
.byte 0
.byte 0
# Abbrev 9
.uleb128 9
.uleb128 15
.byte 0
.byte 0
.byte 0
# Abbrev 10
.uleb128 10
.uleb128 16
.byte 0
.uleb128 73
.uleb128 19
.byte 0
.byte 0
# Abbrev 11
.uleb128 11
.uleb128 19
.byte 1
.uleb128 3
.uleb128 8
.uleb128 11
.uleb128 15
.byte 0
.byte 0
# Abbrev 12
.uleb128 12
.uleb128 13
.byte 0
.uleb128 3
.uleb128 8
.uleb128 56
.uleb128 10
.uleb128 73
.uleb128 19
.byte 0
.byte 0
# Abbrev 13
.uleb128 13
.uleb128 46
.byte 1
.uleb128 3
.uleb128 8
.uleb128 39
.uleb128 12
.uleb128 54
.uleb128 11
.uleb128 63
.uleb128 12
.uleb128 73
.uleb128 19
.byte 0
.byte 0
# Abbrev 14
.uleb128 14
.uleb128 5
.byte 0
.uleb128 3
.uleb128 8
.uleb128 52
.uleb128 12
.uleb128 73
.uleb128 19
.byte 0
.byte 0
# Abbrev 15
.uleb128 15
.uleb128 15
.byte 0
.uleb128 73
.uleb128 19
.byte 0
.byte 0
# Abbrev 16
.uleb128 16
.uleb128 1
.byte 1
.uleb128 3
.uleb128 8
.uleb128 81
.uleb128 15
.uleb128 73
.uleb128 19
.byte 0
.byte 0
# Abbrev 17
.uleb128 17
.uleb128 33
.byte 0
.uleb128 34
.uleb128 13
.uleb128 73
.uleb128 19
.byte 0
.byte 0
# Abbrev 18
.uleb128 18
.uleb128 36
.byte 0
.uleb128 3
.uleb128 8
.uleb128 62
.uleb128 11
.uleb128 11
.uleb128 11
.byte 0
.byte 0
.byte 0
# End asmlist al_dwarf_abbrev
# Begin asmlist al_dwarf_line
.section .debug_line
# === header start ===
.long .Ledebug_line0-.Lf3
.Lf3:
.short 2
.long .Lehdebug_line0-.Lf4
.Lf4:
.byte 1
.byte 1
.byte 1
.byte 255
.byte 13
.byte 0
.byte 1
.byte 1
.byte 1
.byte 1
.byte 0
.byte 0
.byte 0
.byte 1
.byte 0
.byte 0
.byte 1
# include_directories
.ascii "../../error_test\000"
.byte 0
# file_names
.ascii "tw38827.lpr\000"
.uleb128 1
.uleb128 0
.uleb128 0
.ascii "tw38827_u.pas\000"
.uleb128 1
.uleb128 0
.uleb128 0
.byte 0
.Lehdebug_line0:
# === header end ===
# function: P$TW38827_$$_GETARR$1$CRC84DE8C0D$CRCB6AF655F$$TARRAY$1$CRC84DE8C0D
# path: C:\Users\garet\Documents\programming\error_test\
# file: tw38827_u.pas
.byte 4
.uleb128 2
# [12:1]
.byte 0
.uleb128 9
.byte 2
.quad .Ll1
.byte 5
.uleb128 1
.byte 23
# [13:3]
.byte 2
.uleb128 .Ll2-.Ll1
.byte 5
.uleb128 3
.byte 13
# [16:7]
.byte 2
.uleb128 .Ll3-.Ll2
.byte 5
.uleb128 7
.byte 15
# [18:1]
.byte 2
.uleb128 .Ll4-.Ll3
.byte 5
.uleb128 1
.byte 14
.byte 0
.uleb128 9
.byte 2
.quad .Ll5
.byte 0
.byte 1
.byte 1
# ###################
# function: P$TW38827_$$_fin$00000004
# [9:1]
.byte 0
.uleb128 9
.byte 2
.quad .Ll6
.byte 5
.uleb128 1
.byte 20
# [9:1]
.byte 2
.uleb128 .Ll7-.Ll6
.byte 1
# [7:1]
.byte 2
.uleb128 .Ll8-.Ll7
.byte 3
.sleb128 -2
.byte 1
.byte 0
.uleb128 9
.byte 2
.quad .Ll9
.byte 0
.byte 1
.byte 1
# ###################
# function: main
# function: PASCALMAIN
# [7:1]
.byte 0
.uleb128 9
.byte 2
.quad .Ll10
.byte 5
.uleb128 1
.byte 18
# [7:1]
.byte 2
.uleb128 .Ll11-.Ll10
.byte 1
# [8:3]
.byte 2
.uleb128 .Ll12-.Ll11
.byte 5
.uleb128 3
.byte 13
# [7:1]
.byte 2
.uleb128 .Ll13-.Ll12
.byte 5
.uleb128 1
.byte 3
.sleb128 -1
.byte 1
# [9:1]
.byte 2
.uleb128 .Ll14-.Ll13
.byte 14
.byte 0
.uleb128 9
.byte 2
.quad .Ll15
.byte 0
.byte 1
.byte 1
# ###################
# function: P$TW38827_$$_init_implicit$
# function: INIT$_$P$TW38827
.byte 0
.uleb128 9
.byte 2
.quad .Ll16
.byte 0
.byte 1
.byte 1
# ###################
# function: P$TW38827_$$_finalize_implicit$
# function: FINALIZE$_$P$TW38827
# function: PASCALFINALIZE
.byte 0
.uleb128 9
.byte 2
.quad .Ll17
.byte 0
.byte 1
.byte 1
# ###################
.Ledebug_line0:
# End asmlist al_dwarf_line
# Begin asmlist al_dwarf_aranges
.section .debug_aranges
.long .Learanges0-.Lf1
.Lf1:
.short 2
.secrel32 .Ldebug_info0
.byte 8
.byte 0
.long 0
.quad main
.quad .Lt1-main
.quad P$TW38827_$$_GETARR$1$CRC84DE8C0D$CRCB6AF655F$$TARRAY$1$CRC84DE8C0D
.quad .Lt2-P$TW38827_$$_GETARR$1$CRC84DE8C0D$CRCB6AF655F$$TARRAY$1$CRC84DE8C0D
.quad P$TW38827_$$_init_implicit$
.quad .Lt3-P$TW38827_$$_init_implicit$
.quad P$TW38827_$$_finalize_implicit$
.quad .Lt4-P$TW38827_$$_finalize_implicit$
.quad P$TW38827_$$_fin$00000004
.quad .Lt5-P$TW38827_$$_fin$00000004
.quad 0
.quad 0
.Learanges0:
# End asmlist al_dwarf_aranges
# Begin asmlist al_dwarf_ranges
.section .debug_ranges
# End asmlist al_dwarf_ranges
# Begin asmlist al_end
.section .text.z_DEBUGEND_$P$TW38827,"ax"
.globl DEBUGEND_$P$TW38827
DEBUGEND_$P$TW38827:
# End asmlist al_end
More information about the fpc-devel
mailing list