## Create a clean temporary directory and cd to it to use relative paths.
# RUN: rm -rf %t && mkdir %t && cd %t

## Check that tools correctly treat paths after '--' as file paths,
## even if they start with dashes.
# RUN: yaml2obj %s -o test-obj
# RUN: llvm-objcopy --only-section=.test test-obj -- --only-section
# RUN: llvm-objcopy --only-section=.test test-obj out-obj1
# RUN: cmp -- out-obj1 --only-section

# RUN: cp -- test-obj --strip-symbol
# RUN: cp -- test-obj strip-obj1
# RUN: llvm-strip --remove-section=.test strip-obj1 -- --strip-symbol
# RUN: cp -- test-obj no-dash-dash1
# RUN: llvm-strip --remove-section=.test no-dash-dash1
# RUN: cmp -- no-dash-dash1 strip-obj1
# RUN: cmp -- no-dash-dash1 --strip-symbol

## Check the case when '--' is specified with input files but no options.
# RUN: llvm-objcopy -- test-obj --add-section
# RUN: llvm-objcopy test-obj out-obj2
# RUN: cmp -- out-obj2 --add-section

# RUN: cp -- test-obj --keep-symbol
# RUN: cp -- test-obj strip-obj2
# RUN: llvm-strip -- strip-obj2 --keep-symbol
# RUN: cp -- test-obj no-dash-dash2
# RUN: llvm-strip no-dash-dash2
# RUN: cmp -- no-dash-dash2 strip-obj2
# RUN: cmp -- no-dash-dash2 --keep-symbol

## Check the case when '--' is specified with options but no input files.
# RUN: not llvm-objcopy --only-section=.test -- 2>&1 | FileCheck %s --check-prefixes=CHECK-NO-INPUT
# RUN: not llvm-strip --remove-section=.test -- 2>&1 | FileCheck %s --check-prefixes=CHECK-NO-INPUT

# CHECK-NO-INPUT: error: no input file specified

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
