llvm/llvm/test/tools/llvm-dwarfdump/X86/prettyprint_types.s

# RUN: llvm-mc < %s -filetype obj -triple x86_64 -o - \
# RUN:   | llvm-dwarfdump --name=t1 --show-children - | FileCheck %s

# Assembly generated from the following source:
#
#   struct foo;
#   template <typename... Ts>
#   struct t1 {};
#   namespace ns {
#   struct inner { };
#   }
#   namespace {
#   struct anon_ns_mem { };
#   }
#   template <typename T>
#   struct t2 { };
#   enum e1 {
#     E1
#   };
#   enum class e2 {
#     E2
#   };
#   template<typename T, T V>
#   struct tv { };
#   template<char ...C>
#   struct tc { };
#   t1<
#       // base type
#       int,
#       // nullptr unspecified type
#       decltype(nullptr),
#       // reference type
#       int &,
#       // rvalue reference type
#       int &&,
#       // pointer types
#       int *, const void *const *, const void *const, int *const volatile,
#       int *volatile, void *const,
#       // pointer to member variable
#       int foo::*,
#       // pointer to member functions
#       void (foo::*)(int), void (foo::*const &)() const volatile &&,
#       // arrays
#       int *const (&)[1], int *const[1], const int (&)[1], const int[1],
#       // subroutine types
#       int(), void(int), void(int, int), void(...), void (*)(foo *, int),
#       void (*const)(), void() const, void() volatile &&, void() const volatile &,
#       void(const volatile foo *), void (*(int))(float),
#       // qualified types
#       ns::inner, ns::inner(), ns::inner[1], ns::inner *, ns::inner ns::inner::*,
#       ns::inner (ns::inner::*)(ns::inner), const ns::inner, anon_ns_mem,
#       // templates
#       t2<t2<int>>,
#       // enum literals
#       tv<e1, E1>, tv<e1, (e1)1>, tv<e2, e2::E2>,
#       // char literals
#       tv<unsigned char, 'x'>,
#       tc<'x', '\\', '\'', '\a', '\b', '\f', '\n', '\r', '\t', '\v', (char)127>,
#       // integral literals
#       tv<bool, true>, tv<bool, false>, tv<short, 0>, tv<unsigned short, 0>,
#       tv<int, 0>, tv<long, 0L>, tv<long long, 0LL>, tv<unsigned, 0U>,
#       tv<unsigned long, 0UL>, tv<unsigned long long, 0ULL>
#       // end of template parameter list
#       >
#       v1;
#   // extern function to force the code to be emitted - otherwise v1 (having
#   // internal linkage due to being of a type instantiated with an internal
#   // linkage type) would be optimized away as unused.
#   __attribute__((nodebug)) void*f1() {
#     return &v1;
#   }
#
# With the name of the "t1<...>" type renamed to "t1" (or using
# -gsimple-template-names) to make it easy to query for.
# Note that the llvm-dwarfdump command uses --name=t1 --show-children to only
# dump the template type parameters, making it easy to order the types as
# intended and to avoid visiting subtypes that aren't intended to be tested
# separately.


# base_type
# CHECK:   DW_AT_type{{.*}}"int"

# FIXME: This might change in clang to std::nullptr_t which would be more
# accurate and not be ambiguous with some arbitrary ::nullptr_t a user could
# define. If that change is made, this code/test should be fixed too.
# nullptr_t unspecified type
# CHECK:   DW_AT_type{{.*}}"std::nullptr_t"

# reference_type
# CHECK:   DW_AT_type{{.*}}"int &"

# rvalue_reference_type
# CHECK:   DW_AT_type{{.*}}"int &&"

# pointer_type
# CHECK:   DW_AT_type{{.*}}"int *"
# CHECK:   DW_AT_type{{.*}}"const void *const *")
# CHECK:   DW_AT_type{{.*}}"const void *const")
# CHECK:   DW_AT_type{{.*}}"int *const volatile")
# CHECK:   DW_AT_type{{.*}}"int *volatile")
# CHECK:   DW_AT_type{{.*}}"void *const")

# ptr_to_member_type
# CHECK:   DW_AT_type{{.*}}"int foo::*"

# ptr_to_member_type to a member function
# CHECK:   DW_AT_type{{.*}}"void (foo::*)(int)"
# const reference to a pointer to member function (with const, volatile, rvalue ref qualifiers)
# CHECK:   DW_AT_type{{.*}}"void (foo::*const &)() const volatile &&")

# CHECK:   DW_AT_type{{.*}}"int *const (&)[1]")
# CHECK:   DW_AT_type{{.*}}"int *const[1]")
# CHECK:   DW_AT_type{{.*}}"const int (&)[1]")
# CHECK:   DW_AT_type{{.*}}"const int[1]")

# subroutine types
# CHECK:   DW_AT_type{{.*}}"int ()"
# CHECK:   DW_AT_type{{.*}}"void (int)"
# CHECK:   DW_AT_type{{.*}}"void (int, int)"
# CHECK:   DW_AT_type{{.*}}"void (...)"
# CHECK:   DW_AT_type{{.*}}"void (*)(foo *, int)"
# CHECK:   DW_AT_type{{.*}}"void (*const)()")
# CHECK:   DW_AT_type{{.*}}"void () const")
# CHECK:   DW_AT_type{{.*}}"void () volatile &&")
# CHECK:   DW_AT_type{{.*}}"void () const volatile &")
# CHECK:   DW_AT_type{{.*}}"void (const volatile foo *)")
# CHECK:   DW_AT_type{{.*}}"void (*(int))(float)")

# qualified types
# CHECK:   DW_AT_type{{.*}}"ns::inner"
# CHECK:   DW_AT_type{{.*}}"ns::inner ()"
# CHECK:   DW_AT_type{{.*}}"ns::inner[1]"
# CHECK:   DW_AT_type{{.*}}"ns::inner *"
# CHECK:   DW_AT_type{{.*}}"ns::inner (ns::inner::*)(ns::inner)"
# CHECK:   DW_AT_type{{.*}}"const ns::inner"
# CHECK:   DW_AT_type{{.*}}"(anonymous namespace)::anon_ns_mem"

# template types
# CHECK:   DW_AT_type{{.*}}"t2<t2<int> >"

