/* This testcase is part of GDB, the GNU debugger.

   Copyright 2011-2021 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

/* This source file was generated from clztest.c using the following
   command line:

   gcc -dA -S -g -O2 clztest.c -o clztest.S

*/

	.file	"clztest.c"
	.text
.Ltext0:
	.p2align 4,,15
	.globl	foo
	.type	foo, @function
foo:
.LFB0:
	# clztest.c:8
.LM1:
.LVL0:
# BLOCK 2 freq:10000 seq:0
# PRED: ENTRY [100.0%]  (fallthru)
	# clztest.c:9
.LM2:
	bsrq	%rdi, %rax
	xorl	$63, %eax
	cltq
.LVL1:
	# clztest.c:11
.LM3:
.LVL2:
	# clztest.c:12
.LM4:
	movl	vv(%rip), %edx
	addl	$1, %edx
	movl	%edx, vv(%rip)
# SUCC: EXIT [100.0%] 
	# clztest.c:14
.LM5:
	ret
.LFE0:
	.size	foo, .-foo
	.p2align 4,,15
	.globl	bar
	.type	bar, @function
bar:
.LFB1:
	# clztest.c:18
.LM6:
.LVL3:
# BLOCK 2 freq:10000 seq:0
# PRED: ENTRY [100.0%]  (fallthru)
	# clztest.c:19
.LM7:
	bsrq	%rdi, %rax
	xorl	$63, %eax
	cltq
.LVL4:
	# clztest.c:21
.LM8:
.LVL5:
	# clztest.c:22
.LM9:
	movl	vv(%rip), %edx
	addl	$1, %edx
	movl	%edx, vv(%rip)
# SUCC: EXIT [100.0%] 
	# clztest.c:24
.LM10:
	ret
.LFE1:
	.size	bar, .-bar
	.section	.text.startup,"ax",@progbits
	.p2align 4,,15
	.globl	_start
	.type	_start, @function
_start:
.LFB2:
	# clztest.c:28
.LM11:
# BLOCK 2 freq:10000 seq:0
# PRED: ENTRY [100.0%]  (fallthru)
	pushq	%rbx
.LCFI0:
	# clztest.c:29
.LM12:
	movl	vv(%rip), %ebx
.LVL6:
	# clztest.c:30
.LM13:
	movslq	%ebx, %rbx
.LVL7:
	leaq	1193046(%rbx), %rdi
	call	foo
.LVL8:
	# clztest.c:31
.LM14:
	leaq	2147483647(%rbx), %rdi
	call	bar
.LVL9:
	# clztest.c:33
.LM15:
	xorl	%eax, %eax
	popq	%rbx
.LCFI1:
.LVL10:
# SUCC: EXIT [100.0%] 
	ret
.LFE2:
	.size	_start, .-_start
	.comm	vv,4,4
#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 -8	# CIE Data Alignment Factor
	.byte	0x10	# CIE RA Column
	.byte	0xc	# DW_CFA_def_cfa
	.uleb128 0x7
	.uleb128 0x8
	.byte	0x90	# DW_CFA_offset, column 0x10
	.uleb128 0x1
	.align 8
.LECIE0:
.LSFDE0:
	.long	.LEFDE0-.LASFDE0	# FDE Length
.LASFDE0:
	.long	.Lframe0	# FDE CIE offset
	.quad	.LFB0	# FDE initial location
	.quad	.LFE0-.LFB0	# FDE address range
	.align 8
.LEFDE0:
.LSFDE2:
	.long	.LEFDE2-.LASFDE2	# FDE Length
.LASFDE2:
	.long	.Lframe0	# FDE CIE offset
	.quad	.LFB1	# FDE initial location
	.quad	.LFE1-.LFB1	# FDE address range
	.align 8
.LEFDE2:
.LSFDE4:
	.long	.LEFDE4-.LASFDE4	# FDE Length
.LASFDE4:
	.long	.Lframe0	# FDE CIE offset
	.quad	.LFB2	# FDE initial location
	.quad	.LFE2-.LFB2	# FDE address range
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI0-.LFB2
	.byte	0xe	# DW_CFA_def_cfa_offset
	.uleb128 0x10
	.byte	0x83	# DW_CFA_offset, column 0x3
	.uleb128 0x2
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI1-.LCFI0
	.byte	0xe	# DW_CFA_def_cfa_offset
	.uleb128 0x8
	.align 8
.LEFDE4:
#NO_APP
#APP
	.section	.eh_frame,"aw",@progbits
.Lframe1:
	.long	.LECIE1-.LSCIE1	# Length of Common Information Entry
.LSCIE1:
	.long	0	# CIE Identifier Tag
	.byte	0x1	# CIE Version
	.ascii "zR\0"	# CIE Augmentation
	.uleb128 0x1	# CIE Code Alignment Factor
	.sleb128 -8	# CIE Data Alignment Factor
	.byte	0x10	# CIE RA Column
	.uleb128 0x1	# Augmentation size
	.byte	0x3	# FDE Encoding (udata4)
	.byte	0xc	# DW_CFA_def_cfa
	.uleb128 0x7
	.uleb128 0x8
	.byte	0x90	# DW_CFA_offset, column 0x10
	.uleb128 0x1
	.align 8
.LECIE1:
.LSFDE7:
	.long	.LEFDE7-.LASFDE7	# FDE Length
.LASFDE7:
	.long	.LASFDE7-.Lframe1	# FDE CIE offset
	.long	.LFB0	# FDE initial location
	.long	.LFE0-.LFB0	# FDE address range
	.uleb128 0	# Augmentation size
	.align 8
.LEFDE7:
.LSFDE9:
	.long	.LEFDE9-.LASFDE9	# FDE Length
.LASFDE9:
	.long	.LASFDE9-.Lframe1	# FDE CIE offset
	.long	.LFB1	# FDE initial location
	.long	.LFE1-.LFB1	# FDE address range
	.uleb128 0	# Augmentation size
	.align 8
.LEFDE9:
.LSFDE11:
	.long	.LEFDE11-.LASFDE11	# FDE Length
.LASFDE11:
	.long	.LASFDE11-.Lframe1	# FDE CIE offset
	.long	.LFB2	# FDE initial location
	.long	.LFE2-.LFB2	# FDE address range
	.uleb128 0	# Augmentation size
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI0-.LFB2
	.byte	0xe	# DW_CFA_def_cfa_offset
	.uleb128 0x10
	.byte	0x83	# DW_CFA_offset, column 0x3
	.uleb128 0x2
	.byte	0x4	# DW_CFA_advance_loc4
	.long	.LCFI1-.LCFI0
	.byte	0xe	# DW_CFA_def_cfa_offset
	.uleb128 0x8
	.align 8
.LEFDE11:
#NO_APP
	.text
.Letext0:
	.section	.debug_info,"",@progbits
