| // RUN: llvm-mc -triple x86_64-apple-macos10.6 -filetype=obj %s -o %t.o | 
 | // RUN: llvm-objdump --macho --unwind-info --dwarf=frames %t.o | FileCheck %s | 
 |  | 
 | /// For functions whose unwind info cannot be encoded with compact unwind, make | 
 | /// sure that we encode them using DWARF unwind, and make sure we emit a compact | 
 | /// unwind entry that indicates that a DWARF encoding is being used. | 
 |  | 
 | _f: | 
 |   .cfi_startproc | 
 |   ## This encodes DW_CFA_GNU_args_size which cannot be expressed using compact | 
 |   ## unwind, so we must use DWARF unwind instead. | 
 |   .cfi_escape 0x2e, 0x10 | 
 |   ret | 
 |   .cfi_endproc | 
 |  | 
 | _g: | 
 |   .cfi_startproc | 
 |   ## This encodes DW_CFA_GNU_args_size which cannot be expressed using compact | 
 |   ## unwind, so we must use DWARF unwind instead. | 
 |   .cfi_escape 0x2e, 0x10 | 
 |   ret | 
 |   .cfi_endproc | 
 |  | 
 | // CHECK: Contents of __compact_unwind section: | 
 | // CHECK:   Entry at offset 0x0: | 
 | // CHECK:     start:                0x[[#%x,F:]] _f | 
 | // CHECK:     length:               0x1 | 
 | // CHECK:     compact encoding:     0x04000000 | 
 | // CHECK:   Entry at offset 0x20: | 
 | // CHECK:     start:                0x[[#%x,G:]] _g | 
 | // CHECK:     length:               0x1 | 
 | // CHECK:     compact encoding:     0x04000000 | 
 |  | 
 | // CHECK: .eh_frame contents: | 
 | // CHECK: 00000000 00000014 00000000 CIE | 
 | // CHECK:   Format:                DWARF32 | 
 | // CHECK:   Version:               1 | 
 | // CHECK:   Augmentation:          "zR" | 
 | // CHECK:   Code alignment factor: 1 | 
 | // CHECK:   Data alignment factor: -8 | 
 | // CHECK:   Return address column: 16 | 
 | // CHECK:   Augmentation data:     10 | 
 |  | 
 | // CHECK: FDE cie=00000000 pc=[[#%.8x,F]]... | 
 | // CHECK:   Format:       DWARF32 | 
 | // CHECK:   DW_CFA_GNU_args_size: +16 | 
 |  | 
 | // CHECK: FDE cie=00000000 pc=[[#%.8x,G]]... | 
 | // CHECK:   Format:       DWARF32 | 
 | // CHECK:   DW_CFA_GNU_args_size: +16 |