diff options
Diffstat (limited to 'test/tools')
18 files changed, 380 insertions, 7 deletions
diff --git a/test/tools/llvm-dwarfdump/X86/apple_names_verify_buckets.s b/test/tools/llvm-dwarfdump/X86/apple_names_verify_buckets.s index 903153c79a48..7b61a946281b 100644 --- a/test/tools/llvm-dwarfdump/X86/apple_names_verify_buckets.s +++ b/test/tools/llvm-dwarfdump/X86/apple_names_verify_buckets.s @@ -3,7 +3,7 @@ # RUN: | FileCheck %s # CHECK: Verifying .apple_names... -# CHECK-NEXT: error: +# CHECK-NEXT: error: Bucket[0] has invalid hash index: [-2] # This test is meant to verify that the -verify option # in llvm-dwarfdump, correctly identifies diff --git a/test/tools/llvm-dwarfdump/X86/no_apple_names_verify_buckets.s b/test/tools/llvm-dwarfdump/X86/no_apple_names_verify_buckets.s new file mode 100644 index 000000000000..472ff71794c6 --- /dev/null +++ b/test/tools/llvm-dwarfdump/X86/no_apple_names_verify_buckets.s @@ -0,0 +1,174 @@ +# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o - \ +# RUN: | not llvm-dwarfdump -verify - \ +# RUN: | FileCheck %s + +# CHECK-NOT: Verifying .apple_names... + +# This test is meant to verify that the -verify option +# in llvm-dwarfdump doesn't produce any .apple_names related +# output when there's no such section int he object. +# The test was manually modified to exclude the +# .apple_names section from the apple_names_verify_buckets.s +# test file in the same directory. + + .section __TEXT,__text,regular,pure_instructions + .file 1 "basic.c" + .comm _i,4,2 ## @i + .section __DWARF,__debug_str,regular,debug +Linfo_string: + .asciz "basic.c" ## string offset=42 + .asciz "i" ## string offset=84 + .asciz "int" ## string offset=86 + .section __DWARF,__debug_loc,regular,debug +Lsection_debug_loc: + .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 + .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 63 ## DW_AT_external + .byte 25 ## DW_FORM_flag_present + .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 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 0 ## EOM(3) + .section __DWARF,__debug_info,regular,debug +Lsection_info: +Lcu_begin0: + .long 55 ## Length of Unit + .short 4 ## DWARF version number +Lset0 = Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section + .long Lset0 + .byte 8 ## Address Size (in bytes) + .byte 1 ## Abbrev [1] 0xb:0x30 DW_TAG_compile_unit + .long 0 ## DW_AT_producer + .short 12 ## DW_AT_language + .long 42 ## DW_AT_name +Lset1 = Lline_table_start0-Lsection_line ## DW_AT_stmt_list + .long Lset1 + .long 50 ## DW_AT_comp_dir + .byte 2 ## Abbrev [2] 0x1e:0x15 DW_TAG_variable + .long 84 ## DW_AT_name + .long 51 ## DW_AT_type + ## DW_AT_external + .byte 1 ## DW_AT_decl_file + .byte 1 ## DW_AT_decl_line + .byte 9 ## DW_AT_location + .byte 3 + .quad _i + .byte 3 ## Abbrev [3] 0x33:0x7 DW_TAG_base_type + .long 86 ## DW_AT_name + .byte 5 ## DW_AT_encoding + .byte 4 ## DW_AT_byte_size + .byte 0 ## End Of Children Mark + .section __DWARF,__debug_ranges,regular,debug +Ldebug_range: + .section __DWARF,__debug_macinfo,regular,debug +Ldebug_macinfo: +Lcu_macro_begin0: + .byte 0 ## End Of Macro List Mark + .section __DWARF,__apple_objc,regular,debug +Lobjc_begin: + .long 1212240712 ## Header Magic + .short 1 ## Header Version + .short 0 ## Header Hash Function + .long 1 ## Header Bucket Count + .long 0 ## Header Hash Count + .long 12 ## Header Data Length + .long 0 ## HeaderData Die Offset Base + .long 1 ## HeaderData Atom Count + .short 1 ## DW_ATOM_die_offset + .short 6 ## DW_FORM_data4 + .long -1 ## Bucket 0 + .section __DWARF,__apple_namespac,regular,debug +Lnamespac_begin: + .long 1212240712 ## Header Magic + .short 1 ## Header Version + .short 0 ## Header Hash Function + .long 1 ## Header Bucket Count + .long 0 ## Header Hash Count + .long 12 ## Header Data Length + .long 0 ## HeaderData Die Offset Base + .long 1 ## HeaderData Atom Count + .short 1 ## DW_ATOM_die_offset + .short 6 ## DW_FORM_data4 + .long -1 ## Bucket 0 + .section __DWARF,__apple_types,regular,debug +Ltypes_begin: + .long 1212240712 ## Header Magic + .short 1 ## Header Version + .short 0 ## Header Hash Function + .long 1 ## Header Bucket Count + .long 1 ## Header Hash Count + .long 20 ## Header Data Length + .long 0 ## HeaderData Die Offset Base + .long 3 ## HeaderData Atom Count + .short 1 ## DW_ATOM_die_offset + .short 6 ## DW_FORM_data4 + .short 3 ## DW_ATOM_die_tag + .short 5 ## DW_FORM_data2 + .short 4 ## DW_ATOM_type_flags + .short 11 ## DW_FORM_data1 + .long 0 ## Bucket 0 + .long 193495088 ## Hash in Bucket 0 + .long Ltypes0-Ltypes_begin ## Offset in Bucket 0 +Ltypes0: + .long 86 ## int + .long 1 ## Num DIEs + .long 51 + .short 36 + .byte 0 + .long 0 + .section __DWARF,__apple_exttypes,regular,debug +Lexttypes_begin: + .long 1212240712 ## Header Magic + .short 1 ## Header Version + .short 0 ## Header Hash Function + .long 1 ## Header Bucket Count + .long 0 ## Header Hash Count + .long 12 ## Header Data Length + .long 0 ## HeaderData Die Offset Base + .long 1 ## HeaderData Atom Count + .short 7 ## DW_ATOM_ext_types + .short 6 ## DW_FORM_data4 + .long -1 ## Bucket 0 + +.subsections_via_symbols + .section __DWARF,__debug_line,regular,debug +Lsection_line: +Lline_table_start0: diff --git a/test/tools/llvm-nm/X86/Inputs/Strip-ST.dylib.macho-x86_64 b/test/tools/llvm-nm/X86/Inputs/Strip-ST.dylib.macho-x86_64 Binary files differnew file mode 100755 index 000000000000..65eb0ece374f --- /dev/null +++ b/test/tools/llvm-nm/X86/Inputs/Strip-ST.dylib.macho-x86_64 diff --git a/test/tools/llvm-nm/X86/dyldinfo.test b/test/tools/llvm-nm/X86/dyldinfo.test new file mode 100644 index 000000000000..3a632c57737e --- /dev/null +++ b/test/tools/llvm-nm/X86/dyldinfo.test @@ -0,0 +1,18 @@ +# RUN: llvm-nm %p/Inputs/Strip-ST.dylib.macho-x86_64 | FileCheck --check-prefix=DEFAULT %s +# RUN: llvm-nm -no-dyldinfo %p/Inputs/Strip-ST.dylib.macho-x86_64 | FileCheck --check-prefix=NO-DYLDINFO %s +# RUN: llvm-nm -dyldinfo-only %p/Inputs/Strip-ST.dylib.macho-x86_64 | FileCheck --check-prefix=DYLDINFO-ONLY %s + +# DEFAULT: 0000000000000f90 T __Bob_is_slow +# DEFAULT: 0000000000001008 D __T0ims_data +# DEFAULT: 0000000000000f80 T __T0om_is_not_swift +# DEFAULT: U dyld_stub_binder + +# NO-DYLDINFO: 0000000000000f90 T __Bob_is_slow +# NO-DYLDINFO-NOT: __T0ims_data +# NO-DYLDINFO-NOT: __T0om_is_not_swift +# NO-DYLDINFO: U dyld_stub_binder + +# DYLDINFO-ONLY: 0000000000000f90 T __Bob_is_slow +# DYLDINFO-ONLY: 0000000000001008 D __T0ims_data +# DYLDINFO-ONLY: 0000000000000f80 T __T0om_is_not_swift +# DYLDINFO-ONLY-NOT: U dyld_stub_binder diff --git a/test/tools/llvm-nm/wasm/exports.yaml b/test/tools/llvm-nm/wasm/exports.yaml index f219c5b3ce1d..c8cb2db0db73 100644 --- a/test/tools/llvm-nm/wasm/exports.yaml +++ b/test/tools/llvm-nm/wasm/exports.yaml @@ -1,5 +1,8 @@ # RUN: yaml2obj < %s | llvm-nm - | FileCheck %s +# That wasm exports of functions and globals are displayed as global data and +# code symbols. + --- !WASM FileHeader: Version: 0x00000001 @@ -13,10 +16,10 @@ Sections: Exports: - Name: foo Kind: FUNCTION - Index: 0x00000000 + Index: 0x00000004 - Name: bar Kind: GLOBAL - Index: 0x00000000 + Index: 0x00000002 -# CHECK: 00000001 D bar -# CHECK: 00000000 T foo +# CHECK: 00000002 D bar +# CHECK: 00000004 T foo diff --git a/test/tools/llvm-nm/wasm/weak-symbols.yaml b/test/tools/llvm-nm/wasm/weak-symbols.yaml new file mode 100644 index 000000000000..682a874ea590 --- /dev/null +++ b/test/tools/llvm-nm/wasm/weak-symbols.yaml @@ -0,0 +1,49 @@ +# RUN: yaml2obj < %s | llvm-nm - | FileCheck %s + +# That wasm exports of functions and globals are displayed as global data and +# code symbols. + +--- !WASM +FileHeader: + Version: 0x00000001 +Sections: + - Type: TYPE + Signatures: + - ReturnType: I32 + ParamTypes: + - I32 + - Type: IMPORT + Imports: + - Module: env + Field: weak_import_func + Kind: FUNCTION + SigIndex: 0 + - Module: env + Field: weak_import_data + Kind: GLOBAL + GlobalType: I32 + GlobalMutable: false + - Type: EXPORT + Exports: + - Name: weak_global_func + Kind: FUNCTION + Index: 0x00000004 + - Name: weak_global_data + Kind: GLOBAL + Index: 0x00000002 + - Type: CUSTOM + Name: linking + SymbolInfo: + - Name: weak_global_func + Flags: 1 + - Name: weak_global_data + Flags: 1 + - Name: weak_import_func + Flags: 1 + - Name: weak_import_data + Flags: 1 + +# CHECK: 00000002 W weak_global_data +# CHECK: 00000004 W weak_global_func +# CHECK: w weak_import_data +# CHECK: w weak_import_func diff --git a/test/tools/llvm-objdump/AArch64/Inputs/kextbundle.macho-aarch64 b/test/tools/llvm-objdump/AArch64/Inputs/kextbundle.macho-aarch64 Binary files differnew file mode 100755 index 000000000000..4a21c2e38408 --- /dev/null +++ b/test/tools/llvm-objdump/AArch64/Inputs/kextbundle.macho-aarch64 diff --git a/test/tools/llvm-objdump/AArch64/macho-kextbundle.test b/test/tools/llvm-objdump/AArch64/macho-kextbundle.test new file mode 100644 index 000000000000..89194554e9cb --- /dev/null +++ b/test/tools/llvm-objdump/AArch64/macho-kextbundle.test @@ -0,0 +1,9 @@ +RUN: llvm-objdump -d -m -no-show-raw-insn %p/Inputs/kextbundle.macho-aarch64 | FileCheck %s + +CHECK: (__TEXT_EXEC,__text) section +CHECK: _foo: +CHECK: 4000: stp x29, x30, [sp, #-16]! +CHECK: 4004: mov x29, sp +CHECK: 4008: bl _bar.stub +CHECK: 400c: ldp x29, x30, [sp], #16 +CHECK: 4010: ret diff --git a/test/tools/llvm-objdump/X86/Inputs/kextbundle.macho-x86_64 b/test/tools/llvm-objdump/X86/Inputs/kextbundle.macho-x86_64 Binary files differnew file mode 100755 index 000000000000..ea9938b8631d --- /dev/null +++ b/test/tools/llvm-objdump/X86/Inputs/kextbundle.macho-x86_64 diff --git a/test/tools/llvm-objdump/X86/macho-disassembly-kextbundle.test b/test/tools/llvm-objdump/X86/macho-disassembly-kextbundle.test new file mode 100644 index 000000000000..b6c53a22f0c2 --- /dev/null +++ b/test/tools/llvm-objdump/X86/macho-disassembly-kextbundle.test @@ -0,0 +1,9 @@ +// RUN: llvm-objdump -d -m -no-show-raw-insn -full-leading-addr -print-imm-hex %p/Inputs/kextbundle.macho-x86_64 | FileCheck %s + +CHECK: (__TEXT,__text) section +CHECK: _foo: +CHECK: 0000000000000fb0 pushq %rbp +CHECK: 0000000000000fb1 movq %rsp, %rbp +CHECK: 0000000000000fb4 callq _bar +CHECK: 0000000000000fb9 popq %rbp +CHECK: 0000000000000fba retq diff --git a/test/tools/llvm-objdump/X86/macho-info-plist.test b/test/tools/llvm-objdump/X86/macho-info-plist.test index bee1952ce9b8..7550af905b7e 100644 --- a/test/tools/llvm-objdump/X86/macho-info-plist.test +++ b/test/tools/llvm-objdump/X86/macho-info-plist.test @@ -1,7 +1,11 @@ # RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -info-plist - | FileCheck %s +# RUN: llvm-mc < %s -triple x86_64-apple-darwin -filetype=obj | llvm-objdump -m -info-plist -no-leading-headers - | FileCheck --check-prefix=NOHEADER %s .section __TEXT, __info_plist .asciz "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" # CHECK: Contents of (__TEXT,__info_plist) section # CHECK: <?xml version="1.0" encoding="UTF-8"?> + +# NOHEADER-NOT: Contents of (__TEXT,__info_plist) section +# NOHEADER: <?xml version="1.0" encoding="UTF-8"?> diff --git a/test/tools/llvm-objdump/X86/macho-objc-meta-data.test b/test/tools/llvm-objdump/X86/macho-objc-meta-data.test index 0bdb39cdff84..0c38a649c5ae 100644 --- a/test/tools/llvm-objdump/X86/macho-objc-meta-data.test +++ b/test/tools/llvm-objdump/X86/macho-objc-meta-data.test @@ -1042,7 +1042,7 @@ PROTOCOL: class_methods 0x00000000 (not in an __OBJC section) OBJC2_64BIT_DYLIB: Contents of (__DATA_CONST,__objc_classlist) section OBJC2_64BIT_DYLIB: 000000000000c038 0x8030 _OBJC_CLASS_$_Test OBJC2_64BIT_DYLIB: isa 0x8008 _OBJC_METACLASS_$_Test -OBJC2_64BIT_DYLIB: superclass 0x0 +OBJC2_64BIT_DYLIB: superclass 0x0 _OBJC_CLASS_$_NSObject OBJC2_64BIT_DYLIB: cache 0x0 OBJC2_64BIT_DYLIB: vtable 0x0 OBJC2_64BIT_DYLIB: data 0xc120 (struct class_ro_t *) @@ -1081,7 +1081,7 @@ OBJC2_64BIT_DYLIB: name 0x4f42 testProp OBJC2_64BIT_DYLIB: attributes 0x4f4b TQ,V_testProp OBJC2_64BIT_DYLIB: Meta Class OBJC2_64BIT_DYLIB: isa 0x0 -OBJC2_64BIT_DYLIB: superclass 0x0 +OBJC2_64BIT_DYLIB: superclass 0x0 _OBJC_METACLASS_$_NSObject OBJC2_64BIT_DYLIB: cache 0x0 OBJC2_64BIT_DYLIB: vtable 0x0 OBJC2_64BIT_DYLIB: data 0xc048 (struct class_ro_t *) diff --git a/test/tools/llvm-objdump/macho-exports-trie.test b/test/tools/llvm-objdump/macho-exports-trie.test index 473c7cbfa4b2..3b081f5f975f 100644 --- a/test/tools/llvm-objdump/macho-exports-trie.test +++ b/test/tools/llvm-objdump/macho-exports-trie.test @@ -1,5 +1,7 @@ # RUN: llvm-objdump -macho -exports-trie -arch x86_64 \ # RUN: %p/Inputs/exports-trie.macho-x86_64 2>/dev/null | FileCheck %s +# RUN: llvm-objdump -macho -exports-trie -arch x86_64 \ +# RUN: %p/Inputs/weak-bind.macho-x86_64 2>/dev/null | FileCheck --check-prefix=EXE %s # CHECK:[re-export] _malloc (from libSystem) @@ -9,3 +11,11 @@ # CHECK:0x12345678 _myAbs [absolute] # CHECK:0x00000F60 _foo + +# EXE: 0x100000000 __mh_execute_header +# EXE: 0x100000ED0 __Znwm +# EXE: 0x100000F30 __ZdlPv +# EXE: 0x100000F40 _main +# EXE: 0x100001018 _p1 +# EXE: 0x100001020 _p2 +# EXE: 0x100001028 _p3 diff --git a/test/tools/llvm-readobj/Inputs/coff-load-config-data-end.exe b/test/tools/llvm-readobj/Inputs/coff-load-config-data-end.exe Binary files differnew file mode 100644 index 000000000000..9ec694262985 --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/coff-load-config-data-end.exe diff --git a/test/tools/llvm-readobj/Inputs/coff-load-config-x64.dll b/test/tools/llvm-readobj/Inputs/coff-load-config-x64.dll Binary files differnew file mode 100644 index 000000000000..26101f93c41f --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/coff-load-config-x64.dll diff --git a/test/tools/llvm-readobj/Inputs/coff-load-config-x86.dll b/test/tools/llvm-readobj/Inputs/coff-load-config-x86.dll Binary files differnew file mode 100644 index 000000000000..c334c7be721c --- /dev/null +++ b/test/tools/llvm-readobj/Inputs/coff-load-config-x86.dll diff --git a/test/tools/llvm-readobj/coff-load-config.test b/test/tools/llvm-readobj/coff-load-config.test new file mode 100644 index 000000000000..1eb67beadde6 --- /dev/null +++ b/test/tools/llvm-readobj/coff-load-config.test @@ -0,0 +1,93 @@ +RUN: llvm-readobj -coff-load-config %S/Inputs/coff-load-config-x86.dll | FileCheck %s --check-prefix=X86 +RUN: llvm-readobj -coff-load-config %S/Inputs/coff-load-config-x64.dll | FileCheck %s --check-prefix=X64 + +RUN: llvm-readobj -coff-load-config %S/Inputs/coff-load-config-data-end.exe | FileCheck %s --check-prefix=DATAEND + +X86: LoadConfig [ +X86: Size: 0x5C +X86: TimeDateStamp: 1970-01-01 00:00:00 (0x0) +X86: MajorVersion: 0x0 +X86: MinorVersion: 0x0 +X86: GlobalFlagsClear: 0x0 +X86: GlobalFlagsSet: 0x0 +X86: CriticalSectionDefaultTimeout: 0x0 +X86: DeCommitFreeBlockThreshold: 0x0 +X86: DeCommitTotalFreeThreshold: 0x0 +X86: LockPrefixTable: 0x0 +X86: MaximumAllocationSize: 0x0 +X86: VirtualMemoryThreshold: 0x0 +X86: ProcessHeapFlags: 0x0 +X86: ProcessAffinityMask: 0x0 +X86: CSDVersion: 0x0 +X86: DependentLoadFlags: 0x0 +X86: EditList: 0x0 +X86: SecurityCookie: 0x10003004 +X86: SEHandlerTable: 0x100021C0 +X86: SEHandlerCount: 2 +X86: GuardCFCheckFunction: 0x1000207C +X86: GuardCFCheckDispatch: 0x0 +X86: GuardCFFunctionTable: 0x100020A4 +X86: GuardCFFunctionCount: 11 +X86: GuardFlags: 0x13500 +X86: ] +X86: SEHTable [ +X86: 0x10001BE0 +X86: 0x10001E30 +X86: ] +X86: GuardFidTable [ +X86: 0x10001000 +X86: 0x10001040 +X86: 0x10001060 +X86: 0x10001100 +X86: 0x10001120 +X86: 0x10001150 +X86: 0x10001460 +X86: 0x100019B0 +X86: 0x10001B40 +X86: 0x10001BE0 +X86: 0x10001DC0 +X86: ] + +X64: LoadConfig [ +X64: Size: 0x94 +X64: TimeDateStamp: 1970-01-01 00:00:00 (0x0) +X64: MajorVersion: 0x0 +X64: MinorVersion: 0x0 +X64: GlobalFlagsClear: 0x0 +X64: GlobalFlagsSet: 0x0 +X64: CriticalSectionDefaultTimeout: 0x0 +X64: DeCommitFreeBlockThreshold: 0x0 +X64: DeCommitTotalFreeThreshold: 0x0 +X64: LockPrefixTable: 0x0 +X64: MaximumAllocationSize: 0x0 +X64: VirtualMemoryThreshold: 0x0 +X64: ProcessHeapFlags: 0x0 +X64: ProcessAffinityMask: 0x0 +X64: CSDVersion: 0x0 +X64: DependentLoadFlags: 0x0 +X64: EditList: 0x0 +X64: SecurityCookie: 0x180003018 +X64: SEHandlerTable: 0 +X64: SEHandlerCount: 0 +X64: GuardCFCheckFunction: 0x180002100 +X64: GuardCFCheckDispatch: 0x180002108 +X64: GuardCFFunctionTable: 0x180002158 +X64: GuardCFFunctionCount: 9 +X64: GuardFlags: 0x13500 +X64: ] +X64-NOT: SEHTable +X64: GuardFidTable [ +X64: 0x180001000 +X64: 0x180001050 +X64: 0x180001070 +X64: 0x1800010E0 +X64: 0x180001110 +X64: 0x180001460 +X64: 0x180001970 +X64: 0x180001B50 +X64: 0x180001D90 +X64: ] + +DATAEND: SEHTable [ +DATAEND-NEXT: 0x402006 +DATAEND-NEXT: ] diff --git a/test/tools/obj2yaml/invalid_input_file.test b/test/tools/obj2yaml/invalid_input_file.test new file mode 100644 index 000000000000..573e753c8a87 --- /dev/null +++ b/test/tools/obj2yaml/invalid_input_file.test @@ -0,0 +1,4 @@ +# RUN: not obj2yaml %p/path/does/not/exist 2>&1 | FileCheck %s + +# Don't check the OS-dependent message "No such file or directory". +# CHECK: Error reading file: {{.*}}/path/does/not/exist: {{.*}} |
