# This test creates a thin archive that contains a thin archive, a regular
# archive, and a file.
#
# The inner thin archive should be flattened, but the regular archive should
# not. The order of members in the archive should match the input order, with
# flattened members appearing together.

RUN: touch %t-a.txt %t-b.txt %t-c.txt %t-d.txt %t-e.txt
RUN: rm -f %t-a-plus-b.a %t-d-plus-e.a %t.a
RUN: llvm-ar rcsT %t-a-plus-b.a %t-a.txt %t-b.txt
RUN: llvm-ar rcs %t-d-plus-e.a %t-d.txt %t-e.txt
RUN: llvm-ar rcsT %t.a %t-a-plus-b.a %t-c.txt %t-d-plus-e.a
RUN: llvm-ar t %t.a | FileCheck %s

CHECK:      a.txt
CHECK-NEXT: b.txt
CHECK-NEXT: c.txt
CHECK-NEXT: -d-plus-e.a
