diff options
Diffstat (limited to '.github/workflows/build-and-test.yml')
-rw-r--r-- | .github/workflows/build-and-test.yml | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index ee2b5c4..00a03ec 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -61,3 +61,24 @@ jobs: curl -Lo cvdump.exe https://raw.githubusercontent.com/microsoft/microsoft-pdb/HEAD/cvdump/cvdump.exe && ./cvdump.exe world.pdb >world.cvdump && grep '^S_PUB32: .*, Flags: 00000000, main$' world.cvdump + - name: verify split functions + shell: bash + run: | + set -x && + cat >split.c <<-\EOF && + __attribute__((cold,noinline)) void cold() { volatile int i=0; } + __attribute__((dllexport)) void split_func(int i) + { + if (i) + cold(); + } + EOF + + gcc -g -O2 -shared -o split-dwarf.dll split.c && + bin/${{env.BUILD_CONFIGURATION}}*/cv2pdb.exe split-dwarf.dll split-cv.dll && + + ls -l split-dwarf* split-cv* && + + curl -Lo cvdump.exe https://raw.githubusercontent.com/microsoft/microsoft-pdb/HEAD/cvdump/cvdump.exe && + ./cvdump.exe split-cv.pdb > split-cv.dump && + awk '$2 == "S_GPROC32:" && $NF == "split_func" { scope=gensub(/,/,"",1,$3); } $2 == "S_SEPCODE:" { getline; if ($4 == scope) found=1; } END {exit !found; }' split-cv.dump |