[clang] [PAC][clang][test] Fix incorrect usage of `-NOT` suffix for FileCheck (PR #212445)
Daniil Kovalev via cfe-commits
cfe-commits at lists.llvm.org
Tue Jul 28 02:56:32 PDT 2026
https://github.com/kovdan01 created https://github.com/llvm/llvm-project/pull/212445
Previously, `-NOT` checks were not doing what was intended: checking that given strings are not present within the same line where other patterns are confirmed present by other checks. `-NOT` semantics is checking pattern absense in between other checks, not total absense.
This patch makes use of `--implicit-check-not` instead for this purpose.
>From 214f296b2908811fcd4e32d1c6e36cef3d30d687 Mon Sep 17 00:00:00 2001
From: Daniil Kovalev <dkovalev at accesssoftek.com>
Date: Tue, 28 Jul 2026 12:40:46 +0300
Subject: [PATCH] [PAC][clang][test] Fix incorrect usage of `-NOT` suffix for
FileCheck
Previously, `-NOT` checks were not doing what was intended: checking
that given strings are not present within the same line where other
patterns are confirmed present by other checks. `-NOT` semantics is
checking pattern absense in between other checks, not total absense.
This patch makes use of `--implicit-check-not` instead for this purpose.
---
clang/test/Driver/aarch64-ptrauth.c | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/clang/test/Driver/aarch64-ptrauth.c b/clang/test/Driver/aarch64-ptrauth.c
index a67e98fdda714..44c1b21a7fca6 100644
--- a/clang/test/Driver/aarch64-ptrauth.c
+++ b/clang/test/Driver/aarch64-ptrauth.c
@@ -1,8 +1,8 @@
// REQUIRES: aarch64-registered-target
-// RUN: %clang -### -c --target=aarch64 %s 2>&1 | FileCheck %s --check-prefix NONE
-// NONE: "-cc1"
-// NONE-NOT: "-fptrauth-
+// RUN: %clang -### -c --target=aarch64 %s 2>&1 | \
+// RUN: FileCheck %s --check-prefix NONE --implicit-check-not='"-fptrauth-'
+// NONE: "-cc1"
//// -fptauth-* driver flags on Linux are only supported with pauthtest ABI.
// RUN: %clang -### -c --target=aarch64-linux -mabi=pauthtest \
@@ -55,24 +55,26 @@
// ALL-DARWIN: "-cc1"{{.*}} "-fptrauth-intrinsics" "-fptrauth-calls" "-fptrauth-returns" "-fptrauth-auth-traps" "-fptrauth-vtable-pointer-address-discrimination" "-fptrauth-vtable-pointer-type-discrimination" "-fptrauth-type-info-vtable-pointer-discrimination" "-fptrauth-indirect-gotos"{{.*}} "-faarch64-jump-table-hardening"
// RUN: %clang -### -c --target=aarch64-linux -mabi=pauthtest %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI1
-// RUN: %clang -### -c --target=aarch64-linux-pauthtest %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI1
+// RUN: %clang -### -c --target=aarch64-linux-pauthtest %s 2>&1 | \
+// RUN: FileCheck %s --check-prefix=PAUTHABI1 --implicit-check-not='"-fptrauth-function-pointer-type-discrimination"'
// PAUTHABI1: "-cc1"{{.*}} "-triple" "aarch64-unknown-linux-pauthtest"
// PAUTHABI1-SAME: "-fptrauth-intrinsics" "-fptrauth-calls" "-fptrauth-returns" "-fptrauth-auth-traps" "-fptrauth-vtable-pointer-address-discrimination" "-fptrauth-vtable-pointer-type-discrimination" "-fptrauth-type-info-vtable-pointer-discrimination" "-fptrauth-indirect-gotos" "-fptrauth-init-fini" "-fptrauth-init-fini-address-discrimination" "-faarch64-jump-table-hardening"
// PAUTHABI1-SAME: "-target-abi" "pauthtest"
-// PAUTHABI1-NOT: "-fptrauth-function-pointer-type-discrimination"
// RUN: %clang -### -c --target=aarch64-linux -mabi=pauthtest -fno-ptrauth-intrinsics \
// RUN: -fno-ptrauth-calls -fno-ptrauth-returns -fno-ptrauth-auth-traps \
// RUN: -fno-ptrauth-vtable-pointer-address-discrimination -fno-ptrauth-vtable-pointer-type-discrimination \
// RUN: -fno-ptrauth-type-info-vtable-pointer-discrimination -fno-ptrauth-indirect-gotos \
// RUN: -fno-ptrauth-init-fini -fno-ptrauth-init-fini-address-discrimination \
-// RUN: -fno-aarch64-jump-table-hardening %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI2
+// RUN: -fno-aarch64-jump-table-hardening %s 2>&1 | \
+// RUN: FileCheck %s --check-prefix=PAUTHABI2 --implicit-check-not='"-fptrauth-' --implicit-check-not='"-faarch64-jump-table-hardening"'
// RUN: %clang -### -c --target=aarch64-linux-pauthtest -fno-ptrauth-intrinsics \
// RUN: -fno-ptrauth-calls -fno-ptrauth-returns -fno-ptrauth-auth-traps \
// RUN: -fno-ptrauth-vtable-pointer-address-discrimination -fno-ptrauth-vtable-pointer-type-discrimination \
// RUN: -fno-ptrauth-type-info-vtable-pointer-discrimination -fno-ptrauth-indirect-gotos \
// RUN: -fno-ptrauth-init-fini -fno-ptrauth-init-fini-address-discrimination \
-// RUN: -fno-aarch64-jump-table-hardening %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI2
+// RUN: -fno-aarch64-jump-table-hardening %s 2>&1 | \
+// RUN: FileCheck %s --check-prefix=PAUTHABI2 --implicit-check-not='"-fptrauth-' --implicit-check-not='"-faarch64-jump-table-hardening"'
//// Non-linux OS: pauthtest ABI has no effect in terms of passing ptrauth cc1 flags.
//// An error about unsupported ABI will be emitted later in pipeline (see ERR3 below)
@@ -80,15 +82,12 @@
// PAUTHABI2: "-cc1"
// PAUTHABI2-SAME: "-target-abi" "pauthtest"
-// PAUTHABI2-NOT: "-fptrauth-
-// PAUTHABI2-NOT: "-faarch64-jump-table-hardening"
//// Non-linux OS: pauthtest environment does not correspond to pauthtest ABI; aapcs is the default.
-// RUN: %clang -### -c --target=aarch64-pauthtest %s 2>&1 | FileCheck %s --check-prefix=PAUTHABI3
+// RUN: %clang -### -c --target=aarch64-pauthtest %s 2>&1 | \
+// RUN: FileCheck %s --check-prefix=PAUTHABI3 --implicit-check-not='"-fptrauth-' --implicit-check-not='"-faarch64-jump-table-hardening"'
// PAUTHABI3: "-cc1"
// PAUTHABI3-SAME: "-target-abi" "aapcs"
-// PAUTHABI3-NOT: "-fptrauth-
-// PAUTHABI3-NOT: "-faarch64-jump-table-hardening"
//// Non-pauthtest ABI.
// RUN: not %clang -### -c --target=aarch64-linux -fptrauth-intrinsics -fptrauth-calls -fptrauth-returns -fptrauth-auth-traps \
More information about the cfe-commits
mailing list