.Ldebug_info0:
	.long	0x15a	# Length of Compilation Unit Info
	.value	0x2	# DWARF version number
	.long	.Ldebug_abbrev0	# Offset Into Abbrev. Section
	.byte	0x8	# Pointer Size (in bytes)
	.uleb128 0x1	# (DIE (0xb) DW_TAG_compile_unit)
	.long	.LASF1	# DW_AT_producer: "GNU C 4.7.0 20110511 (experimental)"
	.byte	0x1	# DW_AT_language
	.long	.LASF2	# DW_AT_name: "clztest.c"
	.long	.LASF3	# DW_AT_comp_dir: "/usr/src/gcc/obj/gcc"
	.long	.Ldebug_ranges0+0	# DW_AT_ranges
	.quad	0	# DW_AT_low_pc
	.quad	0	# DW_AT_entry_pc
	.long	.Ldebug_line0	# DW_AT_stmt_list
	.uleb128 0x2	# (DIE (0x31) DW_TAG_subprogram)
	.byte	0x1	# DW_AT_external
	.ascii "foo\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file (clztest.c)
	.byte	0x7	# DW_AT_decl_line
	.byte	0x1	# DW_AT_prototyped
	.long	0x7a	# DW_AT_type
	.quad	.LFB0	# DW_AT_low_pc
	.quad	.LFE0	# DW_AT_high_pc
	.byte	0x2	# DW_AT_frame_base
	.byte	0x77	# DW_OP_breg7
	.sleb128 8
	.byte	0x1	# DW_AT_GNU_all_call_sites
	.long	0x7a	# DW_AT_sibling
	.uleb128 0x3	# (DIE (0x56) DW_TAG_formal_parameter)
	.ascii "x\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file (clztest.c)
	.byte	0x7	# DW_AT_decl_line
	.long	0x7a	# DW_AT_type
	.byte	0x1	# DW_AT_location
	.byte	0x55	# DW_OP_reg5
	.uleb128 0x4	# (DIE (0x61) DW_TAG_variable)
	.ascii "f\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file (clztest.c)
	.byte	0x9	# DW_AT_decl_line
	.long	0x7a	# DW_AT_type
	.byte	0x1	# DW_AT_location
	.byte	0x50	# DW_OP_reg0
	.uleb128 0x5	# (DIE (0x6c) DW_TAG_variable)
	.ascii "g\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file (clztest.c)
	.byte	0xa	# DW_AT_decl_line
	.long	0x7a	# DW_AT_type
	.long	.LLST0	# DW_AT_location
	.byte	0	# end of children of DIE 0x31
	.uleb128 0x6	# (DIE (0x7a) DW_TAG_base_type)
	.byte	0x8	# DW_AT_byte_size
	.byte	0x5	# DW_AT_encoding
	.long	.LASF0	# DW_AT_name: "long int"
	.uleb128 0x2	# (DIE (0x81) DW_TAG_subprogram)
	.byte	0x1	# DW_AT_external
	.ascii "bar\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file (clztest.c)
	.byte	0x11	# DW_AT_decl_line
	.byte	0x1	# DW_AT_prototyped
	.long	0x7a	# DW_AT_type
	.quad	.LFB1	# DW_AT_low_pc
	.quad	.LFE1	# DW_AT_high_pc
	.byte	0x2	# DW_AT_frame_base
	.byte	0x77	# DW_OP_breg7
	.sleb128 8
	.byte	0x1	# DW_AT_GNU_all_call_sites
	.long	0xca	# DW_AT_sibling
	.uleb128 0x3	# (DIE (0xa6) DW_TAG_formal_parameter)
	.ascii "x\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file (clztest.c)
	.byte	0x11	# DW_AT_decl_line
	.long	0x7a	# DW_AT_type
	.byte	0x1	# DW_AT_location
	.byte	0x55	# DW_OP_reg5
	.uleb128 0x4	# (DIE (0xb1) DW_TAG_variable)
	.ascii "f\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file (clztest.c)
	.byte	0x13	# DW_AT_decl_line
	.long	0x7a	# DW_AT_type
	.byte	0x1	# DW_AT_location
	.byte	0x50	# DW_OP_reg0
	.uleb128 0x5	# (DIE (0xbc) DW_TAG_variable)
	.ascii "g\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file (clztest.c)
	.byte	0x14	# DW_AT_decl_line
	.long	0x7a	# DW_AT_type
	.long	.LLST1	# DW_AT_location
	.byte	0	# end of children of DIE 0x81
	.uleb128 0x7	# (DIE (0xca) DW_TAG_subprogram)
	.byte	0x1	# DW_AT_external
	.long	.LASF4	# DW_AT_name: "main"
	.byte	0x1	# DW_AT_decl_file (clztest.c)
	.byte	0x1b	# DW_AT_decl_line
	.long	0x130	# DW_AT_type
	.quad	.LFB2	# DW_AT_low_pc
	.quad	.LFE2	# DW_AT_high_pc
	.long	.LLST2	# DW_AT_frame_base
	.byte	0x1	# DW_AT_GNU_all_call_sites
	.long	0x130	# DW_AT_sibling
	.uleb128 0x5	# (DIE (0xef) DW_TAG_variable)
	.ascii "x\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file (clztest.c)
	.byte	0x1d	# DW_AT_decl_line
	.long	0x7a	# DW_AT_type
	.long	.LLST3	# DW_AT_location
	.uleb128 0x8	# (DIE (0xfc) DW_TAG_GNU_call_site)
	.quad	.LVL8	# DW_AT_low_pc
	.long	0x31	# DW_AT_abstract_origin
	.long	0x117	# DW_AT_sibling
	.uleb128 0x9	# (DIE (0x10d) DW_TAG_GNU_call_site_parameter)
	.byte	0x1	# DW_AT_location
	.byte	0x55	# DW_OP_reg5
	.byte	0x5	# DW_AT_GNU_call_site_value
	.byte	0x73	# DW_OP_breg3
	.sleb128 1193046
	.byte	0	# end of children of DIE 0xfc
	.uleb128 0xa	# (DIE (0x117) DW_TAG_GNU_call_site)
	.quad	.LVL9	# DW_AT_low_pc
	.long	0x81	# DW_AT_abstract_origin
	.uleb128 0x9	# (DIE (0x124) DW_TAG_GNU_call_site_parameter)
	.byte	0x1	# DW_AT_location
	.byte	0x55	# DW_OP_reg5
	.byte	0x6	# DW_AT_GNU_call_site_value
	.byte	0x73	# DW_OP_breg3
	.sleb128 2147483647
	.byte	0	# end of children of DIE 0x117
	.byte	0	# end of children of DIE 0xca
	.uleb128 0xb	# (DIE (0x130) DW_TAG_base_type)
	.byte	0x4	# DW_AT_byte_size
	.byte	0x5	# DW_AT_encoding
	.ascii "int\0"	# DW_AT_name
	.uleb128 0xc	# (DIE (0x137) DW_TAG_variable)
	.ascii "vv\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file (clztest.c)
	.byte	0x4	# DW_AT_decl_line
	.long	0x143	# DW_AT_type
	.byte	0x1	# DW_AT_external
	.byte	0x1	# DW_AT_declaration
	.uleb128 0xd	# (DIE (0x143) DW_TAG_volatile_type)
	.long	0x130	# DW_AT_type
	.uleb128 0xe	# (DIE (0x148) DW_TAG_variable)
	.ascii "vv\0"	# DW_AT_name
	.byte	0x1	# DW_AT_decl_file (clztest.c)
	.byte	0x4	# DW_AT_decl_line
	.long	0x143	# DW_AT_type
	.byte	0x1	# DW_AT_external
	.byte	0x9	# DW_AT_location
	.byte	0x3	# DW_OP_addr
	.quad	vv
	.byte	0	# end of children of DIE 0xb
	.section	.debug_abbrev,"",@progbits
