blob: 07bfa482cbfa889d49dd8d42c73affbf22c3efc6 [file] [edit]
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj %s -o %t.obj -triple x86_64-windows-msvc
# RUN: lld-link -entry:wWinMain -nodefaultlib %t.obj -out:%t.exe -pdb:%t.pdb -debug
# RUN: llvm-pdbutil dump -publics -public-extras %t.pdb | FileCheck %s
# Check that each symbol is placed in its own hash bucket.
# CHECK: Public Symbols
# CHECK: Hash Buckets
# CHECK-NEXT: 0x00000000
# CHECK-NEXT: 0x0000000c
# CHECK-NEXT: 0x00000018
.globl foo
foo:
.rept 33
nop
.endr
# An 8-byte symbol name, meaning it fits precisely in the COFF symbol table's
# name field and will not be null terminated. It's followed by the symbol
# address in little-endian: 33 (ascii '!'), meaning if the symbol hashing
# assumes this name is null terminated, it will compute the same hash as for
# the symbol below, putting them in the same bucket.
.globl wWinMain
wWinMain:
nop
.globl "wWinMain!"
"wWinMain!":
nop