diff options
author | Thomas Lively <tlively@google.com> | 2023-10-19 07:41:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-18 22:41:53 -0700 |
commit | f79b5aa26b1fc722853e56b541cd35128786ef6b (patch) | |
tree | 0a8255cb2a3d2c4f1ee41dcb64cbcce4758f4341 /scripts | |
parent | c170fe7893fc05147de455e36d0a36b356b3f3db (diff) | |
download | binaryen-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-x | scripts/clang-format-diff.sh | 9 |
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 |