.Ldebug_abbrev0:
	.uleb128 0x1	# (abbrev code)
	.uleb128 0x11	# (TAG: DW_TAG_compile_unit)
	.byte	0x1	# DW_children_yes
	.uleb128 0x25	# (DW_AT_producer)
	.uleb128 0xe	# (DW_FORM_strp)
	.uleb128 0x13	# (DW_AT_language)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0xe	# (DW_FORM_strp)
	.uleb128 0x1b	# (DW_AT_comp_dir)
	.uleb128 0xe	# (DW_FORM_strp)
	.uleb128 0x55	# (DW_AT_ranges)
	.uleb128 0x6	# (DW_FORM_data4)
	.uleb128 0x11	# (DW_AT_low_pc)
	.uleb128 0x1	# (DW_FORM_addr)
	.uleb128 0x52	# (DW_AT_entry_pc)
	.uleb128 0x1	# (DW_FORM_addr)
	.uleb128 0x10	# (DW_AT_stmt_list)
	.uleb128 0x6	# (DW_FORM_data4)
	.byte	0
	.byte	0
	.uleb128 0x2	# (abbrev code)
	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
	.byte	0x1	# DW_children_yes
	.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 0x27	# (DW_AT_prototyped)
	.uleb128 0xc	# (DW_FORM_flag)
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.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 0xa	# (DW_FORM_block1)
	.uleb128 0x2117	# (DW_AT_GNU_all_call_sites)
	.uleb128 0xc	# (DW_FORM_flag)
	.uleb128 0x1	# (DW_AT_sibling)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0
	.byte	0
	.uleb128 0x3	# (abbrev code)
	.uleb128 0x5	# (TAG: DW_TAG_formal_parameter)
	.byte	0	# 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	0
	.byte	0
	.uleb128 0x4	# (abbrev code)
	.uleb128 0x34	# (TAG: DW_TAG_variable)
	.byte	0	# 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	0
	.byte	0
	.uleb128 0x5	# (abbrev code)
	.uleb128 0x34	# (TAG: DW_TAG_variable)
	.byte	0	# 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 0x6	# (DW_FORM_data4)
	.byte	0
	.byte	0
	.uleb128 0x6	# (abbrev code)
	.uleb128 0x24	# (TAG: DW_TAG_base_type)
	.byte	0	# DW_children_no
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3e	# (DW_AT_encoding)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0xe	# (DW_FORM_strp)
	.byte	0
	.byte	0
	.uleb128 0x7	# (abbrev code)
	.uleb128 0x2e	# (TAG: DW_TAG_subprogram)
	.byte	0x1	# DW_children_yes
	.uleb128 0x3f	# (DW_AT_external)
	.uleb128 0xc	# (DW_FORM_flag)
	.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 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)
	.uleb128 0x2117	# (DW_AT_GNU_all_call_sites)
	.uleb128 0xc	# (DW_FORM_flag)
	.uleb128 0x1	# (DW_AT_sibling)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0
	.byte	0
	.uleb128 0x8	# (abbrev code)
	.uleb128 0x4109	# (TAG: DW_TAG_GNU_call_site)
	.byte	0x1	# DW_children_yes
	.uleb128 0x11	# (DW_AT_low_pc)
	.uleb128 0x1	# (DW_FORM_addr)
	.uleb128 0x31	# (DW_AT_abstract_origin)
	.uleb128 0x13	# (DW_FORM_ref4)
	.uleb128 0x1	# (DW_AT_sibling)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0
	.byte	0
	.uleb128 0x9	# (abbrev code)
	.uleb128 0x410a	# (TAG: DW_TAG_GNU_call_site_parameter)
	.byte	0	# DW_children_no
	.uleb128 0x2	# (DW_AT_location)
	.uleb128 0xa	# (DW_FORM_block1)
	.uleb128 0x2111	# (DW_AT_GNU_call_site_value)
	.uleb128 0xa	# (DW_FORM_block1)
	.byte	0
	.byte	0
	.uleb128 0xa	# (abbrev code)
	.uleb128 0x4109	# (TAG: DW_TAG_GNU_call_site)
	.byte	0x1	# DW_children_yes
	.uleb128 0x11	# (DW_AT_low_pc)
	.uleb128 0x1	# (DW_FORM_addr)
	.uleb128 0x31	# (DW_AT_abstract_origin)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0
	.byte	0
	.uleb128 0xb	# (abbrev code)
	.uleb128 0x24	# (TAG: DW_TAG_base_type)
	.byte	0	# DW_children_no
	.uleb128 0xb	# (DW_AT_byte_size)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3e	# (DW_AT_encoding)
	.uleb128 0xb	# (DW_FORM_data1)
	.uleb128 0x3	# (DW_AT_name)
	.uleb128 0x8	# (DW_FORM_string)
	.byte	0
	.byte	0
	.uleb128 0xc	# (abbrev code)
	.uleb128 0x34	# (TAG: DW_TAG_variable)
	.byte	0	# 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 0x3f	# (DW_AT_external)
	.uleb128 0xc	# (DW_FORM_flag)
	.uleb128 0x3c	# (DW_AT_declaration)
	.uleb128 0xc	# (DW_FORM_flag)
	.byte	0
	.byte	0
	.uleb128 0xd	# (abbrev code)
	.uleb128 0x35	# (TAG: DW_TAG_volatile_type)
	.byte	0	# DW_children_no
	.uleb128 0x49	# (DW_AT_type)
	.uleb128 0x13	# (DW_FORM_ref4)
	.byte	0
	.byte	0
	.uleb128 0xe	# (abbrev code)
	.uleb128 0x34	# (TAG: DW_TAG_variable)
	.byte	0	# 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 0x3f	# (DW_AT_external)
	.uleb128 0xc	# (DW_FORM_flag)
	.uleb128 0x2	# (DW_AT_location)
	.uleb128 0xa	# (DW_FORM_block1)
	.byte	0
	.byte	0
	.byte	0
	.section	.debug_loc,"",@progbits
