|  | ; If the binary looks up libraries using an rpath, we can't test this | 
|  | ; without copying the whole lib dir or polluting the build dir. | 
|  | ; REQUIRES: static-libs | 
|  | ; REQUIRES: x86-registered-target | 
|  |  | 
|  | ; The above also applies if the binary is built with libc++. | 
|  | ; UNSUPPORTED: libcxx-used | 
|  |  | 
|  | ; This test is really flaky on Windows. On Windows, executables and DLLs cannot | 
|  | ; be deleted or written while they are loaded. The OS unlocks the file some | 
|  | ; time after the process terminates, so if 'rm' runs too quickly, it will fail | 
|  | ; with "access denied". | 
|  | ; UNSUPPORTED: system-windows | 
|  |  | 
|  | ; Temporary bitcode file | 
|  | ; RUN: opt -o %t.input %s | 
|  |  | 
|  | ; workaround for https://openradar.appspot.com/FB8914243 | 
|  | ; RUN: rm -f %t.bin-- | 
|  | ; RUN: rm -f %t.bin--x86_64 | 
|  | ; RUN: rm -f %t.bin--x86_64-unknown | 
|  | ; RUN: rm -f %t.bin--x86_64-instcombine | 
|  |  | 
|  | ; RUN: cp llvm-opt-fuzzer %t.bin-- | 
|  | ; RUN: not %t.bin-- %t.input 2>&1 | FileCheck -check-prefix=EMPTY %s | 
|  | ; EMPTY: -mtriple must be specified | 
|  |  | 
|  | ; RUN: cp llvm-opt-fuzzer %t.bin--x86_64 | 
|  | ; RUN: not %t.bin--x86_64 %t.input 2>&1 | FileCheck -check-prefix=PASSES %s | 
|  | ; PASSES: at least one pass should be specified | 
|  |  | 
|  | ; RUN: cp llvm-opt-fuzzer %t.bin--x86_64-unknown | 
|  | ; RUN: not %t.bin--x86_64-unknown %t.input 2>&1 | FileCheck -check-prefix=UNKNOWN %s | 
|  | ; UNKNOWN: Unknown option: unknown | 
|  |  | 
|  | ; RUN: cp llvm-opt-fuzzer %t.bin--x86_64-instcombine | 
|  | ; RUN: %t.bin--x86_64-instcombine %t.input 2>&1 | FileCheck -check-prefix=CORRECT %s | 
|  | ; CORRECT: Injected args: -mtriple=x86_64 -passes=instcombine | 
|  | ; CORRECT: Running |