# enum literals
# CHECK:   DW_AT_type{{.*}}"tv<e1, (e1)0>")
# CHECK:   DW_AT_type{{.*}}"tv<e1, (e1)1>")
# CHECK:   DW_AT_type{{.*}}"tv<e2, (e2)0>")

# char literals
# CHECK:   DW_AT_type{{.*}}"tv<unsigned char, (unsigned char)'x'>")
# CHECK:   DW_AT_type{{.*}}"tc<'x', '\\', '\'', '\a', '\b', '\f', '\n', '\r', '\t', '\v', '\x7f'>")

# bool literals
# CHECK:   DW_AT_type{{.*}}"tv<bool, true>")
# CHECK:   DW_AT_type{{.*}}"tv<bool, false>")

# int literals
# CHECK:   DW_AT_type{{.*}}"tv<short, (short)0>"
# CHECK:   DW_AT_type{{.*}}"tv<unsigned short, (unsigned short)0>"
# CHECK:   DW_AT_type{{.*}}"tv<int, 0>"
# CHECK:   DW_AT_type{{.*}}"tv<long, 0L>"
# CHECK:   DW_AT_type{{.*}}"tv<long long, 0LL>"
# CHECK:   DW_AT_type{{.*}}"tv<unsigned int, 0U>"
# CHECK:   DW_AT_type{{.*}}"tv<unsigned long, 0UL>"
# CHECK:   DW_AT_type{{.*}}"tv<unsigned long long, 0ULL>"

	.text
	.file	"test.cpp"
	.file	1 "/usr/local/google/home/blaikie/dev/scratch" "test.cpp"
	.globl	_Z2f1v                          # -- Begin function _Z2f1v
	.p2align	4, 0x90
	.type	_Z2f1v,@function
_Z2f1v:                                 # @_Z2f1v
.Lfunc_begin0:
	.cfi_startproc
# %bb.0:                                # %entry
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register %rbp
	movabsq	$v1, %rax
	popq	%rbp
	.cfi_def_cfa %rsp, 8
	retq
.Lfunc_end0:
	.size	_Z2f1v, .Lfunc_end0-_Z2f1v
	.cfi_endproc
                                        # -- End function
	.type	v1,@object                      # @v1
	.local	v1
	.comm	v1,1,1
	.section	.debug_abbrev,"",@progbits
	.byte	1                               # Abbreviation Code
	.byte	17                              # DW_TAG_compile_unit
	.byte	1                               # DW_CHILDREN_yes
	.byte	37                              # DW_AT_producer
	.byte	14                              # DW_FORM_strp
	.byte	19                              # DW_AT_language
	.byte	5                               # DW_FORM_data2
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	16                              # DW_AT_stmt_list
	.byte	23                              # DW_FORM_sec_offset
	.byte	27                              # DW_AT_comp_dir
	.byte	14                              # DW_FORM_strp
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	2                               # Abbreviation Code
	.byte	52                              # DW_TAG_variable
	.byte	0                               # DW_CHILDREN_no
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	58                              # DW_AT_decl_file
	.byte	11                              # DW_FORM_data1
	.byte	59                              # DW_AT_decl_line
	.byte	11                              # DW_FORM_data1
	.byte	2                               # DW_AT_location
	.byte	24                              # DW_FORM_exprloc
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	3                               # Abbreviation Code
	.byte	19                              # DW_TAG_structure_type
	.byte	1                               # DW_CHILDREN_yes
	.byte	54                              # DW_AT_calling_convention
	.byte	11                              # DW_FORM_data1
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	11                              # DW_AT_byte_size
	.byte	11                              # DW_FORM_data1
	.byte	58                              # DW_AT_decl_file
	.byte	11                              # DW_FORM_data1
	.byte	59                              # DW_AT_decl_line
	.byte	11                              # DW_FORM_data1
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	4                               # Abbreviation Code
	.ascii	"\207\202\001"                  # DW_TAG_GNU_template_parameter_pack
	.byte	1                               # DW_CHILDREN_yes
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	5                               # Abbreviation Code
	.byte	47                              # DW_TAG_template_type_parameter
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	6                               # Abbreviation Code
	.byte	36                              # DW_TAG_base_type
	.byte	0                               # DW_CHILDREN_no
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	62                              # DW_AT_encoding
	.byte	11                              # DW_FORM_data1
	.byte	11                              # DW_AT_byte_size
	.byte	11                              # DW_FORM_data1
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	7                               # Abbreviation Code
	.byte	59                              # DW_TAG_unspecified_type
	.byte	0                               # DW_CHILDREN_no
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	8                               # Abbreviation Code
	.byte	16                              # DW_TAG_reference_type
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	9                               # Abbreviation Code
	.byte	66                              # DW_TAG_rvalue_reference_type
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	10                              # Abbreviation Code
	.byte	15                              # DW_TAG_pointer_type
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	11                              # Abbreviation Code
	.byte	38                              # DW_TAG_const_type
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	12                              # Abbreviation Code
	.byte	38                              # DW_TAG_const_type
	.byte	0                               # DW_CHILDREN_no
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	13                              # Abbreviation Code
	.byte	53                              # DW_TAG_volatile_type
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	14                              # Abbreviation Code
	.byte	15                              # DW_TAG_pointer_type
	.byte	0                               # DW_CHILDREN_no
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	15                              # Abbreviation Code
	.byte	31                              # DW_TAG_ptr_to_member_type
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	29                              # DW_AT_containing_type
	.byte	19                              # DW_FORM_ref4
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	16                              # Abbreviation Code
	.byte	19                              # DW_TAG_structure_type
	.byte	0                               # DW_CHILDREN_no
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	60                              # DW_AT_declaration
	.byte	25                              # DW_FORM_flag_present
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	17                              # Abbreviation Code
	.byte	21                              # DW_TAG_subroutine_type
	.byte	1                               # DW_CHILDREN_yes
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	18                              # Abbreviation Code
	.byte	5                               # DW_TAG_formal_parameter
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	52                              # DW_AT_artificial
	.byte	25                              # DW_FORM_flag_present
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	19                              # Abbreviation Code
	.byte	5                               # DW_TAG_formal_parameter
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	20                              # Abbreviation Code
	.byte	21                              # DW_TAG_subroutine_type
	.byte	1                               # DW_CHILDREN_yes
	.byte	120                             # DW_AT_rvalue_reference
	.byte	25                              # DW_FORM_flag_present
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	21                              # Abbreviation Code
	.byte	1                               # DW_TAG_array_type
	.byte	1                               # DW_CHILDREN_yes
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	22                              # Abbreviation Code
	.byte	33                              # DW_TAG_subrange_type
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	55                              # DW_AT_count
	.byte	11                              # DW_FORM_data1
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	23                              # Abbreviation Code
	.byte	36                              # DW_TAG_base_type
	.byte	0                               # DW_CHILDREN_no
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	11                              # DW_AT_byte_size
	.byte	11                              # DW_FORM_data1
	.byte	62                              # DW_AT_encoding
	.byte	11                              # DW_FORM_data1
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	24                              # Abbreviation Code
	.byte	21                              # DW_TAG_subroutine_type
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	25                              # Abbreviation Code
	.byte	24                              # DW_TAG_unspecified_parameters
	.byte	0                               # DW_CHILDREN_no
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	26                              # Abbreviation Code
	.byte	21                              # DW_TAG_subroutine_type
	.byte	0                               # DW_CHILDREN_no
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	27                              # Abbreviation Code
	.byte	21                              # DW_TAG_subroutine_type
	.byte	0                               # DW_CHILDREN_no
	.byte	120                             # DW_AT_rvalue_reference
	.byte	25                              # DW_FORM_flag_present
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	28                              # Abbreviation Code
	.byte	21                              # DW_TAG_subroutine_type
	.byte	0                               # DW_CHILDREN_no
	.byte	119                             # DW_AT_reference
	.byte	25                              # DW_FORM_flag_present
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	29                              # Abbreviation Code
	.byte	21                              # DW_TAG_subroutine_type
	.byte	1                               # DW_CHILDREN_yes
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	30                              # Abbreviation Code
	.byte	57                              # DW_TAG_namespace
	.byte	1                               # DW_CHILDREN_yes
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	31                              # Abbreviation Code
	.byte	57                              # DW_TAG_namespace
	.byte	1                               # DW_CHILDREN_yes
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	32                              # Abbreviation Code
	.byte	19                              # DW_TAG_structure_type
	.byte	1                               # DW_CHILDREN_yes
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	60                              # DW_AT_declaration
	.byte	25                              # DW_FORM_flag_present
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	33                              # Abbreviation Code
	.byte	47                              # DW_TAG_template_type_parameter
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	34                              # Abbreviation Code
	.byte	48                              # DW_TAG_template_value_parameter
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	28                              # DW_AT_const_value
	.byte	15                              # DW_FORM_udata
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	35                              # Abbreviation Code
	.byte	4                               # DW_TAG_enumeration_type
	.byte	1                               # DW_CHILDREN_yes
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	11                              # DW_AT_byte_size
	.byte	11                              # DW_FORM_data1
	.byte	58                              # DW_AT_decl_file
	.byte	11                              # DW_FORM_data1
	.byte	59                              # DW_AT_decl_line
	.byte	11                              # DW_FORM_data1
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	36                              # Abbreviation Code
	.byte	40                              # DW_TAG_enumerator
	.byte	0                               # DW_CHILDREN_no
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	28                              # DW_AT_const_value
	.byte	15                              # DW_FORM_udata
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	37                              # Abbreviation Code
	.byte	48                              # DW_TAG_template_value_parameter
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	28                              # DW_AT_const_value
	.byte	13                              # DW_FORM_sdata
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	38                              # Abbreviation Code
	.byte	4                               # DW_TAG_enumeration_type
	.byte	1                               # DW_CHILDREN_yes
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	109                             # DW_AT_enum_class
	.byte	25                              # DW_FORM_flag_present
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	11                              # DW_AT_byte_size
	.byte	11                              # DW_FORM_data1
	.byte	58                              # DW_AT_decl_file
	.byte	11                              # DW_FORM_data1
	.byte	59                              # DW_AT_decl_line
	.byte	11                              # DW_FORM_data1
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	39                              # Abbreviation Code
	.byte	40                              # DW_TAG_enumerator
	.byte	0                               # DW_CHILDREN_no
	.byte	3                               # DW_AT_name
	.byte	14                              # DW_FORM_strp
	.byte	28                              # DW_AT_const_value
	.byte	13                              # DW_FORM_sdata
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	40                              # Abbreviation Code
	.byte	48                              # DW_TAG_template_value_parameter
	.byte	0                               # DW_CHILDREN_no
	.byte	73                              # DW_AT_type
	.byte	19                              # DW_FORM_ref4
	.byte	28                              # DW_AT_const_value
	.byte	13                              # DW_FORM_sdata
	.byte	0                               # EOM(1)
	.byte	0                               # EOM(2)
	.byte	0                               # EOM(3)
	.section	.debug_info,"",@progbits
.Lcu_begin0:
	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