.Ldebug_loc0:
.LLST0:
	.quad	.LVL1	# Location list begin address (*.LLST0)
	.quad	.LVL2	# Location list end address (*.LLST0)
	.value	0x1	# Location expression size
	.byte	0x50	# DW_OP_reg0
	.quad	.LVL2	# Location list begin address (*.LLST0)
	.quad	.LFE0	# Location list end address (*.LLST0)
	.value	0x36	# Location expression size
	.byte	0x8	# DW_OP_const1u
	.byte	0x3f
	.byte	0x75	# DW_OP_breg5
	.sleb128 0
	.byte	0x12	# DW_OP_dup
	.byte	0x28	# DW_OP_bra
	.value	0x6
	.byte	0x13	# DW_OP_drop
	.byte	0x8	# DW_OP_const1u
	.byte	0x40
	.byte	0x2f	# DW_OP_skip
	.value	0x1c
	.byte	0x30	# DW_OP_lit0
	.byte	0x16	# DW_OP_swap
	.byte	0x12	# DW_OP_dup
	.byte	0x10	# DW_OP_constu
	.uleb128 0x8000000000000000
	.byte	0x1a	# DW_OP_and
	.byte	0x28	# DW_OP_bra
	.value	0x9
	.byte	0x31	# DW_OP_lit1
	.byte	0x24	# DW_OP_shl
	.byte	0x16	# DW_OP_swap
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x1
	.byte	0x16	# DW_OP_swap
	.byte	0x2f	# DW_OP_skip
	.value	0xffe7
	.byte	0x13	# DW_OP_drop
	.byte	0x96	# DW_OP_nop
	.byte	0x1c	# DW_OP_minus
	.byte	0x8	# DW_OP_const1u
	.byte	0x3f
	.byte	0x27	# DW_OP_xor
	.byte	0x8	# DW_OP_const1u
	.byte	0x20
	.byte	0x24	# DW_OP_shl
	.byte	0x8	# DW_OP_const1u
	.byte	0x20
	.byte	0x26	# DW_OP_shra
	.byte	0x9f	# DW_OP_stack_value
	.quad	0	# Location list terminator begin (*.LLST0)
	.quad	0	# Location list terminator end (*.LLST0)
