shafik updated this revision to Diff 285176.
shafik added a comment.

Replacing python test with Shell test


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D85376/new/

https://reviews.llvm.org/D85376

Files:
  lldb/source/Core/ValueObjectChild.cpp
  lldb/test/Shell/SymbolFile/DWARF/valueobject-pass-by-reg.s

Index: lldb/test/Shell/SymbolFile/DWARF/valueobject-pass-by-reg.s
===================================================================
--- /dev/null
+++ lldb/test/Shell/SymbolFile/DWARF/valueobject-pass-by-reg.s
@@ -0,0 +1,550 @@
+# RUN: llvm-mc -filetype=obj -o %t -triple x86_64-apple-macosx10.15.0 %s
+# RUN: %lldb %t -o "target variable ug" -b | FileCheck %s
+
+# CHECK: (lldb) target variable ug
+# CHECK: (U) ug = {
+# CHECK:   raw = 1688469761
+# CHECK:    = (a = 1, b = 1, c = 36, d = 2, e = 36, f = 1)
+# CHECK: }
+
+# We are testing how ValueObject deals with bit-fields when an argument is
+# passed by register. Compiling at -O1 allows us to capture this case and
+# test it.
+#
+# typedef union
+# {
+#   unsigned raw;
+#   struct
+#   {
+#     unsigned a : 8;
+#     unsigned b : 8;
+#     unsigned c : 6;
+#     unsigned d : 2;
+#     unsigned e : 6;
+#     unsigned f : 2;
+#   } ;
+# } U;
+#
+# static U ug= (U)(unsigned)0x0;
+#
+# void f(U u) {
+#   printf( "%d\n", u.raw);
+#   return;
+# }
+#
+# int main() {
+#   ug.raw = 0x64A40101;
+#
+#   f(ug);
+#   printf( "%d\n", ug.raw);
+# }
+#
+#
+# Compiled as follows:
+#
+#   clang -O1 -gdwarf-4 weird.c -S -o weird.s
+#
+# Then the DWARF was hand modified to get DW_AT_LOCATION for ug from:
+#
+#   DW_AT_location	(DW_OP_addr 0x100002010, DW_OP_deref_size 0x1, DW_OP_constu 0x64a40101, DW_OP_mul, DW_OP_lit0, DW_OP_plus, DW_OP_stack_value)
+#
+# to this:
+#
+#   DW_AT_location	(DW_OP_constu 0x64a40101, DW_OP_stack_value)
+#
+# to work-around a seperate bug.
+#
+# clang is built from llvm.org and the last commit was:
+#
+#  86dea1f39bd127776b999e10dff212003068d30a
+#
+
+	.section	__TEXT,__text,regular,pure_instructions
+	.build_version macos, 10, 15	sdk_version 10, 15, 6
+	.file	1 "/tmp" "weird.c"
+	.globl	_f                      ## -- Begin function f
+	.p2align	4, 0x90
+_f:                                     ## @f
+Lfunc_begin0:
+	.loc	1 16 0                  ## /tmp/weird.c:16:0
+	.cfi_startproc
+## %bb.0:
+	##DEBUG_VALUE: f:u <- $edi
+	pushq	%rbp
+	.cfi_def_cfa_offset 16
+	.cfi_offset %rbp, -16
+	movq	%rsp, %rbp
+	.cfi_def_cfa_register %rbp
+	movl	%edi, %esi
+Ltmp0:
+	##DEBUG_VALUE: f:u <- $esi
+	.loc	1 17 3 prologue_end     ## /tmp/weird.c:17:3
+	leaq	L_.str(%rip), %rdi
+	##DEBUG_VALUE: f:u <- $esi
+	xorl	%eax, %eax
+	callq	_printf
+Ltmp1:
+	.loc	1 18 3                  ## /tmp/weird.c:18:3
+	popq	%rbp
+	retq
+Ltmp2:
+Lfunc_end0:
+	.cfi_endproc
+                                        ## -- End function
+	.globl	_main                   ## -- Begin function main
+	.p2align	4, 0x90
+_main:                                  ## @main
+Lfunc_begin1:
+	.loc	1 20 0                  ## /tmp/weird.c:20:0
+	.cfi_startproc
+## %bb.0:
+	pushq	%rbp
+	.cfi_def_cfa_offset 16
+	.cfi_offset %rbp, -16
+	movq	%rsp, %rbp
+	.cfi_def_cfa_register %rbp
+Ltmp3:
+	pushq	%rbx
+	pushq	%rax
+	.cfi_offset %rbx, -24
+	.loc	1 22 10 prologue_end    ## /tmp/weird.c:22:10
+	movb	$1, _ug.0(%rip)
+	movl	$1688469761, %ebx       ## imm = 0x64A40101
+	.loc	1 26 3                  ## /tmp/weird.c:26:3
+	movl	$1688469761, %edi       ## imm = 0x64A40101
+	callq	_f
+Ltmp4:
+	.loc	1 0 3 is_stmt 0         ## /tmp/weird.c:0:3
+	xorl	%eax, %eax
+	.loc	1 27 22 is_stmt 1       ## /tmp/weird.c:27:22
+	cmpb	$0, _ug.0(%rip)
+	cmovel	%eax, %ebx
+	.loc	1 27 3 is_stmt 0        ## /tmp/weird.c:27:3
+	leaq	L_.str(%rip), %rdi
+	movl	%ebx, %esi
+	xorl	%eax, %eax
+	callq	_printf
+Ltmp5:
+	.loc	1 28 1 is_stmt 1        ## /tmp/weird.c:28:1
+	xorl	%eax, %eax
+	addq	$8, %rsp
+	popq	%rbx
+	popq	%rbp
+	retq
+Ltmp6:
+Lfunc_end1:
+	.cfi_endproc
+                                        ## -- End function
+	.section	__TEXT,__cstring,cstring_literals
+L_.str:                                 ## @.str
+	.asciz	"%d\n"
+
+.zerofill __DATA,__bss,_ug.0,1,2        ## @ug.0
+	.section	__DWARF,__debug_str,regular,debug
+Linfo_string:
+	.asciz	"Apple clang version 12.0.0 (clang-1200.0.31.1)" ## string offset=0
+	.asciz	"/tmp/weird.c"          ## string offset=47
+	.asciz	"/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk" ## string offset=60
+	.asciz	"MacOSX10.15.sdk"       ## string offset=117
+	.asciz	"/Users/friss/dev/stash/xnu" ## string offset=133
+	.asciz	"ug"                    ## string offset=160
+	.asciz	"U"                     ## string offset=163
+	.asciz	"raw"                   ## string offset=165
+	.asciz	"unsigned int"          ## string offset=169
+	.asciz	"a"                     ## string offset=182
+	.asciz	"b"                     ## string offset=184
+	.asciz	"c"                     ## string offset=186
+	.asciz	"d"                     ## string offset=188
+	.asciz	"e"                     ## string offset=190
+	.asciz	"f"                     ## string offset=192
+	.asciz	"main"                  ## string offset=194
+	.asciz	"int"                   ## string offset=199
+	.asciz	"u"                     ## string offset=203
+	.section	__DWARF,__debug_loc,regular,debug
+Lsection_debug_loc:
+Ldebug_loc0:
+.set Lset0, Lfunc_begin0-Lfunc_begin0
+	.quad	Lset0
+.set Lset1, Ltmp0-Lfunc_begin0
+	.quad	Lset1
+	.short	1                       ## Loc expr size
+	.byte	85                      ## super-register DW_OP_reg5
+.set Lset2, Ltmp0-Lfunc_begin0
+	.quad	Lset2
+.set Lset3, Ltmp1-Lfunc_begin0
+	.quad	Lset3
+	.short	1                       ## Loc expr size
+	.byte	84                      ## super-register DW_OP_reg4
+	.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
+	.ascii	"\202|"                 ## DW_AT_LLVM_sysroot
+	.byte	14                      ## DW_FORM_strp
+	.ascii	"\357\177"              ## DW_AT_APPLE_sdk
+	.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	"\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	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	22                      ## DW_TAG_typedef
+	.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	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
+	.byte	23                      ## DW_TAG_union_type
+	.byte	1                       ## DW_CHILDREN_yes
+	.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	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	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	7                       ## Abbreviation Code
+	.byte	19                      ## DW_TAG_structure_type
+	.byte	1                       ## DW_CHILDREN_yes
+	.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	8                       ## 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	13                      ## DW_AT_bit_size
+	.byte	11                      ## DW_FORM_data1
+	.byte	107                     ## DW_AT_data_bit_offset
+	.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	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	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	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	39                      ## DW_AT_prototyped
+	.byte	25                      ## DW_FORM_flag_present
+	.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	11                      ## Abbreviation Code
+	.byte	5                       ## DW_TAG_formal_parameter
+	.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	12                      ## 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	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	13                      ## Abbreviation Code
+	.byte	72                      ## DW_TAG_call_site
+	.byte	1                       ## DW_CHILDREN_yes
+	.byte	127                     ## DW_AT_call_origin
+	.byte	19                      ## DW_FORM_ref4
+	.byte	125                     ## DW_AT_call_return_pc
+	.byte	1                       ## DW_FORM_addr
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	14                      ## Abbreviation Code
+	.byte	73                      ## DW_TAG_call_site_parameter
+	.byte	0                       ## DW_CHILDREN_no
+	.byte	2                       ## DW_AT_location
+	.byte	24                      ## DW_FORM_exprloc
+	.byte	126                     ## DW_AT_call_value
+	.byte	24                      ## DW_FORM_exprloc
+	.byte	0                       ## EOM(1)
+	.byte	0                       ## EOM(2)
+	.byte	0                       ## EOM(3)
+	.section	__DWARF,__debug_info,regular,debug
+Lsection_info:
+Lcu_begin0:
+.set Lset4, Ldebug_info_end0-Ldebug_info_start0 ## Length of Unit
+	.long	Lset4
+Ldebug_info_start0:
+	.short	4                       ## DWARF version number
+.set Lset5, Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section
+	.long	Lset5
+	.byte	8                       ## Address Size (in bytes)
+	.byte	1                       ## Abbrev [1] 0xb:0x125 DW_TAG_compile_unit
+	.long	0                       ## DW_AT_producer
+	.short	12                      ## DW_AT_language
+	.long	47                      ## DW_AT_name
+	.long	60                      ## DW_AT_LLVM_sysroot
+	.long	117                     ## DW_AT_APPLE_sdk
+        .long   0                       ## DW_AT_stmt_list
+	.long	133                     ## DW_AT_comp_dir
+                                        ## DW_AT_APPLE_optimized
+	.quad	Lfunc_begin0            ## DW_AT_low_pc
+.set Lset7, Lfunc_end1-Lfunc_begin0     ## DW_AT_high_pc
+	.long	Lset7
+	.byte	2                       ## Abbrev [2] 0x32:0x21 DW_TAG_variable
+	.long	160                     ## DW_AT_name
+	.long	69                      ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	15                      ## DW_AT_decl_line
+	.byte	7                       ## DW_AT_location
+	.byte	16
+	.ascii	"\201\202\220\245\006"
+	.byte	159
+	.byte	3                       ## Abbrev [3] 0x53:0xb DW_TAG_typedef
+	.long	80                      ## DW_AT_type
+	.long	163                     ## DW_AT_name
+	.byte	1                       ## DW_AT_decl_file
+	.byte	14                      ## DW_AT_decl_line
+	.byte	4                       ## Abbrev [4] 0x5e:0x6c DW_TAG_union_type
+	.byte	4                       ## DW_AT_byte_size
+	.byte	1                       ## DW_AT_decl_file
+	.byte	2                       ## DW_AT_decl_line
+	.byte	5                       ## Abbrev [5] 0x62:0xc DW_TAG_member
+	.long	165                     ## DW_AT_name
+	.long	188                     ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	4                       ## DW_AT_decl_line
+	.byte	0                       ## DW_AT_data_member_location
+	.byte	6                       ## Abbrev [6] 0x6e:0x8 DW_TAG_member
+	.long	104                     ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	5                       ## DW_AT_decl_line
+	.byte	0                       ## DW_AT_data_member_location
+	.byte	7                       ## Abbrev [7] 0x76:0x53 DW_TAG_structure_type
+	.byte	4                       ## DW_AT_byte_size
+	.byte	1                       ## DW_AT_decl_file
+	.byte	5                       ## DW_AT_decl_line
+	.byte	8                       ## Abbrev [8] 0x7a:0xd DW_TAG_member
+	.long	182                     ## DW_AT_name
+	.long	188                     ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	7                       ## DW_AT_decl_line
+	.byte	8                       ## DW_AT_bit_size
+	.byte	0                       ## DW_AT_data_bit_offset
+	.byte	8                       ## Abbrev [8] 0x87:0xd DW_TAG_member
+	.long	184                     ## DW_AT_name
+	.long	188                     ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	8                       ## DW_AT_decl_line
+	.byte	8                       ## DW_AT_bit_size
+	.byte	8                       ## DW_AT_data_bit_offset
+	.byte	8                       ## Abbrev [8] 0x94:0xd DW_TAG_member
+	.long	186                     ## DW_AT_name
+	.long	188                     ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	9                       ## DW_AT_decl_line
+	.byte	6                       ## DW_AT_bit_size
+	.byte	16                      ## DW_AT_data_bit_offset
+	.byte	8                       ## Abbrev [8] 0xa1:0xd DW_TAG_member
+	.long	188                     ## DW_AT_name
+	.long	188                     ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	10                      ## DW_AT_decl_line
+	.byte	2                       ## DW_AT_bit_size
+	.byte	22                      ## DW_AT_data_bit_offset
+	.byte	8                       ## Abbrev [8] 0xae:0xd DW_TAG_member
+	.long	190                     ## DW_AT_name
+	.long	188                     ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	11                      ## DW_AT_decl_line
+	.byte	6                       ## DW_AT_bit_size
+	.byte	24                      ## DW_AT_data_bit_offset
+	.byte	8                       ## Abbrev [8] 0xbb:0xd DW_TAG_member
+	.long	192                     ## DW_AT_name
+	.long	188                     ## DW_AT_type
+	.byte	1                       ## DW_AT_decl_file
+	.byte	12                      ## DW_AT_decl_line
+	.byte	2                       ## DW_AT_bit_size
+	.byte	30                      ## DW_AT_data_bit_offset
+	.byte	0                       ## End Of Children Mark
+	.byte	0                       ## End Of Children Mark
+	.byte	9                       ## Abbrev [9] 0xca:0x7 DW_TAG_base_type
+	.long	169                     ## DW_AT_name
+	.byte	7                       ## DW_AT_encoding
+	.byte	4                       ## DW_AT_byte_size
+	.byte	10                      ## Abbrev [10] 0xd1:0x25 DW_TAG_subprogram
+	.quad	Lfunc_begin0            ## DW_AT_low_pc
+.set Lset8, Lfunc_end0-Lfunc_begin0     ## DW_AT_high_pc
+	.long	Lset8
+	.byte	1                       ## DW_AT_frame_base
+	.byte	86
+                                        ## DW_AT_call_all_calls
+	.long	192                     ## DW_AT_name
+	.byte	1                       ## DW_AT_decl_file
+	.byte	16                      ## DW_AT_decl_line
+                                        ## DW_AT_prototyped
+                                        ## DW_AT_external
+                                        ## DW_AT_APPLE_optimized
+	.byte	11                      ## Abbrev [11] 0xe6:0xf DW_TAG_formal_parameter
+.set Lset9, Ldebug_loc0-Lsection_debug_loc ## DW_AT_location
+	.long	Lset9
+	.long	203                     ## DW_AT_name
+	.byte	1                       ## DW_AT_decl_file
+	.byte	16                      ## DW_AT_decl_line
+	.long	69                      ## DW_AT_type
+	.byte	0                       ## End Of Children Mark
+	.byte	12                      ## Abbrev [12] 0xf6:0x32 DW_TAG_subprogram
+	.quad	Lfunc_begin1            ## DW_AT_low_pc
+.set Lset10, Lfunc_end1-Lfunc_begin1    ## DW_AT_high_pc
+	.long	Lset10
+	.byte	1                       ## DW_AT_frame_base
+	.byte	86
+                                        ## DW_AT_call_all_calls
+	.long	194                     ## DW_AT_name
+	.byte	1                       ## DW_AT_decl_file
+	.byte	20                      ## DW_AT_decl_line
+	.long	282                     ## DW_AT_type
+                                        ## DW_AT_external
+                                        ## DW_AT_APPLE_optimized
+	.byte	13                      ## Abbrev [13] 0x10f:0x18 DW_TAG_call_site
+	.long	195                     ## DW_AT_call_origin
+	.quad	Ltmp4                   ## DW_AT_call_return_pc
+	.byte	14                      ## Abbrev [14] 0x11c:0xa DW_TAG_call_site_parameter
+	.byte	1                       ## DW_AT_location
+	.byte	85
+	.byte	6                       ## DW_AT_call_value
+	.byte	16
+	.ascii	"\201\202\220\245\006"
+	.byte	0                       ## End Of Children Mark
+	.byte	0                       ## End Of Children Mark
+	.byte	9                       ## Abbrev [9] 0x128:0x7 DW_TAG_base_type
+	.long	199                     ## DW_AT_name
+	.byte	5                       ## DW_AT_encoding
+	.byte	4                       ## DW_AT_byte_size
+	.byte	0                       ## End Of Children Mark
+Ldebug_info_end0:
Index: lldb/source/Core/ValueObjectChild.cpp
===================================================================
--- lldb/source/Core/ValueObjectChild.cpp
+++ lldb/source/Core/ValueObjectChild.cpp
@@ -199,11 +199,7 @@
           // try to extract the child value from the parent's scalar value
           {
             Scalar scalar(m_value.GetScalar());
-            if (m_bitfield_bit_size)
-              scalar.ExtractBitfield(m_bitfield_bit_size,
-                                     m_bitfield_bit_offset);
-            else
-              scalar.ExtractBitfield(8 * m_byte_size, 8 * m_byte_offset);
+            scalar.ExtractBitfield(8 * m_byte_size, 8 * m_byte_offset);
             m_value.GetScalar() = scalar;
           }
           break;
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to