.Ldebug_info_start0:
	.short	4                               # DWARF version number
	.long	.debug_abbrev                   # Offset Into Abbrev. Section
	.byte	8                               # Address Size (in bytes)
	.byte	1                               # Abbrev [1] 0xb:0x505 DW_TAG_compile_unit
	.long	.Linfo_string0                  # DW_AT_producer
	.short	33                              # DW_AT_language
	.long	.Linfo_string1                  # DW_AT_name
	.long	.Lline_table_start0             # DW_AT_stmt_list
	.long	.Linfo_string2                  # DW_AT_comp_dir
	.byte	2                               # Abbrev [2] 0x1e:0x15 DW_TAG_variable
	.long	.Linfo_string3                  # DW_AT_name
	.long	51                              # DW_AT_type
	.byte	1                               # DW_AT_decl_file
	.byte	60                              # DW_AT_decl_line
	.byte	9                               # DW_AT_location
	.byte	3
	.quad	v1
	.byte	3                               # Abbrev [3] 0x33:0x114 DW_TAG_structure_type
	.byte	5                               # DW_AT_calling_convention
	.long	.Linfo_string33                 # DW_AT_name
	.byte	1                               # DW_AT_byte_size
	.byte	1                               # DW_AT_decl_file
	.byte	3                               # DW_AT_decl_line
	.byte	4                               # Abbrev [4] 0x3c:0x10a DW_TAG_GNU_template_parameter_pack
	.long	.Linfo_string4                  # DW_AT_name
	.byte	5                               # Abbrev [5] 0x41:0x5 DW_TAG_template_type_parameter
	.long	327                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x46:0x5 DW_TAG_template_type_parameter
	.long	334                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x4b:0x5 DW_TAG_template_type_parameter
	.long	339                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x50:0x5 DW_TAG_template_type_parameter
	.long	344                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x55:0x5 DW_TAG_template_type_parameter
	.long	349                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x5a:0x5 DW_TAG_template_type_parameter
	.long	354                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x5f:0x5 DW_TAG_template_type_parameter
	.long	359                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x64:0x5 DW_TAG_template_type_parameter
	.long	370                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x69:0x5 DW_TAG_template_type_parameter
	.long	375                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x6e:0x5 DW_TAG_template_type_parameter
	.long	380                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x73:0x5 DW_TAG_template_type_parameter
	.long	386                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x78:0x5 DW_TAG_template_type_parameter
	.long	400                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x7d:0x5 DW_TAG_template_type_parameter
	.long	426                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x82:0x5 DW_TAG_template_type_parameter
	.long	467                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x87:0x5 DW_TAG_template_type_parameter
	.long	472                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x8c:0x5 DW_TAG_template_type_parameter
	.long	496                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x91:0x5 DW_TAG_template_type_parameter
	.long	501                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x96:0x5 DW_TAG_template_type_parameter
	.long	518                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x9b:0x5 DW_TAG_template_type_parameter
	.long	523                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xa0:0x5 DW_TAG_template_type_parameter
	.long	530                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xa5:0x5 DW_TAG_template_type_parameter
	.long	542                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xaa:0x5 DW_TAG_template_type_parameter
	.long	545                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xaf:0x5 DW_TAG_template_type_parameter
	.long	567                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xb4:0x5 DW_TAG_template_type_parameter
	.long	578                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xb9:0x5 DW_TAG_template_type_parameter
	.long	583                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xbe:0x5 DW_TAG_template_type_parameter
	.long	589                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xc3:0x5 DW_TAG_template_type_parameter
	.long	600                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xc8:0x5 DW_TAG_template_type_parameter
	.long	612                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xcd:0x5 DW_TAG_template_type_parameter
	.long	647                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xd2:0x5 DW_TAG_template_type_parameter
	.long	653                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xd7:0x5 DW_TAG_template_type_parameter
	.long	658                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xdc:0x5 DW_TAG_template_type_parameter
	.long	670                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xe1:0x5 DW_TAG_template_type_parameter
	.long	675                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xe6:0x5 DW_TAG_template_type_parameter
	.long	684                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xeb:0x5 DW_TAG_template_type_parameter
	.long	714                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xf0:0x5 DW_TAG_template_type_parameter
	.long	720                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xf5:0x5 DW_TAG_template_type_parameter
	.long	726                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xfa:0x5 DW_TAG_template_type_parameter
	.long	756                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0xff:0x5 DW_TAG_template_type_parameter
	.long	807                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x104:0x5 DW_TAG_template_type_parameter
	.long	832                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x109:0x5 DW_TAG_template_type_parameter
	.long	876                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x10e:0x5 DW_TAG_template_type_parameter
	.long	908                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x113:0x5 DW_TAG_template_type_parameter
	.long	996                             # DW_AT_type
	.byte	5                               # Abbrev [5] 0x118:0x5 DW_TAG_template_type_parameter
	.long	1028                            # DW_AT_type
	.byte	5                               # Abbrev [5] 0x11d:0x5 DW_TAG_template_type_parameter
	.long	1053                            # DW_AT_type
	.byte	5                               # Abbrev [5] 0x122:0x5 DW_TAG_template_type_parameter
	.long	1085                            # DW_AT_type
	.byte	5                               # Abbrev [5] 0x127:0x5 DW_TAG_template_type_parameter
	.long	1117                            # DW_AT_type
	.byte	5                               # Abbrev [5] 0x12c:0x5 DW_TAG_template_type_parameter
	.long	1142                            # DW_AT_type
	.byte	5                               # Abbrev [5] 0x131:0x5 DW_TAG_template_type_parameter
	.long	1174                            # DW_AT_type
	.byte	5                               # Abbrev [5] 0x136:0x5 DW_TAG_template_type_parameter
	.long	1206                            # DW_AT_type
	.byte	5                               # Abbrev [5] 0x13b:0x5 DW_TAG_template_type_parameter
	.long	1231                            # DW_AT_type
	.byte	5                               # Abbrev [5] 0x140:0x5 DW_TAG_template_type_parameter
	.long	1263                            # DW_AT_type
	.byte	0                               # End Of Children Mark
	.byte	0                               # End Of Children Mark
	.byte	6                               # Abbrev [6] 0x147:0x7 DW_TAG_base_type
	.long	.Linfo_string5                  # DW_AT_name
	.byte	5                               # DW_AT_encoding
	.byte	4                               # DW_AT_byte_size
	.byte	7                               # Abbrev [7] 0x14e:0x5 DW_TAG_unspecified_type
	.long	.Linfo_string6                  # DW_AT_name
	.byte	8                               # Abbrev [8] 0x153:0x5 DW_TAG_reference_type
	.long	327                             # DW_AT_type
	.byte	9                               # Abbrev [9] 0x158:0x5 DW_TAG_rvalue_reference_type
	.long	327                             # DW_AT_type
	.byte	10                              # Abbrev [10] 0x15d:0x5 DW_TAG_pointer_type
	.long	327                             # DW_AT_type
	.byte	10                              # Abbrev [10] 0x162:0x5 DW_TAG_pointer_type
	.long	359                             # DW_AT_type
	.byte	11                              # Abbrev [11] 0x167:0x5 DW_TAG_const_type
	.long	364                             # DW_AT_type
	.byte	10                              # Abbrev [10] 0x16c:0x5 DW_TAG_pointer_type
	.long	369                             # DW_AT_type
	.byte	12                              # Abbrev [12] 0x171:0x1 DW_TAG_const_type
	.byte	11                              # Abbrev [11] 0x172:0x5 DW_TAG_const_type
	.long	375                             # DW_AT_type
	.byte	13                              # Abbrev [13] 0x177:0x5 DW_TAG_volatile_type
	.long	349                             # DW_AT_type
	.byte	11                              # Abbrev [11] 0x17c:0x5 DW_TAG_const_type
	.long	385                             # DW_AT_type
	.byte	14                              # Abbrev [14] 0x181:0x1 DW_TAG_pointer_type
	.byte	15                              # Abbrev [15] 0x182:0x9 DW_TAG_ptr_to_member_type
	.long	327                             # DW_AT_type
	.long	395                             # DW_AT_containing_type
	.byte	16                              # Abbrev [16] 0x18b:0x5 DW_TAG_structure_type
	.long	.Linfo_string7                  # DW_AT_name
                                        # DW_AT_declaration
	.byte	15                              # Abbrev [15] 0x190:0x9 DW_TAG_ptr_to_member_type
	.long	409                             # DW_AT_type
	.long	395                             # DW_AT_containing_type
	.byte	17                              # Abbrev [17] 0x199:0xc DW_TAG_subroutine_type
	.byte	18                              # Abbrev [18] 0x19a:0x5 DW_TAG_formal_parameter
	.long	421                             # DW_AT_type
                                        # DW_AT_artificial
	.byte	19                              # Abbrev [19] 0x19f:0x5 DW_TAG_formal_parameter
	.long	327                             # DW_AT_type
	.byte	0                               # End Of Children Mark
	.byte	10                              # Abbrev [10] 0x1a5:0x5 DW_TAG_pointer_type
	.long	395                             # DW_AT_type
	.byte	8                               # Abbrev [8] 0x1aa:0x5 DW_TAG_reference_type
	.long	431                             # DW_AT_type
	.byte	11                              # Abbrev [11] 0x1af:0x5 DW_TAG_const_type
	.long	436                             # DW_AT_type
	.byte	15                              # Abbrev [15] 0x1b4:0x9 DW_TAG_ptr_to_member_type
	.long	445                             # DW_AT_type
	.long	395                             # DW_AT_containing_type
	.byte	20                              # Abbrev [20] 0x1bd:0x7 DW_TAG_subroutine_type
                                        # DW_AT_rvalue_reference
	.byte	18                              # Abbrev [18] 0x1be:0x5 DW_TAG_formal_parameter
	.long	452                             # DW_AT_type
                                        # DW_AT_artificial
	.byte	0                               # End Of Children Mark
	.byte	10                              # Abbrev [10] 0x1c4:0x5 DW_TAG_pointer_type
	.long	457                             # DW_AT_type
	.byte	11                              # Abbrev [11] 0x1c9:0x5 DW_TAG_const_type
	.long	462                             # DW_AT_type
	.byte	13                              # Abbrev [13] 0x1ce:0x5 DW_TAG_volatile_type
	.long	395                             # DW_AT_type
	.byte	8                               # Abbrev [8] 0x1d3:0x5 DW_TAG_reference_type
	.long	472                             # DW_AT_type
	.byte	11                              # Abbrev [11] 0x1d8:0x5 DW_TAG_const_type
	.long	477                             # DW_AT_type
	.byte	21                              # Abbrev [21] 0x1dd:0xc DW_TAG_array_type
	.long	349                             # DW_AT_type
	.byte	22                              # Abbrev [22] 0x1e2:0x6 DW_TAG_subrange_type
	.long	489                             # DW_AT_type
	.byte	1                               # DW_AT_count
	.byte	0                               # End Of Children Mark
	.byte	23                              # Abbrev [23] 0x1e9:0x7 DW_TAG_base_type
	.long	.Linfo_string8                  # DW_AT_name
	.byte	8                               # DW_AT_byte_size
	.byte	7                               # DW_AT_encoding
	.byte	8                               # Abbrev [8] 0x1f0:0x5 DW_TAG_reference_type
	.long	501                             # DW_AT_type
	.byte	11                              # Abbrev [11] 0x1f5:0x5 DW_TAG_const_type
	.long	506                             # DW_AT_type
	.byte	21                              # Abbrev [21] 0x1fa:0xc DW_TAG_array_type
	.long	327                             # DW_AT_type
	.byte	22                              # Abbrev [22] 0x1ff:0x6 DW_TAG_subrange_type
	.long	489                             # DW_AT_type
	.byte	1                               # DW_AT_count
	.byte	0                               # End Of Children Mark
	.byte	24                              # Abbrev [24] 0x206:0x5 DW_TAG_subroutine_type
	.long	327                             # DW_AT_type
	.byte	17                              # Abbrev [17] 0x20b:0x7 DW_TAG_subroutine_type
	.byte	19                              # Abbrev [19] 0x20c:0x5 DW_TAG_formal_parameter
	.long	327                             # DW_AT_type
	.byte	0                               # End Of Children Mark
	.byte	17                              # Abbrev [17] 0x212:0xc DW_TAG_subroutine_type
	.byte	19                              # Abbrev [19] 0x213:0x5 DW_TAG_formal_parameter
	.long	327                             # DW_AT_type
	.byte	19                              # Abbrev [19] 0x218:0x5 DW_TAG_formal_parameter
	.long	327                             # DW_AT_type
	.byte	0                               # End Of Children Mark
	.byte	17                              # Abbrev [17] 0x21e:0x3 DW_TAG_subroutine_type
	.byte	25                              # Abbrev [25] 0x21f:0x1 DW_TAG_unspecified_parameters
	.byte	0                               # End Of Children Mark
	.byte	10                              # Abbrev [10] 0x221:0x5 DW_TAG_pointer_type
	.long	550                             # DW_AT_type
	.byte	17                              # Abbrev [17] 0x226:0xc DW_TAG_subroutine_type
	.byte	19                              # Abbrev [19] 0x227:0x5 DW_TAG_formal_parameter
	.long	562                             # DW_AT_type
	.byte	19                              # Abbrev [19] 0x22c:0x5 DW_TAG_formal_parameter
	.long	327                             # DW_AT_type
	.byte	0                               # End Of Children Mark
	.byte	10                              # Abbrev [10] 0x232:0x5 DW_TAG_pointer_type
	.long	395                             # DW_AT_type
	.byte	11                              # Abbrev [11] 0x237:0x5 DW_TAG_const_type
	.long	572                             # DW_AT_type
	.byte	10                              # Abbrev [10] 0x23c:0x5 DW_TAG_pointer_type
	.long	577                             # DW_AT_type
	.byte	26                              # Abbrev [26] 0x241:0x1 DW_TAG_subroutine_type
	.byte	11                              # Abbrev [11] 0x242:0x5 DW_TAG_const_type
	.long	577                             # DW_AT_type
	.byte	13                              # Abbrev [13] 0x247:0x5 DW_TAG_volatile_type
	.long	588                             # DW_AT_type
	.byte	27                              # Abbrev [27] 0x24c:0x1 DW_TAG_subroutine_type
                                        # DW_AT_rvalue_reference
	.byte	11                              # Abbrev [11] 0x24d:0x5 DW_TAG_const_type
	.long	594                             # DW_AT_type
	.byte	13                              # Abbrev [13] 0x252:0x5 DW_TAG_volatile_type
	.long	599                             # DW_AT_type
	.byte	28                              # Abbrev [28] 0x257:0x1 DW_TAG_subroutine_type
                                        # DW_AT_reference
	.byte	17                              # Abbrev [17] 0x258:0x7 DW_TAG_subroutine_type
	.byte	19                              # Abbrev [19] 0x259:0x5 DW_TAG_formal_parameter
	.long	607                             # DW_AT_type
	.byte	0                               # End Of Children Mark
	.byte	10                              # Abbrev [10] 0x25f:0x5 DW_TAG_pointer_type
	.long	457                             # DW_AT_type
	.byte	29                              # Abbrev [29] 0x264:0xb DW_TAG_subroutine_type
	.long	623                             # DW_AT_type
	.byte	19                              # Abbrev [19] 0x269:0x5 DW_TAG_formal_parameter
	.long	327                             # DW_AT_type
	.byte	0                               # End Of Children Mark
	.byte	10                              # Abbrev [10] 0x26f:0x5 DW_TAG_pointer_type
	.long	628                             # DW_AT_type
	.byte	17                              # Abbrev [17] 0x274:0x7 DW_TAG_subroutine_type
	.byte	19                              # Abbrev [19] 0x275:0x5 DW_TAG_formal_parameter
	.long	635                             # DW_AT_type
	.byte	0                               # End Of Children Mark
	.byte	6                               # Abbrev [6] 0x27b:0x7 DW_TAG_base_type
	.long	.Linfo_string9                  # DW_AT_name
	.byte	4                               # DW_AT_encoding
	.byte	4                               # DW_AT_byte_size
	.byte	30                              # Abbrev [30] 0x282:0xb DW_TAG_namespace
	.long	.Linfo_string10                 # DW_AT_name
	.byte	16                              # Abbrev [16] 0x287:0x5 DW_TAG_structure_type
	.long	.Linfo_string11                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	0                               # End Of Children Mark
	.byte	24                              # Abbrev [24] 0x28d:0x5 DW_TAG_subroutine_type
	.long	647                             # DW_AT_type
	.byte	21                              # Abbrev [21] 0x292:0xc DW_TAG_array_type
	.long	647                             # DW_AT_type
	.byte	22                              # Abbrev [22] 0x297:0x6 DW_TAG_subrange_type
	.long	489                             # DW_AT_type
	.byte	1                               # DW_AT_count
	.byte	0                               # End Of Children Mark
	.byte	10                              # Abbrev [10] 0x29e:0x5 DW_TAG_pointer_type
	.long	647                             # DW_AT_type
	.byte	15                              # Abbrev [15] 0x2a3:0x9 DW_TAG_ptr_to_member_type
	.long	647                             # DW_AT_type
	.long	647                             # DW_AT_containing_type
	.byte	15                              # Abbrev [15] 0x2ac:0x9 DW_TAG_ptr_to_member_type
	.long	693                             # DW_AT_type
	.long	647                             # DW_AT_containing_type
	.byte	29                              # Abbrev [29] 0x2b5:0x10 DW_TAG_subroutine_type
	.long	647                             # DW_AT_type
	.byte	18                              # Abbrev [18] 0x2ba:0x5 DW_TAG_formal_parameter
	.long	709                             # DW_AT_type
                                        # DW_AT_artificial
	.byte	19                              # Abbrev [19] 0x2bf:0x5 DW_TAG_formal_parameter
	.long	647                             # DW_AT_type
	.byte	0                               # End Of Children Mark
	.byte	10                              # Abbrev [10] 0x2c5:0x5 DW_TAG_pointer_type
	.long	647                             # DW_AT_type
	.byte	11                              # Abbrev [11] 0x2ca:0x5 DW_TAG_const_type
	.long	647                             # DW_AT_type
	.byte	31                              # Abbrev [31] 0x2cf:0x7 DW_TAG_namespace
	.byte	16                              # Abbrev [16] 0x2d0:0x5 DW_TAG_structure_type
	.long	.Linfo_string12                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	0                               # End Of Children Mark
	.byte	32                              # Abbrev [32] 0x2d6:0xf DW_TAG_structure_type
	.long	.Linfo_string14                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x2db:0x9 DW_TAG_template_type_parameter
	.long	741                             # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	0                               # End Of Children Mark
	.byte	32                              # Abbrev [32] 0x2e5:0xf DW_TAG_structure_type
	.long	.Linfo_string14                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x2ea:0x9 DW_TAG_template_type_parameter
	.long	327                             # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	0                               # End Of Children Mark
	.byte	32                              # Abbrev [32] 0x2f4:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x2f9:0x9 DW_TAG_template_type_parameter
	.long	781                             # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	34                              # Abbrev [34] 0x302:0xa DW_TAG_template_value_parameter
	.long	781                             # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	35                              # Abbrev [35] 0x30d:0x13 DW_TAG_enumeration_type
	.long	800                             # DW_AT_type
	.long	.Linfo_string17                 # DW_AT_name
	.byte	4                               # DW_AT_byte_size
	.byte	1                               # DW_AT_decl_file
	.byte	12                              # DW_AT_decl_line
	.byte	36                              # Abbrev [36] 0x319:0x6 DW_TAG_enumerator
	.long	.Linfo_string16                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	6                               # Abbrev [6] 0x320:0x7 DW_TAG_base_type
	.long	.Linfo_string15                 # DW_AT_name
	.byte	7                               # DW_AT_encoding
	.byte	4                               # DW_AT_byte_size
	.byte	32                              # Abbrev [32] 0x327:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x32c:0x9 DW_TAG_template_type_parameter
	.long	781                             # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	34                              # Abbrev [34] 0x335:0xa DW_TAG_template_value_parameter
	.long	781                             # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	1                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	32                              # Abbrev [32] 0x340:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x345:0x9 DW_TAG_template_type_parameter
	.long	857                             # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	37                              # Abbrev [37] 0x34e:0xa DW_TAG_template_value_parameter
	.long	857                             # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	38                              # Abbrev [38] 0x359:0x13 DW_TAG_enumeration_type
	.long	327                             # DW_AT_type
                                        # DW_AT_enum_class
	.long	.Linfo_string21                 # DW_AT_name
	.byte	4                               # DW_AT_byte_size
	.byte	1                               # DW_AT_decl_file
	.byte	15                              # DW_AT_decl_line
	.byte	39                              # Abbrev [39] 0x365:0x6 DW_TAG_enumerator
	.long	.Linfo_string20                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	32                              # Abbrev [32] 0x36c:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x371:0x9 DW_TAG_template_type_parameter
	.long	901                             # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	34                              # Abbrev [34] 0x37a:0xa DW_TAG_template_value_parameter
	.long	901                             # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	120                             # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	6                               # Abbrev [6] 0x385:0x7 DW_TAG_base_type
	.long	.Linfo_string22                 # DW_AT_name
	.byte	8                               # DW_AT_encoding
	.byte	1                               # DW_AT_byte_size
	.byte	32                              # Abbrev [32] 0x38c:0x51 DW_TAG_structure_type
	.long	.Linfo_string25                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	4                               # Abbrev [4] 0x391:0x4b DW_TAG_GNU_template_parameter_pack
	.long	.Linfo_string23                 # DW_AT_name
	.byte	40                              # Abbrev [40] 0x396:0x7 DW_TAG_template_value_parameter
	.long	989                             # DW_AT_type
	.asciz	"\370"                          # DW_AT_const_value
	.byte	40                              # Abbrev [40] 0x39d:0x7 DW_TAG_template_value_parameter
	.long	989                             # DW_AT_type
	.asciz	"\334"                          # DW_AT_const_value
	.byte	40                              # Abbrev [40] 0x3a4:0x6 DW_TAG_template_value_parameter
	.long	989                             # DW_AT_type
	.byte	39                              # DW_AT_const_value
	.byte	40                              # Abbrev [40] 0x3aa:0x6 DW_TAG_template_value_parameter
	.long	989                             # DW_AT_type
	.byte	7                               # DW_AT_const_value
	.byte	40                              # Abbrev [40] 0x3b0:0x6 DW_TAG_template_value_parameter
	.long	989                             # DW_AT_type
	.byte	8                               # DW_AT_const_value
	.byte	40                              # Abbrev [40] 0x3b6:0x6 DW_TAG_template_value_parameter
	.long	989                             # DW_AT_type
	.byte	12                              # DW_AT_const_value
	.byte	40                              # Abbrev [40] 0x3bc:0x6 DW_TAG_template_value_parameter
	.long	989                             # DW_AT_type
	.byte	10                              # DW_AT_const_value
	.byte	40                              # Abbrev [40] 0x3c2:0x6 DW_TAG_template_value_parameter
	.long	989                             # DW_AT_type
	.byte	13                              # DW_AT_const_value
	.byte	40                              # Abbrev [40] 0x3c8:0x6 DW_TAG_template_value_parameter
	.long	989                             # DW_AT_type
	.byte	9                               # DW_AT_const_value
	.byte	40                              # Abbrev [40] 0x3ce:0x6 DW_TAG_template_value_parameter
	.long	989                             # DW_AT_type
	.byte	11                              # DW_AT_const_value
	.byte	40                              # Abbrev [40] 0x3d4:0x7 DW_TAG_template_value_parameter
	.long	989                             # DW_AT_type
	.asciz	"\377"                          # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	0                               # End Of Children Mark
	.byte	6                               # Abbrev [6] 0x3dd:0x7 DW_TAG_base_type
	.long	.Linfo_string24                 # DW_AT_name
	.byte	6                               # DW_AT_encoding
	.byte	1                               # DW_AT_byte_size
	.byte	32                              # Abbrev [32] 0x3e4:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x3e9:0x9 DW_TAG_template_type_parameter
	.long	1021                            # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	34                              # Abbrev [34] 0x3f2:0xa DW_TAG_template_value_parameter
	.long	1021                            # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	1                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	6                               # Abbrev [6] 0x3fd:0x7 DW_TAG_base_type
	.long	.Linfo_string26                 # DW_AT_name
	.byte	2                               # DW_AT_encoding
	.byte	1                               # DW_AT_byte_size
	.byte	32                              # Abbrev [32] 0x404:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x409:0x9 DW_TAG_template_type_parameter
	.long	1021                            # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	34                              # Abbrev [34] 0x412:0xa DW_TAG_template_value_parameter
	.long	1021                            # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	32                              # Abbrev [32] 0x41d:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x422:0x9 DW_TAG_template_type_parameter
	.long	1078                            # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	37                              # Abbrev [37] 0x42b:0xa DW_TAG_template_value_parameter
	.long	1078                            # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	6                               # Abbrev [6] 0x436:0x7 DW_TAG_base_type
	.long	.Linfo_string27                 # DW_AT_name
	.byte	5                               # DW_AT_encoding
	.byte	2                               # DW_AT_byte_size
	.byte	32                              # Abbrev [32] 0x43d:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x442:0x9 DW_TAG_template_type_parameter
	.long	1110                            # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	34                              # Abbrev [34] 0x44b:0xa DW_TAG_template_value_parameter
	.long	1110                            # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	6                               # Abbrev [6] 0x456:0x7 DW_TAG_base_type
	.long	.Linfo_string28                 # DW_AT_name
	.byte	7                               # DW_AT_encoding
	.byte	2                               # DW_AT_byte_size
	.byte	32                              # Abbrev [32] 0x45d:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x462:0x9 DW_TAG_template_type_parameter
	.long	327                             # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	37                              # Abbrev [37] 0x46b:0xa DW_TAG_template_value_parameter
	.long	327                             # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	32                              # Abbrev [32] 0x476:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x47b:0x9 DW_TAG_template_type_parameter
	.long	1167                            # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	37                              # Abbrev [37] 0x484:0xa DW_TAG_template_value_parameter
	.long	1167                            # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	6                               # Abbrev [6] 0x48f:0x7 DW_TAG_base_type
	.long	.Linfo_string29                 # DW_AT_name
	.byte	5                               # DW_AT_encoding
	.byte	8                               # DW_AT_byte_size
	.byte	32                              # Abbrev [32] 0x496:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x49b:0x9 DW_TAG_template_type_parameter
	.long	1199                            # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	37                              # Abbrev [37] 0x4a4:0xa DW_TAG_template_value_parameter
	.long	1199                            # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	6                               # Abbrev [6] 0x4af:0x7 DW_TAG_base_type
	.long	.Linfo_string30                 # DW_AT_name
	.byte	5                               # DW_AT_encoding
	.byte	8                               # DW_AT_byte_size
	.byte	32                              # Abbrev [32] 0x4b6:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x4bb:0x9 DW_TAG_template_type_parameter
	.long	800                             # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	34                              # Abbrev [34] 0x4c4:0xa DW_TAG_template_value_parameter
	.long	800                             # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	32                              # Abbrev [32] 0x4cf:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x4d4:0x9 DW_TAG_template_type_parameter
	.long	1256                            # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	34                              # Abbrev [34] 0x4dd:0xa DW_TAG_template_value_parameter
	.long	1256                            # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	6                               # Abbrev [6] 0x4e8:0x7 DW_TAG_base_type
	.long	.Linfo_string31                 # DW_AT_name
	.byte	7                               # DW_AT_encoding
	.byte	8                               # DW_AT_byte_size
	.byte	32                              # Abbrev [32] 0x4ef:0x19 DW_TAG_structure_type
	.long	.Linfo_string19                 # DW_AT_name
                                        # DW_AT_declaration
	.byte	33                              # Abbrev [33] 0x4f4:0x9 DW_TAG_template_type_parameter
	.long	1288                            # DW_AT_type
	.long	.Linfo_string13                 # DW_AT_name
	.byte	34                              # Abbrev [34] 0x4fd:0xa DW_TAG_template_value_parameter
	.long	1288                            # DW_AT_type
	.long	.Linfo_string18                 # DW_AT_name
	.byte	0                               # DW_AT_const_value
	.byte	0                               # End Of Children Mark
	.byte	6                               # Abbrev [6] 0x508:0x7 DW_TAG_base_type
	.long	.Linfo_string32                 # DW_AT_name
	.byte	7                               # DW_AT_encoding
	.byte	8                               # DW_AT_byte_size
	.byte	0                               # End Of Children Mark
