ci: Run tests on llvm 22.
diff --git a/.github/workflows/bindgen.yml b/.github/workflows/bindgen.yml
index 53bd9be..f3f3e5f 100644
--- a/.github/workflows/bindgen.yml
+++ b/.github/workflows/bindgen.yml
@@ -67,7 +67,7 @@
       - uses: actions/checkout@v4
 
       - name: Check without default features
-        run: cargo check -p bindgen --no-default-features --features=runtime 
+        run: cargo check -p bindgen --no-default-features --features=runtime
 
   docs:
     runs-on: ubuntu-latest
@@ -77,9 +77,9 @@
       - uses: actions/checkout@v4
 
       - name: Generate documentation for `bindgen`
-        run: cargo doc --document-private-items --no-deps -p bindgen 
+        run: cargo doc --document-private-items --no-deps -p bindgen
 
-      - name: Generate documentation for `bindgen-cli` 
+      - name: Generate documentation for `bindgen-cli`
         run: cargo doc --document-private-items --no-deps -p bindgen-cli
 
   quickchecking:
@@ -111,7 +111,7 @@
             libtinfo: libtinfo5_6.3+20220423-2ubuntu0.1_amd64.deb
           - os: ubuntu-24.04-arm
             libtinfo: libtinfo5_6.3+20220423-2ubuntu0.1_arm64.deb
-        llvm_version: ["16.0", "20.1"]
+        llvm_version: ["16.0", "20.1", "22.1"]
         release_build: [0, 1]
         no_default_features: [0, 1]
         # FIXME: There are no pre-built static libclang libraries, so the
@@ -125,7 +125,7 @@
           - platform:
               os: ubuntu-latest
               libtinfo: libtinfo5_6.3+20220423-2ubuntu0.1_amd64.deb
-            llvm_version: "20.1"
+            llvm_version: "22.1"
             release_build: 0
             no_default_features: 0
             feature_extra_asserts: 1
@@ -133,7 +133,7 @@
           # Ensure stuff works on macos too
           - platform:
               os: macos-latest
-            llvm_version: "20.1"
+            llvm_version: "22.1"
             release_build: 0
             no_default_features: 0
             feature_extra_asserts: 0
@@ -150,7 +150,9 @@
           wget https://old-releases.ubuntu.com/ubuntu/pool/universe/n/ncurses/${{matrix.platform.libtinfo}}
           sudo dpkg -i ${{matrix.platform.libtinfo}}
       - name: Install LLVM and Clang
-        uses: KyleMayes/install-llvm-action@v2.0.9
+        # TODO: Switch back to KyleMayes/install-llvm-action once
+        # https://github.com/KyleMayes/install-llvm-action/pull/103 is merged
+        uses: momo5502/install-llvm-action@7372aab026498959cff47c82953ba378477d4b00
         with:
           version: ${{matrix.llvm_version}}
       - name: Run all the tests
@@ -160,7 +162,7 @@
           BINDGEN_FEATURE_RUNTIME: ${{matrix.feature_runtime}}
           BINDGEN_FEATURE_EXTRA_ASSERTS: ${{matrix.feature_extra_asserts}}
           BINDGEN_NO_DEFAULT_FEATURES: ${{matrix.no_default_features}}
-          BINDGEN_RUST_FOR_LINUX_TEST: ${{startsWith(matrix.platform.os, 'ubuntu') && matrix.llvm_version == '20.1' && matrix.feature_extra_asserts == 0 && 1 || 0}}
+          BINDGEN_RUST_FOR_LINUX_TEST: ${{startsWith(matrix.platform.os, 'ubuntu') && matrix.llvm_version == '22.1' && matrix.feature_extra_asserts == 0 && 1 || 0}}
         run: ./ci/test.sh
 
   test-book:
@@ -195,7 +197,19 @@
   # separately.
   success:
     runs-on: ubuntu-latest
-    needs: [rustfmt, clippy, msrv, minimal, docs, quickchecking, test-expectations, test, test-book, test-no-headers]
+    needs:
+      [
+        rustfmt,
+        clippy,
+        msrv,
+        minimal,
+        docs,
+        quickchecking,
+        test-expectations,
+        test,
+        test-book,
+        test-no-headers,
+      ]
     # GitHub branch protection is exceedingly silly and treats "jobs skipped
     # because a dependency failed" as success. So we have to do some
     # contortions to ensure the job fails if any of its dependencies fails.