summaryrefslogtreecommitdiffstats
path: root/.github/workflows/build-and-test.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build-and-test.yml')
-rw-r--r--.github/workflows/build-and-test.yml21
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