reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88
   89
   90
   91
   92
   93
   94
   95
   96
   97
   98
   99
  100
  101
  102
  103
  104
  105
  106
  107
  108
  109
  110
  111
  112
  113
  114
  115
  116
  117
  118
  119
  120
  121
  122
  123
  124
  125
  126
  127
  128
  129
  130
  131
  132
  133
  134
  135
  136
  137
  138
  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