[patch] Workaround ada (gnat-4.3.0) on x86_64

Joel Brobecker brobecker@adacore.com
Fri Apr 25 03:24:00 GMT 2008


> > Could you send me the executable so that I can inspect it?
> 
> http://people.redhat.com/jkratoch/packed_tagged/comp_bug
> http://people.redhat.com/jkratoch/packed_tagged/
> (binaries from Fedora 9pre x86_64, gcc-gnat-4.3.0-7.x86_64)

The binary "comp_bug" that you posted there corresponds to the "complicated
testcase". I had a look, and at first glance, I think that what's missing
is the parallel XVE type that is used when we have variant records (records
whose contents depends on the value of a discriminant).  For variant records,
we ignore the size provided by the debugging info, and compute it from the
information contained in the XVE type. The documentation in
gcc/ada/exp_dbug.ads describe the algorithm in more details.

Just to help doing the comparison, attached is the assembly file
generated by our version of the compiler (this is on ia32).

For the simpler example that you provided in this thread (adaff), where
you have a simple null record, I'd be interested in looking at the
debugging info.  This is a straight record with no field inside it.
The debugging info should be trivial and the debugger should be able
to print your variable without any problem.

-- 
Joel
-------------- next part --------------
	.file	"comp_bug.adb"
	.section	.debug_abbrev,"",@progbits
.Ldebug_abbrev0:
	.section	.debug_info,"",@progbits
.Ldebug_info0:
	.section	.debug_line,"",@progbits
.Ldebug_line0:
	.text
.Ltext0:
	.file 1 "/takamaka.a/gnatmail/gcc-41/gnat-6.2.0w-2008-04-20/lib/gcc/i686-pc-linux-gnu/4.1.3/adainclude/system.ads"
	.section	.rodata
.LC0:
	.string	"comp_bug.adb"
	.zero	1
	.text
	.align 2
.globl _ada_comp_bug
	.type	_ada_comp_bug, @function
_ada_comp_bug:
.LFB3:
	# comp_bug.adb:1
	.file 2 "comp_bug.adb"
	.loc 2 1 0
	# basic block 0
	pushl	%ebp
.LCFI0:
	movl	%esp, %ebp
.LCFI1:
	subl	$40, %esp
.LCFI2:
.LBB2:
	# comp_bug.adb:14
	.loc 2 14 0
	movl	$0, 4(%esp)
	leal	-2(%ebp), %eax
	movl	%eax, (%esp)
	movl	%ebp, %ecx
	call	comp_bug__number_tIP.1398
	# comp_bug.adb:21
	.loc 2 21 0
	movzbl	-2(%ebp), %eax
	orb	$1, %al
	movb	%al, -2(%ebp)
	movb	$10, -1(%ebp)
	# comp_bug.adb:22
	.loc 2 22 0
	movzbl	-2(%ebp), %eax
	andb	$1, %al
	testb	%al, %al
	je	.L11
	# basic block 1
	# comp_bug.adb:23
	.loc 2 23 0
	movzbl	-2(%ebp), %eax
	andb	$1, %al
	movzbl	%al, %eax
	movl	%eax, (%esp)
	movl	%ebp, %ecx
	call	comp_bug__number_tD2.1390
	testb	%al, %al
	je	.L4
	# basic block 2
	movl	$23, 4(%esp)
	movl	$.LC0, (%esp)
	call	__gnat_rcheck_02
.L4:
	# basic block 3
	movzbl	-2(%ebp), %eax
	andb	$1, %al
	movzbl	%al, %eax
	movl	%eax, (%esp)
	movl	%ebp, %ecx
	call	comp_bug__number_tD2.1390
	testb	%al, %al
	je	.L6
	# basic block 4
	movl	$23, 4(%esp)
	movl	$.LC0, (%esp)
	call	__gnat_rcheck_02
.L6:
	# basic block 5
	movzbl	-1(%ebp), %eax
	movzbl	%al, %eax
	incl	%eax
	movl	%eax, -20(%ebp)
	cmpl	$0, -20(%ebp)
	js	.L8
	# basic block 6
	cmpl	$255, -20(%ebp)
	jle	.L10
.L8:
	# basic block 7
	movl	$23, 4(%esp)
	movl	$.LC0, (%esp)
	call	__gnat_rcheck_12
.L10:
	# basic block 8
	movzbl	-20(%ebp), %eax
	movb	%al, -1(%ebp)
.L11:
	# basic block 9
.LBE2:
	# comp_bug.adb:25
	.loc 2 25 0
	leave
	ret
.LFE3:
	.size	_ada_comp_bug, .-_ada_comp_bug
.globl __gnat_eh_personality
	.align 2
	.type	comp_bug__number_tIP.1398, @function
comp_bug__number_tIP.1398:
.LFB6:
	# basic block 0
	pushl	%ebp
.LCFI3:
	movl	%esp, %ebp
.LCFI4:
	subl	$8, %esp
.LCFI5:
	movl	12(%ebp), %eax
	movb	%al, -4(%ebp)
	movl	%ecx, -8(%ebp)
	movzbl	-4(%ebp), %eax
	andb	$1, %al
	movl	8(%ebp), %edx
	movb	%al, %cl
	andb	$1, %cl
	movzbl	(%edx), %eax
	andb	$-2, %al
	orb	%cl, %al
	movb	%al, (%edx)
	leave
	ret
.LFE6:
	.size	comp_bug__number_tIP.1398, .-comp_bug__number_tIP.1398
	.align 2
	.type	comp_bug__number_tD2.1390, @function
