qa.sh: Add egypt support (callgraphs)
diff --git a/expat/.gitignore b/expat/.gitignore
index 8907f03..7db8835 100755
--- a/expat/.gitignore
+++ b/expat/.gitignore
@@ -24,3 +24,5 @@
*.gcno
*.gcov
*.nccout
+*.expand
+/callgraph--*
diff --git a/expat/qa.sh b/expat/qa.sh
index 0dce871..464eac2 100755
--- a/expat/qa.sh
+++ b/expat/qa.sh
@@ -47,6 +47,9 @@
local CXX="${GCC_CXX}"
BASE_FLAGS+=" --coverage --no-inline"
;;
+ egypt)
+ BASE_FLAGS+=" -fdump-rtl-expand"
+ ;;
memory)
# http://clang.llvm.org/docs/MemorySanitizer.html
BASE_FLAGS+=" -fsanitize=memory -fno-omit-frame-pointer -g -O2"
@@ -65,7 +68,7 @@
;;
*)
echo "Usage:" 1>&2
- echo " ${0##*/} (address|coverage|memory|ncc|undefined)" 1>&2
+ echo " ${0##*/} (address|coverage|egypt|memory|ncc|undefined)" 1>&2
exit 1
;;
esac
@@ -85,7 +88,7 @@
RUN "${MAKE}" clean all
case "${mode}" in
- ncc)
+ egypt|ncc)
;;
*)
RUN "${MAKE}" check run-xmltest
@@ -97,6 +100,17 @@
coverage)
find -name '*.gcda' | sort | xargs gcov
;;
+ egypt)
+ local DOT_FORMAT="${DOT_FORMAT:-svg}"
+ local i=, o=
+ while read i ; do
+ o="${i##./}";
+ o="callgraph--${o//\//--}"
+ o="${o%.c.*.expand}";
+ o="${o//./_}.${DOT_FORMAT}"
+ egypt "${i}" | dot -Grankdir=LR "-T${DOT_FORMAT}" > "${o}"
+ done < <(find -name '*.expand')
+ ;;
ncc)
RUN nccnav ./.libs/libexpat.a.nccout
;;