.LLST1:
	.quad	.LVL4	# Location list begin address (*.LLST1)
	.quad	.LVL5	# Location list end address (*.LLST1)
	.value	0x1	# Location expression size
	.byte	0x50	# DW_OP_reg0
	.quad	.LVL5	# Location list begin address (*.LLST1)
	.quad	.LFE1	# Location list end address (*.LLST1)
	.value	0x36	# Location expression size
	.byte	0x8	# DW_OP_const1u
	.byte	0x3f
	.byte	0x75	# DW_OP_breg5
	.sleb128 0
	.byte	0x12	# DW_OP_dup
	.byte	0x28	# DW_OP_bra
	.value	0x6
	.byte	0x13	# DW_OP_drop
	.byte	0x8	# DW_OP_const1u
	.byte	0x40
	.byte	0x2f	# DW_OP_skip
	.value	0x1c
	.byte	0x30	# DW_OP_lit0
	.byte	0x16	# DW_OP_swap
	.byte	0x12	# DW_OP_dup
	.byte	0x10	# DW_OP_constu
	.uleb128 0x8000000000000000
	.byte	0x1a	# DW_OP_and
	.byte	0x28	# DW_OP_bra
	.value	0x9
	.byte	0x31	# DW_OP_lit1
	.byte	0x24	# DW_OP_shl
	.byte	0x16	# DW_OP_swap
	.byte	0x23	# DW_OP_plus_uconst
	.uleb128 0x1
	.byte	0x16	# DW_OP_swap
	.byte	0x2f	# DW_OP_skip
	.value	0xffe7
	.byte	0x13	# DW_OP_drop
	.byte	0x96	# DW_OP_nop
	.byte	0x1c	# DW_OP_minus
	.byte	0x8	# DW_OP_const1u
	.byte	0x3f
	.byte	0x27	# DW_OP_xor
	.byte	0x8	# DW_OP_const1u
	.byte	0x20
	.byte	0x24	# DW_OP_shl
	.byte	0x8	# DW_OP_const1u
	.byte	0x20
	.byte	0x26	# DW_OP_shra
	.byte	0x9f	# DW_OP_stack_value
	.quad	0	# Location list terminator begin (*.LLST1)
	.quad	0	# Location list terminator end (*.LLST1)
.LLST2:
	.quad	.LFB2	# Location list begin address (*.LLST2)
	.quad	.LCFI0	# Location list end address (*.LLST2)
	.value	0x2	# Location expression size
	.byte	0x77	# DW_OP_breg7
	.sleb128 8
	.quad	.LCFI0	# Location list begin address (*.LLST2)
	.quad	.LCFI1	# Location list end address (*.LLST2)
	.value	0x2	# Location expression size
	.byte	0x77	# DW_OP_breg7
	.sleb128 16
	.quad	.LCFI1	# Location list begin address (*.LLST2)
	.quad	.LFE2	# Location list end address (*.LLST2)
	.value	0x2	# Location expression size
	.byte	0x77	# DW_OP_breg7
	.sleb128 8
	.quad	0	# Location list terminator begin (*.LLST2)
	.quad	0	# Location list terminator end (*.LLST2)
.LLST3:
	.quad	.LVL6	# Location list begin address (*.LLST3)
	.quad	.LVL7	# Location list end address (*.LLST3)
	.value	0x9	# Location expression size
	.byte	0x73	# DW_OP_breg3
	.sleb128 0
	.byte	0x8	# DW_OP_const1u
	.byte	0x20
	.byte	0x24	# DW_OP_shl
	.byte	0x8	# DW_OP_const1u
	.byte	0x20
	.byte	0x26	# DW_OP_shra
	.byte	0x9f	# DW_OP_stack_value
	.quad	.LVL7	# Location list begin address (*.LLST3)
	.quad	.LVL10	# Location list end address (*.LLST3)
	.value	0x1	# Location expression size
	.byte	0x53	# DW_OP_reg3
	.quad	0	# Location list terminator begin (*.LLST3)
	.quad	0	# Location list terminator end (*.LLST3)
	.section	.debug_aranges,"",@progbits
	.long	0x3c	# Length of Address Ranges Info
	.value	0x2	# DWARF Version
	.long	.Ldebug_info0	# Offset of Compilation Unit Info
	.byte	0x8	# Size of Address
	.byte	0	# Size of Segment Descriptor
	.value	0	# Pad to 16 byte boundary
	.value	0
	.quad	.Ltext0	# Address
	.quad	.Letext0-.Ltext0	# Length
	.quad	.LFB2	# Address
	.quad	.LFE2-.LFB2	# Length
	.quad	0
	.quad	0
	.section	.debug_ranges,"",@progbits
.Ldebug_ranges0:
	.quad	.Ltext0	# Offset 0
	.quad	.Letext0
	.quad	.LFB2	# Offset 0x10
	.quad	.LFE2
	.quad	0
	.quad	0
	.section	.debug_line,"",@progbits
.Ldebug_line0:
	.long	.LELT0-.LSLT0	# Length of Source Line Info
.LSLT0:
	.value	0x2	# DWARF Version
	.long	.LELTP0-.LASLTP0	# Prolog Length
.LASLTP0:
	.byte	0x1	# Minimum Instruction Length
	.byte	0x1	# Default is_stmt_start flag
	.byte	0xf6	# Line Base Value (Special Opcodes)
	.byte	0xf2	# Line Range Value (Special Opcodes)
	.byte	0xd	# Special Opcode Base
	.byte	0	# opcode: 0x1 has 0 args
	.byte	0x1	# opcode: 0x2 has 1 args
	.byte	0x1	# opcode: 0x3 has 1 args
	.byte	0x1	# opcode: 0x4 has 1 args
	.byte	0x1	# opcode: 0x5 has 1 args
	.byte	0	# opcode: 0x6 has 0 args
	.byte	0	# opcode: 0x7 has 0 args
	.byte	0	# opcode: 0x8 has 0 args
	.byte	0x1	# opcode: 0x9 has 1 args
	.byte	0	# opcode: 0xa has 0 args
	.byte	0	# opcode: 0xb has 0 args
	.byte	0x1	# opcode: 0xc has 1 args
	.byte	0	# End directory table
	.ascii "clztest.c\0"	# File Entry: 0x1
	.uleb128 0
	.uleb128 0
	.uleb128 0
	.byte	0	# End file name table
.LELTP0:
	.byte	0	# set address *.LM11
	.uleb128 0x9
	.byte	0x2
	.quad	.LM11
	.byte	0x32	# line 28
	.byte	0	# set address *.LM12
	.uleb128 0x9
	.byte	0x2
	.quad	.LM12
	.byte	0x18	# line 29
	.byte	0	# set address *.LM13
	.uleb128 0x9
	.byte	0x2
	.quad	.LM13
	.byte	0x18	# line 30
	.byte	0	# set address *.LM14
	.uleb128 0x9
	.byte	0x2
	.quad	.LM14
	.byte	0x18	# line 31
	.byte	0	# set address *.LM15
	.uleb128 0x9
	.byte	0x2
	.quad	.LM15
	.byte	0x19	# line 33
	.byte	0	# set address *.LFE2
	.uleb128 0x9
	.byte	0x2
	.quad	.LFE2
	.byte	0	# end sequence
	.uleb128 0x1
	.byte	0x1
	.byte	0	# set address *.LM1
	.uleb128 0x9
	.byte	0x2
	.quad	.LM1
	.byte	0x1e	# line 8
	.byte	0	# set address *.LM2
	.uleb128 0x9
	.byte	0x2
	.quad	.LM2
	.byte	0x18	# line 9
	.byte	0	# set address *.LM3
	.uleb128 0x9
	.byte	0x2
	.quad	.LM3
	.byte	0x19	# line 11
	.byte	0	# set address *.LM4
	.uleb128 0x9
	.byte	0x2
	.quad	.LM4
	.byte	0x18	# line 12
	.byte	0	# set address *.LM5
	.uleb128 0x9
	.byte	0x2
	.quad	.LM5
	.byte	0x19	# line 14
	.byte	0	# set address *.LM6
	.uleb128 0x9
	.byte	0x2
	.quad	.LM6
	.byte	0x1b	# line 18
	.byte	0	# set address *.LM7
	.uleb128 0x9
	.byte	0x2
	.quad	.LM7
	.byte	0x18	# line 19
	.byte	0	# set address *.LM8
	.uleb128 0x9
	.byte	0x2
	.quad	.LM8
	.byte	0x19	# line 21
	.byte	0	# set address *.LM9
	.uleb128 0x9
	.byte	0x2
	.quad	.LM9
	.byte	0x18	# line 22
	.byte	0	# set address *.LM10
	.uleb128 0x9
	.byte	0x2
	.quad	.LM10
	.byte	0x19	# line 24
	.byte	0	# set address *.Letext0
	.uleb128 0x9
	.byte	0x2
	.quad	.Letext0
	.byte	0	# end sequence
	.uleb128 0x1
	.byte	0x1
.LELT0:
	.section	.debug_str,"MS",@progbits,1
.LASF1:
	.string	"GNU C 4.7.0 20110511 (experimental)"
.LASF3:
	.string	"/usr/src/gcc/obj/gcc"
.LASF0:
	.string	"long int"
.LASF4:
	.string	"main"
.LASF2:
	.string	"clztest.c"
	.ident	"GCC: (GNU) 4.7.0 20110511 (experimental)"
	.section	.note.GNU-stack,"",@progbits