comp_bug__number_tD2.1390:
.LFB4:
	# basic block 0
	pushl	%ebp
.LCFI6:
	movl	%esp, %ebp
.LCFI7:
	subl	$12, %esp
.LCFI8:
	movl	8(%ebp), %eax
	movb	%al, -4(%ebp)
	movl	%ecx, -8(%ebp)
	cmpb	$0, -4(%ebp)
	je	.L15
	# basic block 1
	movb	$0, -9(%ebp)
	jmp	.L17
.L15:
	# basic block 2
	movb	$1, -9(%ebp)
.L17:
	# basic block 3
	movzbl	-9(%ebp), %eax
	leave
	ret
.LFE4:
	.size	comp_bug__number_tD2.1390, .-comp_bug__number_tD2.1390
#APP
	.section	.debug_frame,"",@progbits
.Lframe0:
	.long	.LECIE0-.LSCIE0	# Length of Common Information Entry
.LSCIE0:
	.long	0xffffffff	# CIE Identifier Tag
	.byte	0x1	# CIE Version
	.ascii "\0"	# CIE Augmentation
	.uleb128 0x1	# CIE Code Alignment Factor
	.sleb128 -4	# CIE Data Alignment Factor
	.byte	0x8	# CIE RA Column
	.byte	0xc	# DW_CFA_def_cfa
	.uleb128 0x4
	.uleb128 0x4
	.byte	0x88	# DW_CFA_offset, column 0x8
	.uleb128 0x1
	.align 4
.LECIE0:
.LSFDE0:
	.long	.LEFDE0-.LASFDE0	# FDE Length
.LASFDE0:
	.long	.Lframe0	# FDE CIE offset
	.long	.LFB3	# FDE initial location
	.long	.LFE3-.LFB3	# FDE address range
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI0-.LFB3
	.byte	0xe	# DW_CFA_def_cfa_offset
	.uleb128 0x8
	.byte	0x85	# DW_CFA_offset, column 0x5
	.uleb128 0x2
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI1-.LCFI0
	.byte	0xd	# DW_CFA_def_cfa_register
	.uleb128 0x5
	.align 4
.LEFDE0:
.LSFDE2:
	.long	.LEFDE2-.LASFDE2	# FDE Length
.LASFDE2:
	.long	.Lframe0	# FDE CIE offset
	.long	.LFB6	# FDE initial location
	.long	.LFE6-.LFB6	# FDE address range
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI3-.LFB6
	.byte	0xe	# DW_CFA_def_cfa_offset
	.uleb128 0x8
	.byte	0x85	# DW_CFA_offset, column 0x5
	.uleb128 0x2
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI4-.LCFI3
	.byte	0xd	# DW_CFA_def_cfa_register
	.uleb128 0x5
	.align 4
.LEFDE2:
.LSFDE4:
	.long	.LEFDE4-.LASFDE4	# FDE Length
.LASFDE4:
	.long	.Lframe0	# FDE CIE offset
	.long	.LFB4	# FDE initial location
	.long	.LFE4-.LFB4	# FDE address range
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI6-.LFB4
	.byte	0xe	# DW_CFA_def_cfa_offset
	.uleb128 0x8
	.byte	0x85	# DW_CFA_offset, column 0x5
	.uleb128 0x2
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI7-.LCFI6
	.byte	0xd	# DW_CFA_def_cfa_register
	.uleb128 0x5
	.align 4
.LEFDE4:
#NO_APP
#APP
	.section	.eh_frame,"a",@progbits
.Lframe1:
	.long	.LECIE1-.LSCIE1	# Length of Common Information Entry
.LSCIE1:
	.long	0x0	# CIE Identifier Tag
	.byte	0x1	# CIE Version
	.ascii "zP\0"	# CIE Augmentation
	.uleb128 0x1	# CIE Code Alignment Factor
	.sleb128 -4	# CIE Data Alignment Factor
	.byte	0x8	# CIE RA Column
	.uleb128 0x5	# Augmentation size
	.byte	0x0	# Personality (absolute)
	.long	__gnat_eh_personality
	.byte	0xc	# DW_CFA_def_cfa
	.uleb128 0x4
	.uleb128 0x4
	.byte	0x88	# DW_CFA_offset, column 0x8
	.uleb128 0x1
	.align 4
.LECIE1:
.LSFDE1:
	.long	.LEFDE1-.LASFDE1	# FDE Length
.LASFDE1:
	.long	.LASFDE1-.Lframe1	# FDE CIE offset
	.long	.LFB3	# FDE initial location
	.long	.LFE3-.LFB3	# FDE address range
	.uleb128 0x0	# Augmentation size
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI0-.LFB3
	.byte	0xe	# DW_CFA_def_cfa_offset
	.uleb128 0x8
	.byte	0x85	# DW_CFA_offset, column 0x5
	.uleb128 0x2
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI1-.LCFI0
	.byte	0xd	# DW_CFA_def_cfa_register
	.uleb128 0x5
	.align 4
.LEFDE1:
.LSFDE3:
	.long	.LEFDE3-.LASFDE3	# FDE Length
.LASFDE3:
	.long	.LASFDE3-.Lframe1	# FDE CIE offset
	.long	.LFB6	# FDE initial location
	.long	.LFE6-.LFB6	# FDE address range
	.uleb128 0x0	# Augmentation size
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI3-.LFB6
	.byte	0xe	# DW_CFA_def_cfa_offset
	.uleb128 0x8
	.byte	0x85	# DW_CFA_offset, column 0x5
	.uleb128 0x2
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI4-.LCFI3
	.byte	0xd	# DW_CFA_def_cfa_register
	.uleb128 0x5
	.align 4
