Compiler projects using llvm
# RUN: not llvm-mc -triple x86_64-unknown-unknown -dwarf-version 5 -filetype=asm %s -o /dev/null 2>&1 | FileCheck %s
# RUN: not llvm-mc -triple x86_64-unknown-unknown -dwarf-version 5 -filetype=obj %s -o /dev/null 2>&1 | FileCheck %s

# This is syntactically legal, looks like no checksum provided.
# CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
        .file 1 "dir1/foo" "00112233445566778899aabbccddeeff"

# Missing md5 keyword.
# CHECK: [[@LINE+1]]:{{[0-9]+}}: error: unexpected token in '.file' directive
        .file 2 "dir1" "foo" 0x00112233445566778899aabbccddeeff

# Bad syntax.
# CHECK: [[@LINE+1]]:{{[0-9]+}}: error: unknown token in expression
        .file 3 "dir2" "bar" md5 "ff"

# No hex prefix.
# CHECK: [[@LINE+1]]:{{[0-9]+}}: error: unknown token in expression
        .file 4 "dir3" "foo" md5 ffeeddccbbaa99887766554433221100

# Non-DWARF .file syntax with checksum.
# CHECK: [[@LINE+1]]:{{[0-9]+}}: error: MD5 checksum specified, but no file number
        .file "baz" md5 0xffeeddccbbaa99887766554433221100

# Inconsistent use of MD5 option. Note: .file 1 did not supply one.
# CHECK: [[@LINE+1]]:{{[0-9]+}}: warning: inconsistent use of MD5 checksums
        .file 5 "bax" md5 0xffeeddccbbaa99887766554433221100