summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Aldorasi <marc@groundctl.com>2022-01-14 19:28:40 (GMT)
committerMarc Aldorasi <marc@groundctl.com>2022-01-14 21:41:27 (GMT)
commit4b53f1ec060f40111e4e68d5d21b73ceeb9da9a0 (patch)
tree3b440f639cf2ec10b1d897b382aa4a9e80c26a57
parentab7dcd4bf8d756e07b49e94fc3de215a3ddcb32c (diff)
downloadcv2pdb-4b53f1ec060f40111e4e68d5d21b73ceeb9da9a0.zip
cv2pdb-4b53f1ec060f40111e4e68d5d21b73ceeb9da9a0.tar.gz
cv2pdb-4b53f1ec060f40111e4e68d5d21b73ceeb9da9a0.tar.bz2
Added test for S_SEPCODE entries
-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