summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2023-10-19 07:41:53 +0200
committerGitHub <noreply@github.com>2023-10-18 22:41:53 -0700
commitf79b5aa26b1fc722853e56b541cd35128786ef6b (patch)
tree0a8255cb2a3d2c4f1ee41dcb64cbcce4758f4341 /scripts
parentc170fe7893fc05147de455e36d0a36b356b3f3db (diff)
downloadbinaryen-f79b5aa26b1fc722853e56b541cd35128786ef6b.tar.gz
binaryen-f79b5aa26b1fc722853e56b541cd35128786ef6b.tar.bz2
binaryen-f79b5aa26b1fc722853e56b541cd35128786ef6b.zip
[analysis][NFC] Use C++20 concepts for Lattice (#6027)
Replace the static assertions ensuring that Lattice types have the necessary operations with a C++20 concept called `Lattice`. To avoid name conflicts with the new concept, rename existing type parameters named `Lattice` to `L`. When not building with C++20, `Lattice` is a macro that resolves to `typename` so the code continues compiling and has the same behavior, but without any eager checks of the requirements on lattices. Add a new C++20 builder to CI to ensure that future changes compile with both C++17 and C++20. Once we switch to C++20 by default, the new builder can be removed. Update the lint builder to use a recent clang-format that understands concepts.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/clang-format-diff.sh9
1 files changed, 6 insertions, 3 deletions
diff --git a/scripts/clang-format-diff.sh b/scripts/clang-format-diff.sh
index 6c7144f58..d0046e8cd 100755
--- a/scripts/clang-format-diff.sh
+++ b/scripts/clang-format-diff.sh
@@ -11,14 +11,17 @@ else
BRANCH="@{upstream}"
fi
+LLVM_VERSION=${LLVM_VERSION:=17}
+
MERGE_BASE=$(git merge-base $BRANCH HEAD)
-FORMAT_MSG=$(git clang-format $MERGE_BASE -q --diff)
+FORMAT_ARGS="--binary=clang-format-${LLVM_VERSION} ${MERGE_BASE}"
+FORMAT_MSG=$(git clang-format ${FORMAT_ARGS} -q --diff)
if [ -n "$FORMAT_MSG" -a "$FORMAT_MSG" != "no modified files to format" ]
then
- echo "Please run git clang-format before committing, or apply this diff:"
+ echo "Please run git clang-format with clang-format-${LLVM_VERSION} before committing, or apply this diff:"
echo
# Run git clang-format again, this time without capruting stdout. This way
# clang-format format the message nicely and add color.
- git clang-format $MERGE_BASE -q --diff
+ git clang-format ${FORMAT_ARGS} -q --diff
exit 1
fi