summaryrefslogtreecommitdiff
path: root/llvm/test/Object
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2018-05-09 08:20:14 +0000
committerHans Wennborg <hans@hanshq.net>2018-05-09 08:20:14 +0000
commit01ff4b689585d6df58f1d4a592bb33c36896e981 (patch)
tree4d9d04b7f0717cde4b4487aba2868b43438514e0 /llvm/test/Object
parent8e34623baffe031401e9be3f4ebb0f97b3e8887e (diff)
Add a test for r331746.
Thanks to pcc for creating the test file!
Diffstat (limited to 'llvm/test/Object')
-rw-r--r--llvm/test/Object/Inputs/archive-long-filenames-no-null-terminator.a252
-rw-r--r--llvm/test/Object/archive-long-filenames-no-null-terminator.test139
2 files changed, 391 insertions, 0 deletions
diff --git a/llvm/test/Object/Inputs/archive-long-filenames-no-null-terminator.a b/llvm/test/Object/Inputs/archive-long-filenames-no-null-terminator.a
new file mode 100644
index 00000000000..e493bef9aaf
--- /dev/null
+++ b/llvm/test/Object/Inputs/archive-long-filenames-no-null-terminator.a
@@ -0,0 +1,252 @@
+!<arch>
+// 8816 `
+012345678901234567890123456789012345678901234567890123456789012-1.o/
+012345678901234567890123456789012345678901234567890123456789012-2.o/
+012345678901234567890123456789012345678901234567890123456789012-3.o/
+012345678901234567890123456789012345678901234567890123456789012-4.o/
+012345678901234567890123456789012345678901234567890123456789012-5.o/
+012345678901234567890123456789012345678901234567890123456789012-6.o/
+012345678901234567890123456789012345678901234567890123456789012-7.o/
+012345678901234567890123456789012345678901234567890123456789012-8.o/
+012345678901234567890123456789012345678901234567890123456789012-9.o/
+012345678901234567890123456789012345678901234567890123456789012-10.o/
+012345678901234567890123456789012345678901234567890123456789012-11.o/
+012345678901234567890123456789012345678901234567890123456789012-12.o/
+012345678901234567890123456789012345678901234567890123456789012-13.o/
+012345678901234567890123456789012345678901234567890123456789012-14.o/
+012345678901234567890123456789012345678901234567890123456789012-15.o/
+012345678901234567890123456789012345678901234567890123456789012-16.o/
+012345678901234567890123456789012345678901234567890123456789012-17.o/
+012345678901234567890123456789012345678901234567890123456789012-18.o/
+012345678901234567890123456789012345678901234567890123456789012-19.o/
+012345678901234567890123456789012345678901234567890123456789012-20.o/
+012345678901234567890123456789012345678901234567890123456789012-21.o/
+012345678901234567890123456789012345678901234567890123456789012-22.o/
+012345678901234567890123456789012345678901234567890123456789012-23.o/
+012345678901234567890123456789012345678901234567890123456789012-24.o/
+012345678901234567890123456789012345678901234567890123456789012-25.o/
+012345678901234567890123456789012345678901234567890123456789012-26.o/
+012345678901234567890123456789012345678901234567890123456789012-27.o/
+012345678901234567890123456789012345678901234567890123456789012-28.o/
+012345678901234567890123456789012345678901234567890123456789012-29.o/
+012345678901234567890123456789012345678901234567890123456789012-30.o/
+012345678901234567890123456789012345678901234567890123456789012-31.o/
+012345678901234567890123456789012345678901234567890123456789012-32.o/
+012345678901234567890123456789012345678901234567890123456789012-33.o/
+012345678901234567890123456789012345678901234567890123456789012-34.o/
+012345678901234567890123456789012345678901234567890123456789012-35.o/
+012345678901234567890123456789012345678901234567890123456789012-36.o/
+012345678901234567890123456789012345678901234567890123456789012-37.o/
+012345678901234567890123456789012345678901234567890123456789012-38.o/
+012345678901234567890123456789012345678901234567890123456789012-39.o/
+012345678901234567890123456789012345678901234567890123456789012-40.o/
+012345678901234567890123456789012345678901234567890123456789012-41.o/
+012345678901234567890123456789012345678901234567890123456789012-42.o/
+012345678901234567890123456789012345678901234567890123456789012-43.o/
+012345678901234567890123456789012345678901234567890123456789012-44.o/
+012345678901234567890123456789012345678901234567890123456789012-45.o/
+012345678901234567890123456789012345678901234567890123456789012-46.o/
+012345678901234567890123456789012345678901234567890123456789012-47.o/
+012345678901234567890123456789012345678901234567890123456789012-48.o/
+012345678901234567890123456789012345678901234567890123456789012-49.o/
+012345678901234567890123456789012345678901234567890123456789012-50.o/
+012345678901234567890123456789012345678901234567890123456789012-51.o/
+012345678901234567890123456789012345678901234567890123456789012-52.o/
+012345678901234567890123456789012345678901234567890123456789012-53.o/
+012345678901234567890123456789012345678901234567890123456789012-54.o/
+012345678901234567890123456789012345678901234567890123456789012-55.o/
+012345678901234567890123456789012345678901234567890123456789012-56.o/
+012345678901234567890123456789012345678901234567890123456789012-57.o/
+012345678901234567890123456789012345678901234567890123456789012-58.o/
+012345678901234567890123456789012345678901234567890123456789012-59.o/
+012345678901234567890123456789012345678901234567890123456789012-60.o/
+012345678901234567890123456789012345678901234567890123456789012-61.o/
+012345678901234567890123456789012345678901234567890123456789012-62.o/
+012345678901234567890123456789012345678901234567890123456789012-63.o/
+012345678901234567890123456789012345678901234567890123456789012-64.o/
+012345678901234567890123456789012345678901234567890123456789012-65.o/
+012345678901234567890123456789012345678901234567890123456789012-66.o/
+012345678901234567890123456789012345678901234567890123456789012-67.o/
+012345678901234567890123456789012345678901234567890123456789012-68.o/
+012345678901234567890123456789012345678901234567890123456789012-69.o/
+012345678901234567890123456789012345678901234567890123456789012-70.o/
+012345678901234567890123456789012345678901234567890123456789012-71.o/
+012345678901234567890123456789012345678901234567890123456789012-72.o/
+012345678901234567890123456789012345678901234567890123456789012-73.o/
+012345678901234567890123456789012345678901234567890123456789012-74.o/
+012345678901234567890123456789012345678901234567890123456789012-75.o/
+012345678901234567890123456789012345678901234567890123456789012-76.o/
+012345678901234567890123456789012345678901234567890123456789012-77.o/
+012345678901234567890123456789012345678901234567890123456789012-78.o/
+012345678901234567890123456789012345678901234567890123456789012-79.o/
+012345678901234567890123456789012345678901234567890123456789012-80.o/
+012345678901234567890123456789012345678901234567890123456789012-81.o/
+012345678901234567890123456789012345678901234567890123456789012-82.o/
+012345678901234567890123456789012345678901234567890123456789012-83.o/
+012345678901234567890123456789012345678901234567890123456789012-84.o/
+012345678901234567890123456789012345678901234567890123456789012-85.o/
+012345678901234567890123456789012345678901234567890123456789012-86.o/
+012345678901234567890123456789012345678901234567890123456789012-87.o/
+012345678901234567890123456789012345678901234567890123456789012-88.o/
+012345678901234567890123456789012345678901234567890123456789012-89.o/
+012345678901234567890123456789012345678901234567890123456789012-90.o/
+012345678901234567890123456789012345678901234567890123456789012-91.o/
+012345678901234567890123456789012345678901234567890123456789012-92.o/
+012345678901234567890123456789012345678901234567890123456789012-93.o/
+012345678901234567890123456789012345678901234567890123456789012-94.o/
+012345678901234567890123456789012345678901234567890123456789012-95.o/
+012345678901234567890123456789012345678901234567890123456789012-96.o/
+012345678901234567890123456789012345678901234567890123456789012-97.o/
+012345678901234567890123456789012345678901234567890123456789012-98.o/
+012345678901234567890123456789012345678901234567890123456789012-99.o/
+012345678901234567890123456789012345678901234567890123456789012-100.o/
+012345678901234567890123456789012345678901234567890123456789012-101.o/
+012345678901234567890123456789012345678901234567890123456789012-102.o/
+012345678901234567890123456789012345678901234567890123456789012-103.o/
+012345678901234567890123456789012345678901234567890123456789012-104.o/
+012345678901234567890123456789012345678901234567890123456789012-105.o/
+012345678901234567890123456789012345678901234567890123456789012-106.o/
+012345678901234567890123456789012345678901234567890123456789012-107.o/
+012345678901234567890123456789012345678901234567890123456789012-108.o/
+012345678901234567890123456789012345678901234567890123456789012-109.o/
+012345678901234567890123456789012345678901234567890123456789012-110.o/
+012345678901234567890123456789012345678901234567890123456789012-111.o/
+012345678901234567890123456789012345678901234567890123456789012-112.o/
+012345678901234567890123456789012345678901234567890123456789012-113.o/
+012345678901234567890123456789012345678901234567890123456789012-114.o/
+012345678901234567890123456789012345678901234567890123456789012-115.o/
+012345678901234567890123456789012345678901234567890123456789012-116.o/
+012345678901234567890123456789012345678901234567890123456789012-117.o/
+012345678901234567890123456789012345678901234567890123456789012-118.o/
+012345678901234567890123456789012345678901234567890123456789012-119.o/
+012345678901234567890123456789012345678901234567890123456789012-120.o/
+012345678901234567890123456789012345678901234567890123456789012-121.o/
+012345678901234567890123456789012345678901234567890123456789012-122.o/
+012345678901234567890123456789012345678901234567890123456789012-123.o/
+012345678901234567890123456789012345678901234567890123456789012-124.o/
+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o/
+/0 0 0 0 644 0 `
+/69 0 0 0 644 0 `
+/138 0 0 0 644 0 `
+/207 0 0 0 644 0 `
+/276 0 0 0 644 0 `
+/345 0 0 0 644 0 `
+/414 0 0 0 644 0 `
+/483 0 0 0 644 0 `
+/552 0 0 0 644 0 `
+/621 0 0 0 644 0 `
+/691 0 0 0 644 0 `
+/761 0 0 0 644 0 `
+/831 0 0 0 644 0 `
+/901 0 0 0 644 0 `
+/971 0 0 0 644 0 `
+/1041 0 0 0 644 0 `
+/1111 0 0 0 644 0 `
+/1181 0 0 0 644 0 `
+/1251 0 0 0 644 0 `
+/1321 0 0 0 644 0 `
+/1391 0 0 0 644 0 `
+/1461 0 0 0 644 0 `
+/1531 0 0 0 644 0 `
+/1601 0 0 0 644 0 `
+/1671 0 0 0 644 0 `
+/1741 0 0 0 644 0 `
+/1811 0 0 0 644 0 `
+/1881 0 0 0 644 0 `
+/1951 0 0 0 644 0 `
+/2021 0 0 0 644 0 `
+/2091 0 0 0 644 0 `
+/2161 0 0 0 644 0 `
+/2231 0 0 0 644 0 `
+/2301 0 0 0 644 0 `
+/2371 0 0 0 644 0 `
+/2441 0 0 0 644 0 `
+/2511 0 0 0 644 0 `
+/2581 0 0 0 644 0 `
+/2651 0 0 0 644 0 `
+/2721 0 0 0 644 0 `
+/2791 0 0 0 644 0 `
+/2861 0 0 0 644 0 `
+/2931 0 0 0 644 0 `
+/3001 0 0 0 644 0 `
+/3071 0 0 0 644 0 `
+/3141 0 0 0 644 0 `
+/3211 0 0 0 644 0 `
+/3281 0 0 0 644 0 `
+/3351 0 0 0 644 0 `
+/3421 0 0 0 644 0 `
+/3491 0 0 0 644 0 `
+/3561 0 0 0 644 0 `
+/3631 0 0 0 644 0 `
+/3701 0 0 0 644 0 `
+/3771 0 0 0 644 0 `
+/3841 0 0 0 644 0 `
+/3911 0 0 0 644 0 `
+/3981 0 0 0 644 0 `
+/4051 0 0 0 644 0 `
+/4121 0 0 0 644 0 `
+/4191 0 0 0 644 0 `
+/4261 0 0 0 644 0 `
+/4331 0 0 0 644 0 `
+/4401 0 0 0 644 0 `
+/4471 0 0 0 644 0 `
+/4541 0 0 0 644 0 `
+/4611 0 0 0 644 0 `
+/4681 0 0 0 644 0 `
+/4751 0 0 0 644 0 `
+/4821 0 0 0 644 0 `
+/4891 0 0 0 644 0 `
+/4961 0 0 0 644 0 `
+/5031 0 0 0 644 0 `
+/5101 0 0 0 644 0 `
+/5171 0 0 0 644 0 `
+/5241 0 0 0 644 0 `
+/5311 0 0 0 644 0 `
+/5381 0 0 0 644 0 `
+/5451 0 0 0 644 0 `
+/5521 0 0 0 644 0 `
+/5591 0 0 0 644 0 `
+/5661 0 0 0 644 0 `
+/5731 0 0 0 644 0 `
+/5801 0 0 0 644 0 `
+/5871 0 0 0 644 0 `
+/5941 0 0 0 644 0 `
+/6011 0 0 0 644 0 `
+/6081 0 0 0 644 0 `
+/6151 0 0 0 644 0 `
+/6221 0 0 0 644 0 `
+/6291 0 0 0 644 0 `
+/6361 0 0 0 644 0 `
+/6431 0 0 0 644 0 `
+/6501 0 0 0 644 0 `
+/6571 0 0 0 644 0 `
+/6641 0 0 0 644 0 `
+/6711 0 0 0 644 0 `
+/6781 0 0 0 644 0 `
+/6851 0 0 0 644 0 `
+/6921 0 0 0 644 0 `
+/6992 0 0 0 644 0 `
+/7063 0 0 0 644 0 `
+/7134 0 0 0 644 0 `
+/7205 0 0 0 644 0 `
+/7276 0 0 0 644 0 `
+/7347 0 0 0 644 0 `
+/7418 0 0 0 644 0 `
+/7489 0 0 0 644 0 `
+/7560 0 0 0 644 0 `
+/7631 0 0 0 644 0 `
+/7702 0 0 0 644 0 `
+/7773 0 0 0 644 0 `
+/7844 0 0 0 644 0 `
+/7915 0 0 0 644 0 `
+/7986 0 0 0 644 0 `
+/8057 0 0 0 644 0 `
+/8128 0 0 0 644 0 `
+/8199 0 0 0 644 0 `
+/8270 0 0 0 644 0 `
+/8341 0 0 0 644 0 `
+/8412 0 0 0 644 0 `
+/8483 0 0 0 644 0 `
+/8554 0 0 0 644 0 `
+/8625 0 0 0 644 0 `
+/8696 0 0 0 644 0 `
diff --git a/llvm/test/Object/archive-long-filenames-no-null-terminator.test b/llvm/test/Object/archive-long-filenames-no-null-terminator.test
new file mode 100644
index 00000000000..3af08db1702
--- /dev/null
+++ b/llvm/test/Object/archive-long-filenames-no-null-terminator.test
@@ -0,0 +1,139 @@
+Check that extracting long filenames works correctly even when there is no
+null terminator after the filename. Depending on whether the OS provides a
+readable page containing a null byte after the file mapping, this would crash
+before r331746 (on Windows it crashed consistently).
+
+The input file was created like:
+
+$ touch 012345678901234567890123456789012345678901234567890123456789012-{1..124}.o \
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
+$ llvm-ar cru file.a 012345678901234567890123456789012345678901234567890123456789012-{1..124}.o \
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o
+
+RUN: llvm-ar t %p/Inputs/archive-long-filenames-no-null-terminator.a | FileCheck %s
+
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-1.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-2.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-3.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-4.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-5.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-6.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-7.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-8.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-9.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-10.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-11.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-12.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-13.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-14.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-15.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-16.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-17.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-18.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-19.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-20.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-21.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-22.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-23.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-24.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-25.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-26.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-27.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-28.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-29.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-30.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-31.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-32.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-33.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-34.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-35.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-36.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-37.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-38.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-39.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-40.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-41.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-42.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-43.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-44.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-45.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-46.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-47.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-48.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-49.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-50.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-51.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-52.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-53.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-54.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-55.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-56.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-57.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-58.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-59.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-60.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-61.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-62.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-63.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-64.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-65.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-66.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-67.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-68.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-69.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-70.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-71.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-72.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-73.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-74.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-75.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-76.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-77.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-78.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-79.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-80.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-81.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-82.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-83.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-84.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-85.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-86.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-87.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-88.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-89.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-90.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-91.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-92.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-93.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-94.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-95.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-96.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-97.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-98.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-99.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-100.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-101.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-102.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-103.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-104.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-105.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-106.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-107.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-108.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-109.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-110.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-111.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-112.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-113.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-114.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-115.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-116.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-117.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-118.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-119.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-120.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-121.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-122.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-123.o
+CHECK: 012345678901234567890123456789012345678901234567890123456789012-124.o
+CHECK: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.o