]> granicus.if.org Git - clang/commitdiff
Detailed vtable checker.
authorMike Stump <mrs@apple.com>
Thu, 7 Jan 2010 22:21:26 +0000 (22:21 +0000)
committerMike Stump <mrs@apple.com>
Thu, 7 Jan 2010 22:21:26 +0000 (22:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92953 91177308-0d34-0410-b5e6-96231b3b80d8

utils/VtableTest/Makefile
utils/VtableTest/check-zvt [new file with mode: 0755]

index 4798e828866e56f669ae6bc13b6d774e202e0389..0e060267903ae5c0e0cbae10e21ea34103da2f81 100644 (file)
@@ -1,4 +1,4 @@
-GXX := g++
+GXX := llvm-g++-4.2
 CLANGXX := clang++
 
 all: one
diff --git a/utils/VtableTest/check-zvt b/utils/VtableTest/check-zvt
new file mode 100755 (executable)
index 0000000..d95cc5b
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+N_STRUCTS=300
+
+# Utility routine to "hand" check vtables.
+
+let i=0;
+while [ $i != $N_STRUCTS ]; do
+  sed -n "/^__ZTV.*s$i:/,/\.[sg][el]/p" test-clang.s | grep -v '\.[sg][el]' >test-clang-ztv
+  sed -n "/^__ZTV.*s$i:/,/\.[sg][el]/p" test-gcc.s | grep -v '\.[sg][el]' >test-gcc-ztv
+  diff -U3 test-gcc-ztv test-clang-ztv
+  if [ $? != 0 ]; then
+     echo "FAIL: s$i vtable"
+  else
+     echo "PASS: s$i vtable"
+  fi
+  let i=i+1
+done