Index: llvm/trunk/lib/DebugInfo/DWARF/DWARFFormValue.cpp
===================================================================
--- llvm/trunk/lib/DebugInfo/DWARF/DWARFFormValue.cpp
+++ llvm/trunk/lib/DebugInfo/DWARF/DWARFFormValue.cpp
@@ -220,13 +220,17 @@
   default:
     break;
   }
-  // In DWARF3 DW_FORM_data4 and DW_FORM_data8 served also as a section offset.
-  // Don't check for DWARF version here, as some producers may still do this
-  // by mistake. Also accept DW_FORM_[line_]strp since these are
-  // .debug_[line_]str section offsets.
-  return (Form == DW_FORM_data4 || Form == DW_FORM_data8 ||
-          Form == DW_FORM_strp || Form == DW_FORM_line_strp) &&
-         FC == FC_SectionOffset;
+
+  if (FC == FC_SectionOffset) {
+    if (Form == DW_FORM_strp || Form == DW_FORM_line_strp)
+      return true;
+    // In DWARF3 DW_FORM_data4 and DW_FORM_data8 served also as a section
+    // offset. If we don't have a DWARFUnit, default to the old behavior.
+    if (Form == DW_FORM_data4 || Form == DW_FORM_data8)
+      return !U || U->getVersion() <= 3;
+  }
+
+  return false;
 }
 
 bool DWARFFormValue::extractValue(const DWARFDataExtractor &Data,
Index: llvm/trunk/test/tools/llvm-dwarfdump/X86/formclass2.s
===================================================================
--- llvm/trunk/test/tools/llvm-dwarfdump/X86/formclass2.s
+++ llvm/trunk/test/tools/llvm-dwarfdump/X86/formclass2.s
@@ -0,0 +1,315 @@
+# Source:
+#   struct e {
+#     char f[16384];
+#     char g;
+#   };
+#   e foo() {
+#     auto E = new e;
+#     return *E;
+#   }
+# Compile with:
+#   clang -O2 -gdwarf-2 -S a.cpp -o a2.s
+
+# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o %t.o
+# RUN: llvm-dwarfdump -debug-info -name g %t.o | FileCheck %s
+
+# CHECK: DW_TAG_member
+# CHECK: DW_AT_name ("g")
+# CHECK: DW_AT_data_member_location (DW_OP_plus_uconst 0x4000)
+
+	.section	__TEXT,__text,regular,pure_instructions
+	.macosx_version_min 10, 14
+	.globl	__Z3foov                ## -- Begin function _Z3foov
+	.p2align	4, 0x90
+__Z3foov:                               ## @_Z3foov
+Lfunc_begin0:
+	.file	1 "/private/tmp" "a.cpp"
+	.loc	1 5 0                   ## a.cpp:5:0
+	.cfi_startproc
+## %bb.0:                               ## %entry
+	pushq	%rbp
+	.cfi_def_cfa_offset 16
+	.cfi_offset %rbp, -16
+	movq	%rsp, %rbp
+	.cfi_def_cfa_register %rbp
+	pushq	%rbx
+	pushq	%rax
+	.cfi_offset %rbx, -24
+	movq	%rdi, %rbx
+Ltmp0:
+	.loc	1 6 12 prologue_end     ## a.cpp:6:12
+	movl	$16385, %edi            ## imm = 0x4001
+	callq	__Znwm
+Ltmp1:
+	##DEBUG_VALUE: foo:E <- $rax
+	.loc	1 7 10                  ## a.cpp:7:10
+	movl	$16385, %edx            ## imm = 0x4001
+	movq	%rbx, %rdi
+	movq	%rax, %rsi
+	callq	_memcpy
+Ltmp2:
+	.loc	1 8 1                   ## a.cpp:8:1
+	movq	%rbx, %rax
+	addq	$8, %rsp
+	popq	%rbx
+	popq	%rbp
+	retq
+Ltmp3:
+Lfunc_end0:
+	.cfi_endproc
+                                        ## -- End function
+	.section	__DWARF,__debug_str,regular,debug
+Linfo_string:
+	.asciz	"clang version 9.0.0 (git@github.com:llvm/llvm-project.git 10de39548976ae224709acdc1c337e33cf12f3c0)" ## string offset=0
+	.asciz	"a.cpp"                 ## string offset=100
+	.asciz	"/private/tmp"          ## string offset=106
+	.asciz	"foo"                   ## string offset=119
+	.asciz	"_Z3foov"               ## string offset=123
+	.asciz	"e"                     ## string offset=131
+	.asciz	"f"                     ## string offset=133
+	.asciz	"char"                  ## string offset=135
+	.asciz	"__ARRAY_SIZE_TYPE__"   ## string offset=140
+	.asciz	"g"                     ## string offset=160
+	.asciz	"E"                     ## string offset=162
+	.section	__DWARF,__debug_loc,regular,debug
+Lsection_debug_loc:
+Ldebug_loc0:
+.set Lset0, Ltmp1-Lfunc_begin0
+	.quad	Lset0
+.set Lset1, Ltmp2-Lfunc_begin0
+	.quad	Lset1
+	.short	1                       ## Loc expr size
+	.byte	80                      ## DW_OP_reg0
+	.quad	0
+	.quad	0
+	.section	__DWARF,__debug_abbrev,regular,debug
+Lsection_abbrev:
+	.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	6                       ## DW_FORM_data4
+	.byte	27                      ## DW_AT_comp_dir
+	.byte	14                      ## DW_FORM_strp
+	.ascii	"\264B"                 ## DW_AT_GNU_pubnames
+	.byte	12                      ## DW_FORM_flag
+	.ascii	"\341\177"              ## DW_AT_APPLE_optimized
+	.byte	12                      ## DW_FORM_flag
+	.byte	17                      ## DW_AT_low_pc
+	.byte	1                       ## DW_FORM_addr
+	.byte	18                      ## DW_AT_high_pc
+	.byte	1                       ## DW_FORM_addr
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	2                       ## Abbreviation Code
+	.byte	46                      ## DW_TAG_subprogram
+	.byte	1                       ## DW_CHILDREN_yes
+	.byte	17                      ## DW_AT_low_pc
+	.byte	1                       ## DW_FORM_addr
+	.byte	18                      ## DW_AT_high_pc
+	.byte	1                       ## DW_FORM_addr
+	.byte	64                      ## DW_AT_frame_base
+	.byte	10                      ## DW_FORM_block1
+	.ascii	"\207@"                 ## DW_AT_MIPS_linkage_name
+	.byte	14                      ## DW_FORM_strp
+	.byte	3                       ## DW_AT_name
+	.byte	14                      ## DW_FORM_strp
+	.byte	58                      ## DW_AT_decl_file
+	.byte	11                      ## DW_FORM_data1
+	.byte	59                      ## DW_AT_decl_line
+	.byte	11                      ## DW_FORM_data1
+	.byte	73                      ## DW_AT_type
+	.byte	19                      ## DW_FORM_ref4
+	.byte	63                      ## DW_AT_external
+	.byte	12                      ## DW_FORM_flag
+	.ascii	"\341\177"              ## DW_AT_APPLE_optimized
+	.byte	12                      ## DW_FORM_flag
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	3                       ## Abbreviation Code
+	.byte	52                      ## DW_TAG_variable
+	.byte	0                       ## DW_CHILDREN_no
+	.byte	2                       ## DW_AT_location
+	.byte	6                       ## DW_FORM_data4
+	.byte	3                       ## DW_AT_name
+	.byte	14                      ## DW_FORM_strp
+	.byte	58                      ## DW_AT_decl_file
+	.byte	11                      ## DW_FORM_data1
+	.byte	59                      ## DW_AT_decl_line
+	.byte	11                      ## DW_FORM_data1
+	.byte	73                      ## DW_AT_type
+	.byte	19                      ## DW_FORM_ref4
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	4                       ## 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	5                       ## DW_FORM_data2
+	.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	5                       ## Abbreviation Code
+	.byte	13                      ## DW_TAG_member
+	.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	56                      ## DW_AT_data_member_location
+	.byte	10                      ## DW_FORM_block1
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	6                       ## 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	7                       ## 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	5                       ## DW_FORM_data2
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	8                       ## 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	9                       ## 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	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	0                       ## EOM(3)
+	.section	__DWARF,__debug_info,regular,debug
+Lsection_info:
+Lcu_begin0:
+.set Lset2, Ldebug_info_end0-Ldebug_info_start0 ## Length of Unit
+	.long	Lset2
+Ldebug_info_start0:
+	.short	2                       ## DWARF version number
+.set Lset3, Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section
+	.long	Lset3
+	.byte	8                       ## Address Size (in bytes)
+	.byte	1                       ## Abbrev [1] 0xb:0xa2 DW_TAG_compile_unit
+	.long	0                       ## DW_AT_producer
+	.short	4                       ## DW_AT_language
+	.long	100                     ## DW_AT_name
+.set Lset4, Lline_table_start0-Lsection_line ## DW_AT_stmt_list
+	.long	Lset4
+	.long	106                     ## DW_AT_comp_dir
+	.byte	1                       ## DW_AT_GNU_pubnames
+	.byte	1                       ## DW_AT_APPLE_optimized
+	.quad	Lfunc_begin0            ## DW_AT_low_pc
+	.quad	Lfunc_end0              ## DW_AT_high_pc
+	.byte	2                       ## Abbrev [2] 0x30:0x33 DW_TAG_subprogram
+	.quad	Lfunc_begin0            ## DW_AT_low_pc
+	.quad	Lfunc_end0              ## DW_AT_high_pc
+	.byte	1                       ## DW_AT_frame_base
+	.byte	86
+	.long	123                     ## DW_AT_MIPS_linkage_name
+	.long	119                     ## DW_AT_name
+	.byte	1                       ## DW_AT_decl_file
+	.byte	5                       ## DW_AT_decl_line
+	.long	99                      ## DW_AT_type
+	.byte	1                       ## DW_AT_external
+	.byte	1                       ## DW_AT_APPLE_optimized
+	.byte	3                       ## Abbrev [3] 0x53:0xf DW_TAG_variable
+.set Lset5, Ldebug_loc0-Lsection_debug_loc ## DW_AT_location
+	.long	Lset5
+	.long	162                     ## DW_AT_name
+	.byte	1                       ## DW_AT_decl_file
+	.byte	6                       ## DW_AT_decl_line
+	.long	167                     ## DW_AT_type
+	.byte	0                       ## End Of Children Mark
+	.byte	4                       ## Abbrev [4] 0x63:0x29 DW_TAG_structure_type
+	.byte	5                       ## DW_AT_calling_convention
+	.long	131                     ## DW_AT_name
+	.short	16385                   ## DW_AT_byte_size
+	.byte	1                       ## DW_AT_decl_file
+	.byte	1                       ## DW_AT_decl_line
+	.byte	5                       ## Abbrev [5] 0x6d:0xe DW_TAG_member
+	.long	133                     ## DW_AT_name
+	.long	140                     ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	2                       ## DW_AT_decl_line
+	.byte	2                       ## DW_AT_data_member_location
+	.byte	35
+	.byte	0
+	.byte	5                       ## Abbrev [5] 0x7b:0x10 DW_TAG_member
+	.long	160                     ## DW_AT_name
+	.long	153                     ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	3                       ## DW_AT_decl_line
+	.byte	4                       ## DW_AT_data_member_location
+	.byte	35
+	.ascii	"\200\200\001"
+	.byte	0                       ## End Of Children Mark
+	.byte	6                       ## Abbrev [6] 0x8c:0xd DW_TAG_array_type
+	.long	153                     ## DW_AT_type
+	.byte	7                       ## Abbrev [7] 0x91:0x7 DW_TAG_subrange_type
+	.long	160                     ## DW_AT_type
+	.short	16384                   ## DW_AT_count
+	.byte	0                       ## End Of Children Mark
+	.byte	8                       ## Abbrev [8] 0x99:0x7 DW_TAG_base_type
+	.long	135                     ## DW_AT_name
+	.byte	6                       ## DW_AT_encoding
+	.byte	1                       ## DW_AT_byte_size
+	.byte	9                       ## Abbrev [9] 0xa0:0x7 DW_TAG_base_type
+	.long	140                     ## DW_AT_name
+	.byte	8                       ## DW_AT_byte_size
+	.byte	7                       ## DW_AT_encoding
+	.byte	10                      ## Abbrev [10] 0xa7:0x5 DW_TAG_pointer_type
+	.long	99                      ## DW_AT_type
+	.byte	0                       ## End Of Children Mark
+Ldebug_info_end0:
+	.section	__DWARF,__debug_macinfo,regular,debug
+Ldebug_macinfo:
+	.byte	0                       ## End Of Macro List Mark
+
+.subsections_via_symbols
+	.section	__DWARF,__debug_line,regular,debug
+Lsection_line:
+Lline_table_start0:
Index: llvm/trunk/test/tools/llvm-dwarfdump/X86/formclass4.s
===================================================================
--- llvm/trunk/test/tools/llvm-dwarfdump/X86/formclass4.s
+++ llvm/trunk/test/tools/llvm-dwarfdump/X86/formclass4.s
@@ -0,0 +1,331 @@
+# Source:
+#   struct e {
+#     enum {} f[16384];
+#     short g;
+#   };
+#   e foo() {
+#     auto E = new e;
+#     return *E;
+#   }
+# Compile with:
+#   clang -O2 -gdwarf-4 -S a.cpp -o a4.s
+
+# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o %t.o
+# RUN: llvm-dwarfdump -debug-info -name g %t.o | FileCheck %s
+
+# CHECK: DW_TAG_member
+# CHECK: DW_AT_name ("g")
+# CHECK: DW_AT_data_member_location    (0x4000)
+
+	.section	__TEXT,__text,regular,pure_instructions
+	.macosx_version_min 10, 14
+	.globl	__Z3foov                ## -- Begin function _Z3foov
+	.p2align	4, 0x90
+__Z3foov:                               ## @_Z3foov
+Lfunc_begin0:
+	.file	1 "/private/tmp" "a.cpp"
+	.loc	1 5 0                   ## a.cpp:5:0
+	.cfi_startproc
+## %bb.0:                               ## %entry
+	pushq	%rbp
+	.cfi_def_cfa_offset 16
+	.cfi_offset %rbp, -16
+	movq	%rsp, %rbp
+	.cfi_def_cfa_register %rbp
+	pushq	%rbx
+	pushq	%rax
+	.cfi_offset %rbx, -24
+	movq	%rdi, %rbx
+Ltmp0:
+	.loc	1 6 12 prologue_end     ## a.cpp:6:12
+	movl	$16385, %edi            ## imm = 0x4001
+	callq	__Znwm
+Ltmp1:
+	##DEBUG_VALUE: foo:E <- $rax
+	.loc	1 7 10                  ## a.cpp:7:10
+	movl	$16385, %edx            ## imm = 0x4001
+	movq	%rbx, %rdi
+	movq	%rax, %rsi
+	callq	_memcpy
+Ltmp2:
+	.loc	1 8 1                   ## a.cpp:8:1
+	movq	%rbx, %rax
+	addq	$8, %rsp
+	popq	%rbx
+	popq	%rbp
+	retq
+Ltmp3:
+Lfunc_end0:
+	.cfi_endproc
+                                        ## -- End function
+	.section	__DWARF,__debug_str,regular,debug
+Linfo_string:
+	.asciz	"clang version 9.0.0 (git@github.com:llvm/llvm-project.git 10de39548976ae224709acdc1c337e33cf12f3c0)" ## string offset=0
+	.asciz	"a.cpp"                 ## string offset=100
+	.asciz	"/private/tmp"          ## string offset=106
+	.asciz	"foo"                   ## string offset=119
+	.asciz	"_Z3foov"               ## string offset=123
+	.asciz	"e"                     ## string offset=131
+	.asciz	"f"                     ## string offset=133
+	.asciz	"char"                  ## string offset=135
+	.asciz	"__ARRAY_SIZE_TYPE__"   ## string offset=140
+	.asciz	"g"                     ## string offset=160
+	.asciz	"E"                     ## string offset=162
+	.section	__DWARF,__debug_loc,regular,debug
+Lsection_debug_loc:
+Ldebug_loc0:
+.set Lset0, Ltmp1-Lfunc_begin0
+	.quad	Lset0
+.set Lset1, Ltmp2-Lfunc_begin0
+	.quad	Lset1
+	.short	1                       ## Loc expr size
+	.byte	80                      ## DW_OP_reg0
+	.quad	0
+	.quad	0
+	.section	__DWARF,__debug_abbrev,regular,debug
+Lsection_abbrev:
+	.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
+	.ascii	"\264B"                 ## DW_AT_GNU_pubnames
+	.byte	25                      ## DW_FORM_flag_present
+	.ascii	"\341\177"              ## DW_AT_APPLE_optimized
+	.byte	25                      ## DW_FORM_flag_present
+	.byte	17                      ## DW_AT_low_pc
+	.byte	1                       ## DW_FORM_addr
+	.byte	18                      ## DW_AT_high_pc
+	.byte	6                       ## DW_FORM_data4
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	2                       ## Abbreviation Code
+	.byte	46                      ## DW_TAG_subprogram
+	.byte	1                       ## DW_CHILDREN_yes
+	.byte	17                      ## DW_AT_low_pc
+	.byte	1                       ## DW_FORM_addr
+	.byte	18                      ## DW_AT_high_pc
+	.byte	6                       ## DW_FORM_data4
+	.byte	64                      ## DW_AT_frame_base
+	.byte	24                      ## DW_FORM_exprloc
+	.byte	122                     ## DW_AT_call_all_calls
+	.byte	25                      ## DW_FORM_flag_present
+	.byte	110                     ## DW_AT_linkage_name
+	.byte	14                      ## DW_FORM_strp
+	.byte	3                       ## DW_AT_name
+	.byte	14                      ## DW_FORM_strp
+	.byte	58                      ## DW_AT_decl_file
+	.byte	11                      ## DW_FORM_data1
+	.byte	59                      ## DW_AT_decl_line
+	.byte	11                      ## DW_FORM_data1
+	.byte	73                      ## DW_AT_type
+	.byte	19                      ## DW_FORM_ref4
+	.byte	63                      ## DW_AT_external
+	.byte	25                      ## DW_FORM_flag_present
+	.ascii	"\341\177"              ## DW_AT_APPLE_optimized
+	.byte	25                      ## DW_FORM_flag_present
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	3                       ## Abbreviation Code
+	.byte	52                      ## DW_TAG_variable
+	.byte	0                       ## DW_CHILDREN_no
+	.byte	2                       ## DW_AT_location
+	.byte	23                      ## DW_FORM_sec_offset
+	.byte	3                       ## DW_AT_name
+	.byte	14                      ## DW_FORM_strp
+	.byte	58                      ## DW_AT_decl_file
+	.byte	11                      ## DW_FORM_data1
+	.byte	59                      ## DW_AT_decl_line
+	.byte	11                      ## DW_FORM_data1
+	.byte	73                      ## DW_AT_type
+	.byte	19                      ## DW_FORM_ref4
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	4                       ## 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	5                       ## DW_FORM_data2
+	.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	5                       ## Abbreviation Code
+	.byte	13                      ## DW_TAG_member
+	.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	56                      ## DW_AT_data_member_location
+	.byte	11                      ## DW_FORM_data1
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	6                       ## Abbreviation Code
+	.byte	13                      ## DW_TAG_member
+	.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	56                      ## DW_AT_data_member_location
+	.byte	5                       ## DW_FORM_data2
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	7                       ## 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	8                       ## 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	5                       ## DW_FORM_data2
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	9                       ## 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	10                      ## 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	11                      ## 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	0                       ## EOM(3)
+	.section	__DWARF,__debug_info,regular,debug
+Lsection_info:
+Lcu_begin0:
+.set Lset2, Ldebug_info_end0-Ldebug_info_start0 ## Length of Unit
+	.long	Lset2
+Ldebug_info_start0:
+	.short	4                       ## DWARF version number
+.set Lset3, Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section
+	.long	Lset3
+	.byte	8                       ## Address Size (in bytes)
+	.byte	1                       ## Abbrev [1] 0xb:0x91 DW_TAG_compile_unit
+	.long	0                       ## DW_AT_producer
+	.short	4                       ## DW_AT_language
+	.long	100                     ## DW_AT_name
+.set Lset4, Lline_table_start0-Lsection_line ## DW_AT_stmt_list
+	.long	Lset4
+	.long	106                     ## DW_AT_comp_dir
+                                        ## DW_AT_GNU_pubnames
+                                        ## DW_AT_APPLE_optimized
+	.quad	Lfunc_begin0            ## DW_AT_low_pc
+.set Lset5, Lfunc_end0-Lfunc_begin0     ## DW_AT_high_pc
+	.long	Lset5
+	.byte	2                       ## Abbrev [2] 0x2a:0x2d DW_TAG_subprogram
+	.quad	Lfunc_begin0            ## DW_AT_low_pc
+.set Lset6, Lfunc_end0-Lfunc_begin0     ## DW_AT_high_pc
+	.long	Lset6
+	.byte	1                       ## DW_AT_frame_base
+	.byte	86
+                                        ## DW_AT_call_all_calls
+	.long	123                     ## DW_AT_linkage_name
+	.long	119                     ## DW_AT_name
+	.byte	1                       ## DW_AT_decl_file
+	.byte	5                       ## DW_AT_decl_line
+	.long	87                      ## DW_AT_type
+                                        ## DW_AT_external
+                                        ## DW_AT_APPLE_optimized
+	.byte	3                       ## Abbrev [3] 0x47:0xf DW_TAG_variable
+.set Lset7, Ldebug_loc0-Lsection_debug_loc ## DW_AT_location
+	.long	Lset7
+	.long	162                     ## DW_AT_name
+	.byte	1                       ## DW_AT_decl_file
+	.byte	6                       ## DW_AT_decl_line
+	.long	150                     ## DW_AT_type
+	.byte	0                       ## End Of Children Mark
+	.byte	4                       ## Abbrev [4] 0x57:0x24 DW_TAG_structure_type
+	.byte	5                       ## DW_AT_calling_convention
+	.long	131                     ## DW_AT_name
+	.short	16385                   ## DW_AT_byte_size
+	.byte	1                       ## DW_AT_decl_file
+	.byte	1                       ## DW_AT_decl_line
+	.byte	5                       ## Abbrev [5] 0x61:0xc DW_TAG_member
+	.long	133                     ## DW_AT_name
+	.long	123                     ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	2                       ## DW_AT_decl_line
+	.byte	0                       ## DW_AT_data_member_location
+	.byte	6                       ## Abbrev [6] 0x6d:0xd DW_TAG_member
+	.long	160                     ## DW_AT_name
+	.long	136                     ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	3                       ## DW_AT_decl_line
+	.short	16384                   ## DW_AT_data_member_location
+	.byte	0                       ## End Of Children Mark
+	.byte	7                       ## Abbrev [7] 0x7b:0xd DW_TAG_array_type
+	.long	136                     ## DW_AT_type
+	.byte	8                       ## Abbrev [8] 0x80:0x7 DW_TAG_subrange_type
+	.long	143                     ## DW_AT_type
+	.short	16384                   ## DW_AT_count
+	.byte	0                       ## End Of Children Mark
+	.byte	9                       ## Abbrev [9] 0x88:0x7 DW_TAG_base_type
+	.long	135                     ## DW_AT_name
+	.byte	6                       ## DW_AT_encoding
+	.byte	1                       ## DW_AT_byte_size
+	.byte	10                      ## Abbrev [10] 0x8f:0x7 DW_TAG_base_type
+	.long	140                     ## DW_AT_name
+	.byte	8                       ## DW_AT_byte_size
+	.byte	7                       ## DW_AT_encoding
+	.byte	11                      ## Abbrev [11] 0x96:0x5 DW_TAG_pointer_type
+	.long	87                      ## DW_AT_type
+	.byte	0                       ## End Of Children Mark
+Ldebug_info_end0:
+	.section	__DWARF,__debug_macinfo,regular,debug
+Ldebug_macinfo:
+	.byte	0                       ## End Of Macro List Mark
+
+.subsections_via_symbols
+	.section	__DWARF,__debug_line,regular,debug
+Lsection_line:
+Lline_table_start0: