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
// These test checks that llvm-objdump will not crash with malformed Archive
// files.  So the check line is not all that important but the bug fixes to
// make sure llvm-objdump is robust is what matters.
# RUN: not llvm-objdump -macho -archive-headers \
# RUN:   %p/Inputs/libbogus1.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus1 %s 

# bogus1: libbogus1.a': truncated or malformed archive (characters in size field in archive header are not all decimal numbers: '10%' for archive member header at offset 8)

# RUN: not llvm-objdump -macho -archive-headers \
# RUN:   %p/Inputs/libbogus2.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus2 %s 

# bogus2: libbogus2.a': truncated or malformed archive (characters in size field in archive header are not all decimal numbers: '1%' for archive member header at offset 170)

# RUN: not llvm-objdump -macho -archive-headers \
# RUN:   %p/Inputs/libbogus3.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus3 %s 

# bogus3: libbogus3.a': truncated or malformed archive (offset to next archive member past the end of the archive after member foo.c)

# RUN: not llvm-objdump -macho -archive-headers \
# RUN:   %p/Inputs/libbogus4.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus4 %s 

# bogus4: libbogus4.a': truncated or malformed archive (remaining size of archive too small for next archive member header for foo.c)

# RUN: not llvm-objdump -macho -archive-headers \
# RUN:   %p/Inputs/libbogus5.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus5 %s 

# bogus5: libbogus5.a': truncated or malformed archive (terminator characters in archive member "@\n" not the correct "`\n" values for the archive member header for hello.c)

# RUN: not llvm-objdump -macho -archive-headers \
# RUN:   %p/Inputs/libbogus6.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus6 %s 

# bogus6: libbogus6.a': truncated or malformed archive (name contains a leading space for archive member header at offset 96)

# RUN: not llvm-objdump -macho -archive-headers \
# RUN:   %p/Inputs/libbogus7.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus7 %s 

# bogus7: libbogus7.a': truncated or malformed archive (long name length characters after the #1/ are not all decimal numbers: '@123$' for archive member header at offset 8)

# RUN: not llvm-objdump -macho -archive-headers \
# RUN:   %p/Inputs/libbogus8.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus8 %s 

# bogus8: libbogus8.a(<file index: 1>): truncated or malformed archive (long name length: 1234 extends past the end of the member or archive for archive member header at offset 86)

# RUN: not llvm-objdump -s %p/Inputs/libbogus9.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus9 %s 

# bogus9: libbogus9.a(<file index: 0>): truncated or malformed archive (long name offset characters after the '/' are not all decimal numbers: '&a25*' for archive member header at offset 94)

# RUN: not llvm-objdump -s %p/Inputs/libbogus10.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus10 %s 

# bogus10: libbogus10.a(<file index: 0>): truncated or malformed archive (long name offset 507 past the end of the string table for archive member header at offset 94)

# RUN: not llvm-objdump -macho -archive-headers \
# RUN:   %p/Inputs/libbogus11.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus11 %s 

# bogus11: libbogus11.a(hello.c): truncated or malformed archive (characters in UID field in archive header are not all decimal numbers: '~97&' for the archive member header at offset 8)

# RUN: not llvm-objdump -macho -archive-headers \
# RUN:   %p/Inputs/libbogus12.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus12 %s 

# bogus12: libbogus12.a(hello.c): truncated or malformed archive (characters in GID field in archive header are not all decimal numbers: '#55!' for the archive member header at offset 8)

# RUN: not llvm-objdump -macho -archive-headers \
# RUN:   %p/Inputs/libbogus13.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus13 %s 

# bogus13: libbogus13.a(hello.c): truncated or malformed archive (characters in AccessMode field in archive header are not all decimal numbers: 'Feed' for the archive member header at offset 8)

# RUN: llvm-objdump -macho -archive-headers %p/Inputs/libbogus14.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus14 %s 

# bogus14: -rw-r--r--124/0     102 (date: "1foobar273" contains non-decimal chars) hello.c

# RUN: not llvm-ar tv %p/Inputs/libbogus14.a \
# RUN:   2>&1 | FileCheck -check-prefix=bogus14a %s 

# bogus14a: truncated or malformed archive (characters in LastModified field in archive header are not all decimal numbers: '1foobar273' for the archive member header at offset 8)