|  | # RUN: llvm-mc -triple x86_64-unknown-linux %s -filetype=obj -o - | \ | 
|  | # RUN:  llvm-dwarfdump -debug-aranges - 2>&1 | \ | 
|  | # RUN:  FileCheck %s | 
|  |  | 
|  | .section .debug_aranges,"",@progbits | 
|  | # CHECK: .debug_aranges contents: | 
|  |  | 
|  | ## Case 1: Check that an empty set of ranges is supported. | 
|  | .long   .L1end - .L1version     # Length | 
|  | # CHECK: Address Range Header: length = 0x00000014, | 
|  | .L1version: | 
|  | .short  2                       # Version | 
|  | .long   0x3456789a              # Debug Info Offset | 
|  | .byte   4                       # Address Size | 
|  | .byte   0                       # Segment Selector Size | 
|  | # CHECK-SAME: version = 0x0002, | 
|  | # CHECK-SAME: cu_offset = 0x3456789a, | 
|  | # CHECK-SAME: addr_size = 0x04, | 
|  | # CHECK-SAME: seg_size = 0x00 | 
|  | .space 4                        # Padding | 
|  | .L1tuples: | 
|  | .long   0, 0                    # Termination tuple | 
|  | # CHECK-NOT: [0x | 
|  | .L1end: | 
|  |  | 
|  | ## Case 2: Check that the address size of 4 is supported. | 
|  | .long   .L2end - .L2version     # Length | 
|  | # CHECK: Address Range Header: length = 0x0000001c, | 
|  | .L2version: | 
|  | .short  2                       # Version | 
|  | .long   0x112233                # Debug Info Offset | 
|  | .byte   4                       # Address Size | 
|  | .byte   0                       # Segment Selector Size | 
|  | # CHECK-SAME: version = 0x0002, | 
|  | # CHECK-SAME: cu_offset = 0x00112233, | 
|  | # CHECK-SAME: addr_size = 0x04, | 
|  | # CHECK-SAME: seg_size = 0x00 | 
|  | .space  4                       # Padding | 
|  | .L2tuples: | 
|  | .long   0x11223344, 0x01020304  # Address and length | 
|  | # CHECK-NEXT: [0x11223344,  0x12243648) | 
|  | .long   0, 0                    # Termination tuple | 
|  | # CHECK-NOT: [0x | 
|  | .L2end: | 
|  |  | 
|  | ## Case 3: Check that the address size of 8 is also supported. | 
|  | .long   .L3end - .L3version     # Length | 
|  | # CHECK: Address Range Header: length = 0x0000002c, | 
|  | .L3version: | 
|  | .short  2                       # Version | 
|  | .long   0x112233                # Debug Info Offset | 
|  | .byte   8                       # Address Size | 
|  | .byte   0                       # Segment Selector Size | 
|  | # CHECK-SAME: version = 0x0002, | 
|  | # CHECK-SAME: cu_offset = 0x00112233, | 
|  | # CHECK-SAME: addr_size = 0x08, | 
|  | # CHECK-SAME: seg_size = 0x00 | 
|  | .space  4                       # Padding | 
|  | .L3tuples: | 
|  | .quad   0x1122334455667788      # Address | 
|  | .quad   0x0102030405060708      # Length | 
|  | # CHECK-NEXT: [0x1122334455667788,  0x122436485a6c7e90) | 
|  | .quad   0, 0                    # Termination tuple | 
|  | # CHECK-NOT: [0x | 
|  | .L3end: | 
|  |  | 
|  | ## Case 4: Check that 64-bit DWARF format is supported. | 
|  | .long 0xffffffff                # DWARF64 mark | 
|  | .quad   .L4end - .L4version     # Length | 
|  | # CHECK: Address Range Header: length = 0x000000000000001c, | 
|  | # CHECK-SAME: format = DWARF64, | 
|  | .L4version: | 
|  | .short  2                       # Version | 
|  | .quad   0x123456789abc          # Debug Info Offset | 
|  | .byte   4                       # Address Size | 
|  | .byte   0                       # Segment Selector Size | 
|  | # CHECK-SAME: version = 0x0002, | 
|  | # CHECK-SAME: cu_offset = 0x0000123456789abc, | 
|  | # CHECK-SAME: addr_size = 0x04, | 
|  | # CHECK-SAME: seg_size = 0x00 | 
|  | # No padding | 
|  | .L4tuples: | 
|  | .long   0, 1                    # Address and length | 
|  | # CHECK-NEXT: [0x00000000,  0x00000001) | 
|  | .long   0, 0                    # Termination tuple | 
|  | # CHECK-NOT: [0x | 
|  | .L4end: |