.Ldebug_info_end0:
	.section	.debug_str,"MS",@progbits,1
.Linfo_string0:
	.asciz	"clang version 14.0.0 ([email protected]:llvm/llvm-project.git e1e74f6cd6ce41ce8303a5a91f29736808fccc36)" # string offset=0
.Linfo_string1:
	.asciz	"test.cpp"                      # string offset=101
.Linfo_string2:
	.asciz	"/usr/local/google/home/blaikie/dev/scratch" # string offset=110
.Linfo_string3:
	.asciz	"v1"                            # string offset=153
.Linfo_string4:
	.asciz	"Ts"                            # string offset=156
.Linfo_string5:
	.asciz	"int"                           # string offset=159
.Linfo_string6:
	.asciz	"decltype(nullptr)"             # string offset=163
.Linfo_string7:
	.asciz	"foo"                           # string offset=181
.Linfo_string8:
	.asciz	"__ARRAY_SIZE_TYPE__"           # string offset=185
.Linfo_string9:
	.asciz	"float"                         # string offset=205
.Linfo_string10:
	.asciz	"ns"                            # string offset=211
.Linfo_string11:
	.asciz	"inner"                         # string offset=214
.Linfo_string12:
	.asciz	"anon_ns_mem"                   # string offset=220
.Linfo_string13:
	.asciz	"T"                             # string offset=232
.Linfo_string14:
	.asciz	"t2"                            # string offset=234
.Linfo_string15:
	.asciz	"unsigned int"                  # string offset=237
.Linfo_string16:
	.asciz	"E1"                            # string offset=250
.Linfo_string17:
	.asciz	"e1"                            # string offset=253
.Linfo_string18:
	.asciz	"V"                             # string offset=256
.Linfo_string19:
	.asciz	"tv"                            # string offset=258
.Linfo_string20:
	.asciz	"E2"                            # string offset=261
.Linfo_string21:
	.asciz	"e2"                            # string offset=264
.Linfo_string22:
	.asciz	"unsigned char"                 # string offset=267
.Linfo_string23:
	.asciz	"C"                             # string offset=281
.Linfo_string24:
	.asciz	"char"                          # string offset=283
.Linfo_string25:
	.asciz	"tc"                            # string offset=288
.Linfo_string26:
	.asciz	"bool"                          # string offset=291
.Linfo_string27:
	.asciz	"short"                         # string offset=296
.Linfo_string28:
	.asciz	"unsigned short"                # string offset=302
.Linfo_string29:
	.asciz	"long"                          # string offset=317
.Linfo_string30:
	.asciz	"long long"                     # string offset=322
.Linfo_string31:
	.asciz	"unsigned long"                 # string offset=332
.Linfo_string32:
	.asciz	"unsigned long long"            # string offset=346
.Linfo_string33:
	.asciz	"t1"                            # string offset=365
	.ident	"clang version 14.0.0 ([email protected]:llvm/llvm-project.git e1e74f6cd6ce41ce8303a5a91f29736808fccc36)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym v1
	.section	.debug_line,"",@progbits
.Lline_table_start0: