xref: /openbsd-src/gnu/llvm/clang/utils/VtableTest/check-ztt (revision e5dd70708596ae51455a0ffa086a00c5b29f8583)
1*e5dd7070Spatrick#!/bin/sh
2*e5dd7070Spatrick
3*e5dd7070SpatrickN_STRUCTS=300
4*e5dd7070Spatrick
5*e5dd7070Spatrick# Utility routine to "hand" check VTTs.
6*e5dd7070Spatrick
7*e5dd7070Spatricklet i=1;
8*e5dd7070Spatrickwhile [ $i != $N_STRUCTS ]; do
9*e5dd7070Spatrick  sed -n "/^__ZTT.*s$i:/,/\.[sgm][elo]/p" test-clang.s |
10*e5dd7070Spatrick    grep -v '\.[sgm][elo]' | sed -e 's/[()]//g' -e '/^$/d'  >test-clang-ztt
11*e5dd7070Spatrick  sed -n "/^__ZTT.*s$i:/,/\.[sgm][elo]/p" test-gcc.s |
12*e5dd7070Spatrick    grep -v '\.[sgm][elo]' | sed -e 's/[()]//g' -e 's/ + /+/'  >test-gcc-ztt
13*e5dd7070Spatrick  diff -U3 test-gcc-ztt test-clang-ztt
14*e5dd7070Spatrick  if [ $? != 0 ]; then
15*e5dd7070Spatrick     echo "FAIL: s$i VTT"
16*e5dd7070Spatrick  else
17*e5dd7070Spatrick     echo "PASS: s$i VTT"
18*e5dd7070Spatrick  fi
19*e5dd7070Spatrick  let i=i+1
20*e5dd7070Spatrickdone
21