.LEFDE3:
.LSFDE5:
	.long	.LEFDE5-.LASFDE5	# FDE Length
.LASFDE5:
	.long	.LASFDE5-.Lframe1	# FDE CIE offset
	.long	.LFB4	# FDE initial location
	.long	.LFE4-.LFB4	# FDE address range
	.uleb128 0x0	# Augmentation size
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI6-.LFB4
	.byte	0xe	# DW_CFA_def_cfa_offset
	.uleb128 0x8
	.byte	0x85	# DW_CFA_offset, column 0x5
	.uleb128 0x2
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI7-.LCFI6
	.byte	0xd	# DW_CFA_def_cfa_register
	.uleb128 0x5
	.align 4
.LEFDE5:
#NO_APP
	.text
.Letext0:
	.section	.debug_loc,"",@progbits
.Ldebug_loc0:
.LLST0:
	.long	.LFB3-.Ltext0	# Location list begin address (*.LLST0)
	.long	.LCFI0-.Ltext0	# Location list end address (*.LLST0)
	.value	0x2	# Location expression size
	.byte	0x74	# DW_OP_breg4
	.sleb128 4
	.long	.LCFI0-.Ltext0	# Location list begin address (*.LLST0)
	.long	.LCFI1-.Ltext0	# Location list end address (*.LLST0)
	.value	0x2	# Location expression size
	.byte	0x74	# DW_OP_breg4
	.sleb128 8
	.long	.LCFI1-.Ltext0	# Location list begin address (*.LLST0)
	.long	.LFE3-.Ltext0	# Location list end address (*.LLST0)
	.value	0x2	# Location expression size
	.byte	0x75	# DW_OP_breg5
	.sleb128 8
	.long	0x0	# Location list terminator begin (*.LLST0)
	.long	0x0	# Location list terminator end (*.LLST0)
	.section	.debug_info
	.long	0x471	# Length of Compilation Unit Info
	.value	0x2	# DWARF version number
	.long	.Ldebug_abbrev0	# Offset Into Abbrev. Section
	.byte	0x4	# Pointer Size (in bytes)
	.uleb128 0x1	# (DIE (0xb) DW_TAG_compile_unit)
	.long	.Ldebug_line0	# DW_AT_stmt_list
	.long	.Letext0	# DW_AT_high_pc
	.long	.Ltext0	# DW_AT_low_pc
	.ascii "GNU Ada 4.1.3 20080421 for GNAT Pro 6.2.0w (20080420) -gdwarf+-\0"	# DW_AT_producer
	.byte	0xd	# DW_AT_language
	.ascii "comp_bug.adb\0"	# DW_AT_name
	.ascii "/t.a/brobecke\0"	# DW_AT_comp_dir
	.uleb128 0x2	# (DIE (0x74) DW_TAG_typedef)
	.ascii "boolean\0"	# DW_AT_name
	.long	0x81	# DW_AT_type
	.uleb128 0x3	# (DIE (0x81) DW_TAG_enumeration_type)
	.long	0xa0	# DW_AT_sibling
	.ascii "boolean\0"	# DW_AT_name
	.byte	0x1	# DW_AT_artificial
	.byte	0x1	# DW_AT_byte_size
	.uleb128 0x4	# (DIE (0x90) DW_TAG_enumerator)
	.ascii "false\0"	# DW_AT_name
	.sleb128 0	# DW_AT_const_value
	.uleb128 0x4	# (DIE (0x98) DW_TAG_enumerator)
	.ascii "true\0"	# DW_AT_name
	.sleb128 1	# DW_AT_const_value
	.byte	0x0	# end of children of DIE 0x81
	.uleb128 0x5	# (DIE (0xa0) DW_TAG_typedef)
	.long	.LASF0	# DW_AT_name: "character"
	.long	0xa9	# DW_AT_type
	.uleb128 0x6	# (DIE (0xa9) DW_TAG_base_type)
	.long	.LASF0	# DW_AT_name: "character"
	.byte	0x1	# DW_AT_byte_size
	.byte	0x8	# DW_AT_encoding
	.uleb128 0x5	# (DIE (0xb0) DW_TAG_typedef)
	.long	.LASF1	# DW_AT_name: "natural___XDLU_0__2147483647"
	.long	0xc0	# DW_AT_type
	.uleb128 0x6	# (DIE (0xb9) DW_TAG_base_type)
	.long	.LASF2	# DW_AT_name: "integer"
	.byte	0x4	# DW_AT_byte_size
	.byte	0x5	# DW_AT_encoding
	.uleb128 0x7	# (DIE (0xc0) DW_TAG_subrange_type)
	.long	.LASF1	# DW_AT_name: "natural___XDLU_0__2147483647"
	.byte	0x1	# DW_AT_artificial
	.byte	0x0	# DW_AT_lower_bound
	.long	0x7fffffff	# DW_AT_upper_bound
	.long	0xb9	# DW_AT_type
	.uleb128 0x2	# (DIE (0xcf) DW_TAG_typedef)
	.ascii "access_character\0"	# DW_AT_name
	.long	0xe5	# DW_AT_type
	.uleb128 0x8	# (DIE (0xe5) DW_TAG_pointer_type)
	.byte	0x4	# DW_AT_byte_size
	.long	0xa9	# DW_AT_type
	.uleb128 0x5	# (DIE (0xeb) DW_TAG_typedef)
	.long	.LASF3	# DW_AT_name: "unsigned"
	.long	0xf4	# DW_AT_type
	.uleb128 0x6	# (DIE (0xf4) DW_TAG_base_type)
	.long	.LASF3	# DW_AT_name: "unsigned"
	.byte	0x4	# DW_AT_byte_size
	.byte	0x7	# DW_AT_encoding
	.uleb128 0x9	# (DIE (0xfb) DW_TAG_structure_type)
	.long	0x1a2	# DW_AT_sibling
	.long	.LASF8	# DW_AT_name: "exception"
	.byte	0x1	# DW_AT_artificial
	.byte	0x18	# DW_AT_byte_size
	.byte	0x1	# DW_AT_decl_file
	.byte	0x1	# DW_AT_decl_line
	.uleb128 0xa	# (DIE (0x108) DW_TAG_member)
	.ascii "not_handled_by_others\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file
	.byte	0x1	# DW_AT_decl_line
	.long	0x81	# DW_AT_type
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x0
	.uleb128 0xa	# (DIE (0x128) DW_TAG_member)
	.ascii "lang\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file
	.byte	0x1	# DW_AT_decl_line
	.long	0xa9	# DW_AT_type
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x1
	.uleb128 0xa	# (DIE (0x137) DW_TAG_member)
	.ascii "name_length\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file
	.byte	0x1	# DW_AT_decl_line
	.long	0xc0	# DW_AT_type
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x4
	.uleb128 0xa	# (DIE (0x14d) DW_TAG_member)
	.ascii "full_name\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file
	.byte	0x1	# DW_AT_decl_line
	.long	0xe5	# DW_AT_type
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x8
	.uleb128 0xa	# (DIE (0x161) DW_TAG_member)
	.ascii "htable_ptr\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file
	.byte	0x1	# DW_AT_decl_line
	.long	0xe5	# DW_AT_type
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0xc
	.uleb128 0xa	# (DIE (0x176) DW_TAG_member)
	.ascii "import_code\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file
	.byte	0x1	# DW_AT_decl_line
	.long	0xf4	# DW_AT_type
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x10
	.uleb128 0xa	# (DIE (0x18c) DW_TAG_member)
	.ascii "raise_hook\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file
	.byte	0x1	# DW_AT_decl_line
	.long	0xe5	# DW_AT_type
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x14
	.byte	0x0	# end of children of DIE 0xfb
	.uleb128 0xb	# (DIE (0x1a2) DW_TAG_typedef)
	.long	.LASF4	# DW_AT_name: "unsigned int"
	.byte	0x1	# DW_AT_decl_file
	.byte	0x1	# DW_AT_decl_line
	.long	0x1ad	# DW_AT_type
	.uleb128 0x6	# (DIE (0x1ad) DW_TAG_base_type)
	.long	.LASF4	# DW_AT_name: "unsigned int"
	.byte	0x4	# DW_AT_byte_size
	.byte	0x7	# DW_AT_encoding
	.uleb128 0xc	# (DIE (0x1b4) DW_TAG_typedef)
	.ascii "void\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file
	.byte	0x1	# DW_AT_decl_line
	.uleb128 0xd	# (DIE (0x1bc) DW_TAG_typedef)
	.ascii "void\0"	# DW_AT_name
	.uleb128 0x5	# (DIE (0x1c2) DW_TAG_typedef)
	.long	.LASF5	# DW_AT_name: "JMPBUF_T"
	.long	0x1cb	# DW_AT_type
	.uleb128 0xe	# (DIE (0x1cb) DW_TAG_array_type)
	.long	0x1e1	# DW_AT_sibling
	.long	.LASF5	# DW_AT_name: "JMPBUF_T"
	.byte	0x1	# DW_AT_artificial
	.long	0x1ed	# DW_AT_type
	.uleb128 0xf	# (DIE (0x1d9) DW_TAG_subrange_type)
	.long	0x1e1	# DW_AT_type
	.byte	0x0	# DW_AT_lower_bound
	.byte	0x5	# DW_AT_upper_bound
	.byte	0x0	# end of children of DIE 0x1cb
	.uleb128 0x10	# (DIE (0x1e1) DW_TAG_base_type)
	.ascii "long int\0"	# DW_AT_name
	.byte	0x4	# DW_AT_byte_size
	.byte	0x5	# DW_AT_encoding
	.uleb128 0x10	# (DIE (0x1ed) DW_TAG_base_type)
	.ascii "SIGNED_32\0"	# DW_AT_name
	.byte	0x4	# DW_AT_byte_size
	.byte	0x5	# DW_AT_encoding
	.uleb128 0x11	# (DIE (0x1fa) DW_TAG_subprogram)
	.long	0x252	# DW_AT_sibling
	.byte	0x1	# DW_AT_external
	.ascii "comp_bug\0"	# DW_AT_name
	.byte	0x2	# DW_AT_decl_file
	.byte	0x1	# DW_AT_decl_line
	.ascii "_ada_comp_bug\0"	# DW_AT_MIPS_linkage_name
	.long	.LFB3	# DW_AT_low_pc
	.long	.LFE3	# DW_AT_high_pc
	.long	.LLST0	# DW_AT_frame_base
	.uleb128 0x5	# (DIE (0x225) DW_TAG_typedef)
	.long	.LASF6	# DW_AT_name: "comp_bug__number_t__T1b___XDLU_0__255"
	.long	0x22e	# DW_AT_type
	.uleb128 0x12	# (DIE (0x22e) DW_TAG_subrange_type)
	.long	.LASF6	# DW_AT_name: "comp_bug__number_t__T1b___XDLU_0__255"
	.byte	0x1	# DW_AT_artificial
	.byte	0x0	# DW_AT_lower_bound
	.byte	0xff	# DW_AT_upper_bound
	.long	0x252	# DW_AT_type
	.uleb128 0xb	# (DIE (0x23a) DW_TAG_typedef)
	.long	.LASF7	# DW_AT_name: "comp_bug__number_t"
	.byte	0x2	# DW_AT_decl_file
	.byte	0x3	# DW_AT_decl_line
	.long	0x259	# DW_AT_type
	.uleb128 0x13	# (DIE (0x245) DW_TAG_variable)
	.ascii "x\0"	# DW_AT_name
	.byte	0x2	# DW_AT_decl_file
	.byte	0xe	# DW_AT_decl_line
	.long	0x40a	# DW_AT_type
	.byte	0x2	# DW_AT_location
	.byte	0x91	# DW_OP_fbreg
	.sleb128 -10
	.byte	0x0	# end of children of DIE 0x1fa
	.uleb128 0x6	# (DIE (0x252) DW_TAG_base_type)
	.long	.LASF2	# DW_AT_name: "integer"
	.byte	0x4	# DW_AT_byte_size
	.byte	0x5	# DW_AT_encoding
	.uleb128 0x14	# (DIE (0x259) DW_TAG_structure_type)
	.long	0x298	# DW_AT_sibling
	.long	.LASF7	# DW_AT_name: "comp_bug__number_t"
	.long	0x298	# DW_AT_GNAT_descriptive_type
	.long	0xffffffff	# DW_AT_byte_size
	.byte	0x2	# DW_AT_decl_file
	.byte	0x6	# DW_AT_decl_line
	.uleb128 0x15	# (DIE (0x26c) DW_TAG_member)
	.ascii "exists\0"	# DW_AT_name
	.byte	0x2	# DW_AT_decl_file
	.byte	0x3	# DW_AT_decl_line
	.long	0x2cd	# DW_AT_type
	.byte	0x1	# DW_AT_byte_size
	.byte	0x1	# DW_AT_bit_size
	.byte	0x7	# DW_AT_bit_offset
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x0
	.uleb128 0xa	# (DIE (0x280) DW_TAG_member)
	.ascii "exists___XVN\0"	# DW_AT_name
	.byte	0x2	# DW_AT_decl_file
	.byte	0x6	# DW_AT_decl_line
	.long	0x2f3	# DW_AT_type
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x4
	.byte	0x0	# end of children of DIE 0x259
	.uleb128 0x16	# (DIE (0x298) DW_TAG_structure_type)
	.long	0x2f3	# DW_AT_sibling
	.ascii "comp_bug__number_t___XVE\0"	# DW_AT_name
	.byte	0x1	# DW_AT_byte_size
	.byte	0x2	# DW_AT_decl_file
	.byte	0x6	# DW_AT_decl_line
	.uleb128 0x15	# (DIE (0x2b9) DW_TAG_member)
	.ascii "exists\0"	# DW_AT_name
	.byte	0x2	# DW_AT_decl_file
	.byte	0x6	# DW_AT_decl_line
	.long	0x2cd	# DW_AT_type
	.byte	0x1	# DW_AT_byte_size
	.byte	0x1	# DW_AT_bit_size
	.byte	0x7	# DW_AT_bit_offset
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x0
	.uleb128 0x17	# (DIE (0x2cd) DW_TAG_subrange_type)
	.byte	0x0	# DW_AT_lower_bound
	.byte	0x1	# DW_AT_upper_bound
	.long	0x81	# DW_AT_type
	.uleb128 0xa	# (DIE (0x2d4) DW_TAG_member)
	.ascii "exists___XVN___XVL1\0"	# DW_AT_name
	.byte	0x2	# DW_AT_decl_file
	.byte	0x6	# DW_AT_decl_line
	.long	0x404	# DW_AT_type
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x0
	.byte	0x0	# end of children of DIE 0x298
	.uleb128 0x18	# (DIE (0x2f3) DW_TAG_union_type)
	.long	0x344	# DW_AT_sibling
	.ascii "comp_bug__number_t___exists___XVN\0"	# DW_AT_name
	.long	0x344	# DW_AT_GNAT_descriptive_type
	.long	0xffffffff	# DW_AT_byte_size
	.byte	0x2	# DW_AT_decl_file
	.byte	0x6	# DW_AT_decl_line
	.uleb128 0x15	# (DIE (0x324) DW_TAG_member)
	.ascii "S1\0"	# DW_AT_name
	.byte	0x2	# DW_AT_decl_file
	.byte	0x6	# DW_AT_decl_line
	.long	0x388	# DW_AT_type
	.byte	0x1	# DW_AT_byte_size
	.byte	0x8	# DW_AT_bit_size
	.byte	0x0	# DW_AT_bit_offset
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x0
	.uleb128 0x15	# (DIE (0x334) DW_TAG_member)
	.ascii "O\0"	# DW_AT_name
	.byte	0x2	# DW_AT_decl_file
	.byte	0x6	# DW_AT_decl_line
	.long	0x3da	# DW_AT_type
	.byte	0x0	# DW_AT_byte_size
	.byte	0x0	# DW_AT_bit_size
	.byte	0x0	# DW_AT_bit_offset
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x0
	.byte	0x0	# end of children of DIE 0x2f3
	.uleb128 0x19	# (DIE (0x344) DW_TAG_union_type)
	.long	0x388	# DW_AT_sibling
	.ascii "comp_bug__number_t___exists___XVN___XVU\0"	# DW_AT_name
	.byte	0x1	# DW_AT_byte_size
	.byte	0x2	# DW_AT_decl_file
	.byte	0x6	# DW_AT_decl_line
	.uleb128 0x1a	# (DIE (0x374) DW_TAG_member)
	.ascii "S1\0"	# DW_AT_name
	.byte	0x2	# DW_AT_decl_file
	.byte	0x6	# DW_AT_decl_line
	.long	0x388	# DW_AT_type
	.uleb128 0x1a	# (DIE (0x37e) DW_TAG_member)
	.ascii "O\0"	# DW_AT_name
	.byte	0x2	# DW_AT_decl_file
	.byte	0x6	# DW_AT_decl_line
	.long	0x3da	# DW_AT_type
	.byte	0x0	# end of children of DIE 0x344
	.uleb128 0x16	# (DIE (0x388) DW_TAG_structure_type)
	.long	0x3d3	# DW_AT_sibling
	.ascii "comp_bug__number_t___exists___XVN___S1\0"	# DW_AT_name
	.byte	0x1	# DW_AT_byte_size
	.byte	0x2	# DW_AT_decl_file
	.byte	0x7	# DW_AT_decl_line
	.uleb128 0x15	# (DIE (0x3b7) DW_TAG_member)
	.ascii "value\0"	# DW_AT_name
	.byte	0x2	# DW_AT_decl_file
	.byte	0x7	# DW_AT_decl_line
	.long	0x3ca	# DW_AT_type
	.byte	0x1	# DW_AT_byte_size
	.byte	0x8	# DW_AT_bit_size
	.byte	0x0	# DW_AT_bit_offset
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x0
	.uleb128 0x1b	# (DIE (0x3ca) DW_TAG_subrange_type)
	.byte	0x1	# DW_AT_byte_size
	.byte	0x0	# DW_AT_lower_bound
	.byte	0xff	# DW_AT_upper_bound
	.long	0x3d3	# DW_AT_type
	.byte	0x0	# end of children of DIE 0x388
	.uleb128 0x6	# (DIE (0x3d3) DW_TAG_base_type)
	.long	.LASF2	# DW_AT_name: "integer"
	.byte	0x4	# DW_AT_byte_size
	.byte	0x5	# DW_AT_encoding
	.uleb128 0x1c	# (DIE (0x3da) DW_TAG_structure_type)
	.ascii "comp_bug__number_t___exists___XVN___O\0"	# DW_AT_name
	.byte	0x0	# DW_AT_byte_size
	.byte	0x2	# DW_AT_decl_file
	.byte	0x6	# DW_AT_decl_line
	.uleb128 0x8	# (DIE (0x404) DW_TAG_pointer_type)
	.byte	0x4	# DW_AT_byte_size
	.long	0x2f3	# DW_AT_type
	.uleb128 0x1d	# (DIE (0x40a) DW_TAG_structure_type)
	.long	0x435	# DW_AT_sibling
	.ascii "comp_bug__x___PAD\0"	# DW_AT_name
	.long	0x435	# DW_AT_GNAT_descriptive_type
	.byte	0x2	# DW_AT_byte_size
	.byte	0x2	# DW_AT_decl_file
	.byte	0xe	# DW_AT_decl_line
	.uleb128 0xa	# (DIE (0x428) DW_TAG_member)
	.ascii "F\0"	# DW_AT_name
	.byte	0x2	# DW_AT_decl_file
	.byte	0xe	# DW_AT_decl_line
	.long	0x259	# DW_AT_type
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x3
	.byte	0x0	# end of children of DIE 0x40a
	.uleb128 0x16	# (DIE (0x435) DW_TAG_structure_type)
	.long	0x464	# DW_AT_sibling
	.ascii "comp_bug__x___PAD___XVS\0"	# DW_AT_name
	.byte	0x4	# DW_AT_byte_size
	.byte	0x2	# DW_AT_decl_file
	.byte	0xe	# DW_AT_decl_line
	.uleb128 0x1e	# (DIE (0x455) DW_TAG_member)
	.long	.LASF7	# DW_AT_name: "comp_bug__number_t"
	.byte	0x2	# DW_AT_decl_file
	.byte	0xe	# DW_AT_decl_line
	.long	0x464	# DW_AT_type
	.byte	0x2	# DW_AT_data_member_location
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x0
	.byte	0x0	# end of children of DIE 0x435
	.uleb128 0x6	# (DIE (0x464) DW_TAG_base_type)
	.long	.LASF2	# DW_AT_name: "integer"
	.byte	0x4	# DW_AT_byte_size
	.byte	0x5	# DW_AT_encoding
	.uleb128 0x5	# (DIE (0x46b) DW_TAG_typedef)
	.long	.LASF8	# DW_AT_name: "exception"
	.long	0xfb	# DW_AT_type
	.byte	0x0	# end of children of DIE 0xb
	.section	.debug_abbrev
	.uleb128 0x1	# (abbrev code)
	.uleb128 0x11	# (TAG: DW_TAG_compile_unit)
	.byte	0x1	# DW_children_yes
	.uleb128 0x10	# (DW_AT_stmt_list)
	.uleb128 0x6	# (DW_FORM_data4)
	.uleb128 0x12	# (DW_AT_high_pc)
	.uleb128 0x1	# (DW_FORM_addr)
	.uleb128 0x11	# (DW_AT_low_pc)
	.uleb128 0x1	# (DW_FORM_addr)
	.uleb128 0x25	# (DW_AT_producer)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x13	# (DW_AT_language)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x1b	# (DW_AT_comp_dir)
	.uleb128 0x8	# (DW_FORM_string)
	.byte	0x0
	.byte	0x0
	.uleb128 0x2	# (abbrev code)
	.uleb128 0x16	# (TAG: DW_TAG_typedef)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0x0
	.byte	0x0
	.uleb128 0x3	# (abbrev code)
	.uleb128 0x4	# (TAG: DW_TAG_enumeration_type)
	.byte	0x1	# DW_children_yes
	.uleb128 0x1	# (DW_AT_sibling)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x34	# (DW_AT_artificial)
	.uleb128 0xc	# (DW_FORM_flag)
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.byte	0x0
	.byte	0x0
	.uleb128 0x4	# (abbrev code)
	.uleb128 0x28	# (TAG: DW_TAG_enumerator)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x1c	# (DW_AT_const_value)
	.uleb128 0xd	# (DW_FORM_sdata)
	.byte	0x0
	.byte	0x0
	.uleb128 0x5	# (abbrev code)
	.uleb128 0x16	# (TAG: DW_TAG_typedef)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0xe	# (DW_FORM_strp)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0x0
	.byte	0x0
	.uleb128 0x6	# (abbrev code)
	.uleb128 0x24	# (TAG: DW_TAG_base_type)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0xe	# (DW_FORM_strp)
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3e	# (DW_AT_encoding)
	.uleb128 0xb	# (DW_FORM_data1)
	.byte	0x0
	.byte	0x0
	.uleb128 0x7	# (abbrev code)
	.uleb128 0x21	# (TAG: DW_TAG_subrange_type)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0xe	# (DW_FORM_strp)
	.uleb128 0x34	# (DW_AT_artificial)
	.uleb128 0xc	# (DW_FORM_flag)
	.uleb128 0x22	# (DW_AT_lower_bound)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x2f	# (DW_AT_upper_bound)
	.uleb128 0x6	# (DW_FORM_data4)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0x0
	.byte	0x0
	.uleb128 0x8	# (abbrev code)
	.uleb128 0xf	# (TAG: DW_TAG_pointer_type)
	.byte	0x0	# DW_children_no
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0x0
	.byte	0x0
	.uleb128 0x9	# (abbrev code)
	.uleb128 0x13	# (TAG: DW_TAG_structure_type)
	.byte	0x1	# DW_children_yes
	.uleb128 0x1	# (DW_AT_sibling)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0xe	# (DW_FORM_strp)
	.uleb128 0x34	# (DW_AT_artificial)
	.uleb128 0xc	# (DW_FORM_flag)
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.byte	0x0
	.byte	0x0
	.uleb128 0xa	# (abbrev code)
	.uleb128 0xd	# (TAG: DW_TAG_member)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x38	# (DW_AT_data_member_location)
	.uleb128 0xa	# (DW_FORM_block1)
	.byte	0x0
	.byte	0x0
	.uleb128 0xb	# (abbrev code)
	.uleb128 0x16	# (TAG: DW_TAG_typedef)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0xe	# (DW_FORM_strp)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0x0
	.byte	0x0
	.uleb128 0xc	# (abbrev code)
	.uleb128 0x16	# (TAG: DW_TAG_typedef)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.byte	0x0
	.byte	0x0
	.uleb128 0xd	# (abbrev code)
	.uleb128 0x16	# (TAG: DW_TAG_typedef)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.byte	0x0
	.byte	0x0
	.uleb128 0xe	# (abbrev code)
	.uleb128 0x1	# (TAG: DW_TAG_array_type)
	.byte	0x1	# DW_children_yes
	.uleb128 0x1	# (DW_AT_sibling)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0xe	# (DW_FORM_strp)
	.uleb128 0x34	# (DW_AT_artificial)
	.uleb128 0xc	# (DW_FORM_flag)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0x0
	.byte	0x0
	.uleb128 0xf	# (abbrev code)
	.uleb128 0x21	# (TAG: DW_TAG_subrange_type)
	.byte	0x0	# DW_children_no
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x22	# (DW_AT_lower_bound)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x2f	# (DW_AT_upper_bound)
	.uleb128 0xb	# (DW_FORM_data1)
	.byte	0x0
	.byte	0x0
	.uleb128 0x10	# (abbrev code)
	.uleb128 0x24	# (TAG: DW_TAG_base_type)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3e	# (DW_AT_encoding)
	.uleb128 0xb	# (DW_FORM_data1)
	.byte	0x0
	.byte	0x0
	.uleb128 0x11	# (abbrev code)
	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
	.byte	0x1	# DW_children_yes
	.uleb128 0x1	# (DW_AT_sibling)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x3f	# (DW_AT_external)
	.uleb128 0xc	# (DW_FORM_flag)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x2007	# (DW_AT_MIPS_linkage_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x11	# (DW_AT_low_pc)
	.uleb128 0x1	# (DW_FORM_addr)
	.uleb128 0x12	# (DW_AT_high_pc)
	.uleb128 0x1	# (DW_FORM_addr)
	.uleb128 0x40	# (DW_AT_frame_base)
	.uleb128 0x6	# (DW_FORM_data4)
	.byte	0x0
	.byte	0x0
	.uleb128 0x12	# (abbrev code)
	.uleb128 0x21	# (TAG: DW_TAG_subrange_type)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0xe	# (DW_FORM_strp)
	.uleb128 0x34	# (DW_AT_artificial)
	.uleb128 0xc	# (DW_FORM_flag)
	.uleb128 0x22	# (DW_AT_lower_bound)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x2f	# (DW_AT_upper_bound)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0x0
	.byte	0x0
	.uleb128 0x13	# (abbrev code)
	.uleb128 0x34	# (TAG: DW_TAG_variable)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x2	# (DW_AT_location)
	.uleb128 0xa	# (DW_FORM_block1)
	.byte	0x0
	.byte	0x0
	.uleb128 0x14	# (abbrev code)
	.uleb128 0x13	# (TAG: DW_TAG_structure_type)
	.byte	0x1	# DW_children_yes
	.uleb128 0x1	# (DW_AT_sibling)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0xe	# (DW_FORM_strp)
	.uleb128 0x2302	# (DW_AT_GNAT_descriptive_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0x6	# (DW_FORM_data4)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.byte	0x0
	.byte	0x0
	.uleb128 0x15	# (abbrev code)
	.uleb128 0xd	# (TAG: DW_TAG_member)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0xd	# (DW_AT_bit_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0xc	# (DW_AT_bit_offset)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x38	# (DW_AT_data_member_location)
	.uleb128 0xa	# (DW_FORM_block1)
	.byte	0x0
	.byte	0x0
	.uleb128 0x16	# (abbrev code)
	.uleb128 0x13	# (TAG: DW_TAG_structure_type)
	.byte	0x1	# DW_children_yes
	.uleb128 0x1	# (DW_AT_sibling)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.byte	0x0
	.byte	0x0
	.uleb128 0x17	# (abbrev code)
	.uleb128 0x21	# (TAG: DW_TAG_subrange_type)
	.byte	0x0	# DW_children_no
	.uleb128 0x22	# (DW_AT_lower_bound)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x2f	# (DW_AT_upper_bound)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0x0
	.byte	0x0
	.uleb128 0x18	# (abbrev code)
	.uleb128 0x17	# (TAG: DW_TAG_union_type)
	.byte	0x1	# DW_children_yes
	.uleb128 0x1	# (DW_AT_sibling)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x2302	# (DW_AT_GNAT_descriptive_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0x6	# (DW_FORM_data4)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.byte	0x0
	.byte	0x0
	.uleb128 0x19	# (abbrev code)
	.uleb128 0x17	# (TAG: DW_TAG_union_type)
	.byte	0x1	# DW_children_yes
	.uleb128 0x1	# (DW_AT_sibling)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.byte	0x0
	.byte	0x0
	.uleb128 0x1a	# (abbrev code)
	.uleb128 0xd	# (TAG: DW_TAG_member)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0x0
	.byte	0x0
	.uleb128 0x1b	# (abbrev code)
	.uleb128 0x21	# (TAG: DW_TAG_subrange_type)
	.byte	0x0	# DW_children_no
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x22	# (DW_AT_lower_bound)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x2f	# (DW_AT_upper_bound)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0x0
	.byte	0x0
	.uleb128 0x1c	# (abbrev code)
	.uleb128 0x13	# (TAG: DW_TAG_structure_type)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.byte	0x0
	.byte	0x0
	.uleb128 0x1d	# (abbrev code)
	.uleb128 0x13	# (TAG: DW_TAG_structure_type)
	.byte	0x1	# DW_children_yes
	.uleb128 0x1	# (DW_AT_sibling)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.uleb128 0x2302	# (DW_AT_GNAT_descriptive_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.byte	0x0
	.byte	0x0
	.uleb128 0x1e	# (abbrev code)
	.uleb128 0xd	# (TAG: DW_TAG_member)
	.byte	0x0	# DW_children_no
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0xe	# (DW_FORM_strp)
	.uleb128 0x3a	# (DW_AT_decl_file)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3b	# (DW_AT_decl_line)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x38	# (DW_AT_data_member_location)
	.uleb128 0xa	# (DW_FORM_block1)
	.byte	0x0
	.byte	0x0
	.byte	0x0
	.section	.debug_pubnames,"",@progbits
	.long	0x1b	# Length of Public Names Info
	.value	0x2	# DWARF Version
	.long	.Ldebug_info0	# Offset of Compilation Unit Info
	.long	0x475	# Compilation Unit Length
	.long	0x1fa	# DIE offset
	.ascii "comp_bug\0"	# external name
	.long	0x0
	.section	.debug_aranges,"",@progbits
	.long	0x1c	# Length of Address Ranges Info
	.value	0x2	# DWARF Version
	.long	.Ldebug_info0	# Offset of Compilation Unit Info
	.byte	0x4	# Size of Address
	.byte	0x0	# Size of Segment Descriptor
	.value	0x0	# Pad to 8 byte boundary
	.value	0x0
	.long	.Ltext0	# Address
	.long	.Letext0-.Ltext0	# Length
	.long	0x0
	.long	0x0
	.section	.debug_str,"",@progbits
.LASF4:
	.string	"unsigned int"
.LASF1:
	.string	"natural___XDLU_0__2147483647"
.LASF3:
	.string	"unsigned"
.LASF8:
	.string	"exception"
.LASF6:
	.string	"comp_bug__number_t__T1b___XDLU_0__255"
.LASF5:
	.string	"JMPBUF_T"
.LASF2:
	.string	"integer"
.LASF7:
	.string	"comp_bug__number_t"
.LASF0:
	.string	"character"
	.ident	"GCC: (GNU) 4.1.3 20080421 for GNAT Pro 6.2.0w (20080420)"
	.section	.note.GNU-stack,"",@progbits


More information about the Gdb-patches mailing list