https://github.com/Seraphimt updated https://github.com/llvm/llvm-project/pull/180955
>From 8411b532a145c3b5a39a3785a1ab6c3dbaf446e8 Mon Sep 17 00:00:00 2001 From: Seraphimt <[email protected]> Date: Wed, 11 Feb 2026 12:18:06 +0300 Subject: [PATCH 1/7] Add warning to Sema for multi unseq use volatile. --- clang/lib/Sema/SemaChecking.cpp | 42 ++++++++++++++++++------- clang/test/SemaCXX/warn-unsequenced.cpp | 26 +++++++++++++++ 2 files changed, 56 insertions(+), 12 deletions(-) diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 89171246d0bcb..b9d1ae9240923 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -14015,7 +14015,7 @@ class SequenceChecker : public ConstEvaluatedExprVisitor<SequenceChecker> { }; /// An object for which we can track unsequenced uses. - using Object = const NamedDecl *; + using Object = const ValueDecl *; /// Different flavors of object usage which we track. We only track the /// least-sequenced usage of each kind. @@ -14034,6 +14034,12 @@ class SequenceChecker : public ConstEvaluatedExprVisitor<SequenceChecker> { UK_Count = UK_ModAsSideEffect + 1 }; + enum WarningKind { + WK_UseAndMod, + WK_ModAndMod, + WK_Volatile_UseAndUse + }; + /// Bundle together a sequencing region and the expression corresponding /// to a specific usage. One Usage is stored for each usage kind in UsageInfo. struct Usage { @@ -14179,7 +14185,7 @@ class SequenceChecker : public ConstEvaluatedExprVisitor<SequenceChecker> { /// \p IsModMod is true when we are checking for a mod-mod unsequenced /// usage and false we are checking for a mod-use unsequenced usage. void checkUsage(Object O, UsageInfo &UI, const Expr *UsageExpr, - UsageKind OtherKind, bool IsModMod) { + UsageKind OtherKind, WarningKind WarnKind) { if (UI.Diagnosed) return; @@ -14192,11 +14198,22 @@ class SequenceChecker : public ConstEvaluatedExprVisitor<SequenceChecker> { if (OtherKind == UK_Use) std::swap(Mod, ModOrUse); + unsigned DiagID = 0; + switch (WarnKind) { + case WK_UseAndMod: + DiagID = diag::warn_unsequenced_mod_use; + break; + case WK_ModAndMod: + DiagID = diag::warn_unsequenced_mod_mod; + break; + case WK_Volatile_UseAndUse: + DiagID = diag::warn_unsequenced_use_use_volatile; + break; + } + SemaRef.DiagRuntimeBehavior( Mod->getExprLoc(), {Mod, ModOrUse}, - SemaRef.PDiag(IsModMod ? diag::warn_unsequenced_mod_mod - : diag::warn_unsequenced_mod_use) - << O << SourceRange(ModOrUse->getExprLoc())); + SemaRef.PDiag(DiagID)<< O << SourceRange(ModOrUse->getExprLoc())); UI.Diagnosed = true; } @@ -14229,27 +14246,28 @@ class SequenceChecker : public ConstEvaluatedExprVisitor<SequenceChecker> { void notePreUse(Object O, const Expr *UseExpr) { UsageInfo &UI = UsageMap[O]; // Uses conflict with other modifications. - checkUsage(O, UI, UseExpr, /*OtherKind=*/UK_ModAsValue, /*IsModMod=*/false); + checkUsage(O, UI, UseExpr, /*OtherKind=*/UK_ModAsValue, WK_UseAndMod); + // Volatile uses conflict with other uses. + if (O->getType().isVolatileQualified()) + checkUsage(O, UI, UseExpr, /*OtherKind=*/UK_Use, WK_Volatile_UseAndUse); } void notePostUse(Object O, const Expr *UseExpr) { UsageInfo &UI = UsageMap[O]; - checkUsage(O, UI, UseExpr, /*OtherKind=*/UK_ModAsSideEffect, - /*IsModMod=*/false); + checkUsage(O, UI, UseExpr, /*OtherKind=*/UK_ModAsSideEffect, WK_UseAndMod); addUsage(O, UI, UseExpr, /*UsageKind=*/UK_Use); } void notePreMod(Object O, const Expr *ModExpr) { UsageInfo &UI = UsageMap[O]; // Modifications conflict with other modifications and with uses. - checkUsage(O, UI, ModExpr, /*OtherKind=*/UK_ModAsValue, /*IsModMod=*/true); - checkUsage(O, UI, ModExpr, /*OtherKind=*/UK_Use, /*IsModMod=*/false); + checkUsage(O, UI, ModExpr, /*OtherKind=*/UK_ModAsValue, WK_ModAndMod); + checkUsage(O, UI, ModExpr, /*OtherKind=*/UK_Use, WK_UseAndMod); } void notePostMod(Object O, const Expr *ModExpr, UsageKind UK) { UsageInfo &UI = UsageMap[O]; - checkUsage(O, UI, ModExpr, /*OtherKind=*/UK_ModAsSideEffect, - /*IsModMod=*/true); + checkUsage(O, UI, ModExpr, /*OtherKind=*/UK_ModAsSideEffect, WK_ModAndMod); addUsage(O, UI, ModExpr, /*UsageKind=*/UK); } diff --git a/clang/test/SemaCXX/warn-unsequenced.cpp b/clang/test/SemaCXX/warn-unsequenced.cpp index 50dde8f3a5789..6019eb3929304 100644 --- a/clang/test/SemaCXX/warn-unsequenced.cpp +++ b/clang/test/SemaCXX/warn-unsequenced.cpp @@ -815,3 +815,29 @@ void test_var() { } } // namespace templates + +namespace muliple_read_volatile { + volatile int v1; + + void PositiveTest(){ + int x = 0; + int y = 0; + x = v1 + v1; // cxx11-warning {{unsequenced accesses to volatile qualified 'v1'}} + // cxx17-warning@-1 {{unsequenced accesses to volatile qualified 'v1'}} + v1 = v1 * v1; // cxx11-warning {{unsequenced accesses to volatile qualified 'v1'}} + // cxx17-warning@-1 {{unsequenced accesses to volatile qualified 'v1'}} + x = v1 + (y++, v1); // cxx11-warning {{unsequenced accesses to volatile qualified 'v1'}} + // cxx17-warning@-1 {{unsequenced accesses to volatile qualified 'v1'}} + x = v1 + y || y; // cxx11-warning {{unsequenced accesses to volatile qualified 'v1'}} + // cxx17-warning@-1 {{unsequenced accesses to volatile qualified 'v1'}} + } + + void NegativeTest(){ + int x = 0; + int y = 0; + x = v1 + y; // no-warning + v1 = v1 * y; // no-warning + x = (v1, v1); // no-warning + x = v1 || v1; // no-warning + } +} // namespace volatiles \ No newline at end of file >From 4889b198e22806080f7b602b29526858135f4f02 Mon Sep 17 00:00:00 2001 From: Seraphimt <[email protected]> Date: Wed, 11 Feb 2026 15:58:17 +0300 Subject: [PATCH 2/7] Minor fix. --- clang/include/clang/Basic/DiagnosticSemaKinds.td | 2 ++ clang/test/SemaCXX/warn-unsequenced.cpp | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index f12677ac11600..defd168b2c629 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -2581,6 +2581,8 @@ def warn_unsequenced_mod_mod : Warning< "multiple unsequenced modifications to %0">, InGroup<Unsequenced>; def warn_unsequenced_mod_use : Warning< "unsequenced modification and access to %0">, InGroup<Unsequenced>; +def warn_unsequenced_use_use_volatile : Warning< + "unsequenced volatile accesses to %0">, InGroup<Unsequenced>; def select_initialized_entity_kind : TextSubstitution< "%select{copying variable|copying parameter|initializing template parameter|" diff --git a/clang/test/SemaCXX/warn-unsequenced.cpp b/clang/test/SemaCXX/warn-unsequenced.cpp index 6019eb3929304..3b4a8ec9380d0 100644 --- a/clang/test/SemaCXX/warn-unsequenced.cpp +++ b/clang/test/SemaCXX/warn-unsequenced.cpp @@ -828,7 +828,7 @@ namespace muliple_read_volatile { // cxx17-warning@-1 {{unsequenced accesses to volatile qualified 'v1'}} x = v1 + (y++, v1); // cxx11-warning {{unsequenced accesses to volatile qualified 'v1'}} // cxx17-warning@-1 {{unsequenced accesses to volatile qualified 'v1'}} - x = v1 + y || y; // cxx11-warning {{unsequenced accesses to volatile qualified 'v1'}} + x = v1 + v1 || y; // cxx11-warning {{unsequenced accesses to volatile qualified 'v1'}} // cxx17-warning@-1 {{unsequenced accesses to volatile qualified 'v1'}} } @@ -840,4 +840,4 @@ namespace muliple_read_volatile { x = (v1, v1); // no-warning x = v1 || v1; // no-warning } -} // namespace volatiles \ No newline at end of file +} // namespace muliple_read_volatile \ No newline at end of file >From 204bd16181542dc2724cb9c1ab358d218de73d77 Mon Sep 17 00:00:00 2001 From: Seraphimt <[email protected]> Date: Wed, 11 Feb 2026 20:47:24 +0300 Subject: [PATCH 3/7] Fix clang-format. --- clang/lib/Sema/SemaChecking.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index b9d1ae9240923..4c2eaad980394 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -14034,11 +14034,7 @@ class SequenceChecker : public ConstEvaluatedExprVisitor<SequenceChecker> { UK_Count = UK_ModAsSideEffect + 1 }; - enum WarningKind { - WK_UseAndMod, - WK_ModAndMod, - WK_Volatile_UseAndUse - }; + enum WarningKind { WK_UseAndMod, WK_ModAndMod, WK_Volatile_UseAndUse }; /// Bundle together a sequencing region and the expression corresponding /// to a specific usage. One Usage is stored for each usage kind in UsageInfo. @@ -14203,7 +14199,7 @@ class SequenceChecker : public ConstEvaluatedExprVisitor<SequenceChecker> { case WK_UseAndMod: DiagID = diag::warn_unsequenced_mod_use; break; - case WK_ModAndMod: + case WK_ModAndMod: DiagID = diag::warn_unsequenced_mod_mod; break; case WK_Volatile_UseAndUse: @@ -14213,7 +14209,7 @@ class SequenceChecker : public ConstEvaluatedExprVisitor<SequenceChecker> { SemaRef.DiagRuntimeBehavior( Mod->getExprLoc(), {Mod, ModOrUse}, - SemaRef.PDiag(DiagID)<< O << SourceRange(ModOrUse->getExprLoc())); + SemaRef.PDiag(DiagID) << O << SourceRange(ModOrUse->getExprLoc())); UI.Diagnosed = true; } >From 36f0b43070bfb20ed86f190f9ba4d5f3cf297fc2 Mon Sep 17 00:00:00 2001 From: Seraphimt <[email protected]> Date: Thu, 12 Feb 2026 20:39:06 +0300 Subject: [PATCH 4/7] Add new line in end tests file. --- clang/test/SemaCXX/warn-unsequenced.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/test/SemaCXX/warn-unsequenced.cpp b/clang/test/SemaCXX/warn-unsequenced.cpp index 3b4a8ec9380d0..73b1e3718b211 100644 --- a/clang/test/SemaCXX/warn-unsequenced.cpp +++ b/clang/test/SemaCXX/warn-unsequenced.cpp @@ -840,4 +840,4 @@ namespace muliple_read_volatile { x = (v1, v1); // no-warning x = v1 || v1; // no-warning } -} // namespace muliple_read_volatile \ No newline at end of file +} // namespace muliple_read_volatile >From 0fd7b2ed0e4715f642f760783368a46ee9a46ce0 Mon Sep 17 00:00:00 2001 From: Seraphimt <[email protected]> Date: Fri, 13 Feb 2026 22:14:25 +0300 Subject: [PATCH 5/7] Fix message. --- clang/include/clang/Basic/DiagnosticSemaKinds.td | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index defd168b2c629..90f455611536b 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -2582,7 +2582,7 @@ def warn_unsequenced_mod_mod : Warning< def warn_unsequenced_mod_use : Warning< "unsequenced modification and access to %0">, InGroup<Unsequenced>; def warn_unsequenced_use_use_volatile : Warning< - "unsequenced volatile accesses to %0">, InGroup<Unsequenced>; + "unsequenced accesses to volatile qualified %0">, InGroup<Unsequenced>; def select_initialized_entity_kind : TextSubstitution< "%select{copying variable|copying parameter|initializing template parameter|" >From d8edb3d1f48db3da764da0d46791dd79e110befd Mon Sep 17 00:00:00 2001 From: Seraphimt <[email protected]> Date: Sat, 14 Feb 2026 17:03:24 +0300 Subject: [PATCH 6/7] Add Wno-sequence-point in tests. --- clang/test/CodeGen/PowerPC/builtins-ppc-fma.c | 2 +- clang/test/CodeGen/SystemZ/builtins-systemz-i128.c | 2 +- clang/test/CodeGen/SystemZ/builtins-systemz-vector.c | 2 +- .../CodeGen/SystemZ/builtins-systemz-vector2-constrained.c | 2 +- clang/test/CodeGen/SystemZ/builtins-systemz-vector2.c | 2 +- clang/test/CodeGen/SystemZ/builtins-systemz-vector3.c | 2 +- clang/test/CodeGen/SystemZ/builtins-systemz-vector4.c | 2 +- clang/test/CodeGen/SystemZ/builtins-systemz-vector5.c | 2 +- .../CodeGen/SystemZ/builtins-systemz-zvector-constrained.c | 4 ++-- clang/test/CodeGen/SystemZ/builtins-systemz-zvector-error.c | 2 +- clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c | 4 ++-- .../CodeGen/SystemZ/builtins-systemz-zvector2-constrained.c | 4 ++-- clang/test/CodeGen/SystemZ/builtins-systemz-zvector2.c | 4 ++-- clang/test/CodeGen/SystemZ/builtins-systemz-zvector3.c | 4 ++-- clang/test/CodeGen/SystemZ/builtins-systemz-zvector4.c | 4 ++-- clang/test/CodeGen/SystemZ/builtins-systemz.c | 4 ++-- 16 files changed, 23 insertions(+), 23 deletions(-) diff --git a/clang/test/CodeGen/PowerPC/builtins-ppc-fma.c b/clang/test/CodeGen/PowerPC/builtins-ppc-fma.c index 61421fbf2fecd..4dd7295d8efe1 100644 --- a/clang/test/CodeGen/PowerPC/builtins-ppc-fma.c +++ b/clang/test/CodeGen/PowerPC/builtins-ppc-fma.c @@ -1,5 +1,5 @@ // RUN: %clang_cc1 -triple powerpc64le-gnu-linux \ -// RUN: -target-feature +vsx -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck \ +// RUN: -target-feature +vsx -Wall -Wno-sequence-point -Werror -emit-llvm %s -o - | FileCheck \ // RUN: %s typedef __attribute__((vector_size(4 * sizeof(float)))) float vec_float; diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-i128.c b/clang/test/CodeGen/SystemZ/builtins-systemz-i128.c index 2a20607123af9..436d6a0039f9b 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-i128.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-i128.c @@ -2,7 +2,7 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z14 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-unused -Wno-sequence-point -Werror -emit-llvm %s -o - | FileCheck %s #include <vecintrin.h> diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-vector.c b/clang/test/CodeGen/SystemZ/builtins-systemz-vector.c index ae3b08a1b67eb..0cf7e3732b8c4 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-vector.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-vector.c @@ -1,6 +1,6 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z13 -triple s390x-ibm-linux -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s typedef __attribute__((vector_size(16))) signed char vec_schar; typedef __attribute__((vector_size(16))) signed short vec_sshort; diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-vector2-constrained.c b/clang/test/CodeGen/SystemZ/builtins-systemz-vector2-constrained.c index 12c675041af76..682e6f613f44c 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-vector2-constrained.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-vector2-constrained.c @@ -1,6 +1,6 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z14 -triple s390x-ibm-linux -flax-vector-conversions=none \ -// RUN: -ffp-exception-behavior=strict -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -ffp-exception-behavior=strict -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s typedef __attribute__((vector_size(16))) double vec_double; typedef __attribute__((vector_size(16))) float vec_float; diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-vector2.c b/clang/test/CodeGen/SystemZ/builtins-systemz-vector2.c index 8f9e164ebef8c..3af63f225afad 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-vector2.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-vector2.c @@ -1,6 +1,6 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z14 -triple s390x-ibm-linux -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s typedef __attribute__((vector_size(16))) signed char vec_schar; typedef __attribute__((vector_size(16))) signed short vec_sshort; diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-vector3.c b/clang/test/CodeGen/SystemZ/builtins-systemz-vector3.c index e4af1c1e54b86..0a04affb9c445 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-vector3.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-vector3.c @@ -1,6 +1,6 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z15 -triple s390x-ibm-linux -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s typedef __attribute__((vector_size(16))) signed char vec_schar; typedef __attribute__((vector_size(16))) signed short vec_sshort; diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-vector4.c b/clang/test/CodeGen/SystemZ/builtins-systemz-vector4.c index c5ce47cea2ea8..09ab10fac5116 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-vector4.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-vector4.c @@ -1,6 +1,6 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z16 -triple s390x-ibm-linux -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s typedef __attribute__((vector_size(16))) signed char vec_schar; typedef __attribute__((vector_size(16))) signed short vec_sshort; diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-vector5.c b/clang/test/CodeGen/SystemZ/builtins-systemz-vector5.c index b765fa64b33d4..95fe321d606b1 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-vector5.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-vector5.c @@ -1,6 +1,6 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z17 -triple s390x-ibm-linux -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s typedef __attribute__((vector_size(16))) signed char vec_schar; typedef __attribute__((vector_size(16))) signed short vec_sshort; diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector-constrained.c b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector-constrained.c index 4993df20df143..af750a24767c6 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector-constrained.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector-constrained.c @@ -2,11 +2,11 @@ // RUN: %clang_cc1 -target-cpu z13 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ // RUN: -ffp-exception-behavior=strict \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s // RUN: %clang_cc1 -target-cpu z13 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ // RUN: -ffp-exception-behavior=strict \ -// RUN: -Wall -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM #include <vecintrin.h> diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector-error.c b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector-error.c index 2ec1d960aa5bb..d82cbf0c51b2b 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector-error.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector-error.c @@ -1,7 +1,7 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z13 -triple s390x-linux-gnu \ // RUN: -fzvector -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -fsyntax-only -verify %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -fsyntax-only -verify %s #include <vecintrin.h> diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c index 42298339733d4..9f1283724201c 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector.c @@ -1,10 +1,10 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z13 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s // RUN: %clang_cc1 -target-cpu z13 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM #include <vecintrin.h> diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector2-constrained.c b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector2-constrained.c index 25b3e0b68cd02..6dea4f6bf6600 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector2-constrained.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector2-constrained.c @@ -2,11 +2,11 @@ // RUN: %clang_cc1 -target-cpu z14 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ // RUN: -ffp-exception-behavior=strict \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s // RUN: %clang_cc1 -target-cpu z14 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ // RUN: -ffp-exception-behavior=strict \ -// RUN: -Wall -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM #include <vecintrin.h> diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector2.c b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector2.c index c1ef178fcfaa9..aedd7f734edb8 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector2.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector2.c @@ -1,10 +1,10 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z14 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s // RUN: %clang_cc1 -target-cpu z14 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM #include <vecintrin.h> diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector3.c b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector3.c index ce8b315127237..dd7ec19b2412f 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector3.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector3.c @@ -1,10 +1,10 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z15 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s // RUN: %clang_cc1 -target-cpu z15 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM #include <vecintrin.h> diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector4.c b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector4.c index adc55927ce366..23685cdff8994 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector4.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector4.c @@ -1,10 +1,10 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z16 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s // RUN: %clang_cc1 -target-cpu z16 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM #include <vecintrin.h> diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz.c b/clang/test/CodeGen/SystemZ/builtins-systemz.c index 4848bef4b4aad..61c7cd934f7c4 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz.c @@ -1,6 +1,6 @@ // REQUIRES: systemz-registered-target -// RUN: %clang_cc1 -target-cpu zEC12 -triple s390x-ibm-linux -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s -// RUN: %clang_cc1 -target-cpu zEC12 -triple s390x-ibm-linux -Wall -Wno-unused -Werror -emit-llvm -x c++ %s -o - | FileCheck %s +// RUN: %clang_cc1 -target-cpu zEC12 -triple s390x-ibm-linux -Wall -Wno-unused -Wno-sequence-point -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: %clang_cc1 -target-cpu zEC12 -triple s390x-ibm-linux -Wall -Wno-unused -Wno-sequence-point -Werror -emit-llvm -x c++ %s -o - | FileCheck %s #include <stdint.h> #include <htmintrin.h> >From da20fc4992ed4912c071d76041dc7ee7a612d0f2 Mon Sep 17 00:00:00 2001 From: Seraphimt <[email protected]> Date: Sat, 14 Feb 2026 18:14:56 +0300 Subject: [PATCH 7/7] Add Wno-sequence-point in tests x2. --- clang/test/CodeGen/PowerPC/builtins-ppc-fma.c | 2 +- .../CodeGen/SystemZ/builtins-systemz-vector-constrained.c | 2 +- clang/test/CodeGen/SystemZ/builtins-systemz-zvector5.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/clang/test/CodeGen/PowerPC/builtins-ppc-fma.c b/clang/test/CodeGen/PowerPC/builtins-ppc-fma.c index 4dd7295d8efe1..e26d7793ffb2b 100644 --- a/clang/test/CodeGen/PowerPC/builtins-ppc-fma.c +++ b/clang/test/CodeGen/PowerPC/builtins-ppc-fma.c @@ -1,5 +1,5 @@ // RUN: %clang_cc1 -triple powerpc64le-gnu-linux \ -// RUN: -target-feature +vsx -Wall -Wno-sequence-point -Werror -emit-llvm %s -o - | FileCheck \ +// RUN: -target-feature +vsx -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck \ // RUN: %s typedef __attribute__((vector_size(4 * sizeof(float)))) float vec_float; diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-vector-constrained.c b/clang/test/CodeGen/SystemZ/builtins-systemz-vector-constrained.c index ff24ef9a091b7..0877067a1fdcd 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-vector-constrained.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-vector-constrained.c @@ -1,6 +1,6 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z13 -triple s390x-ibm-linux -flax-vector-conversions=none \ -// RUN: -ffp-exception-behavior=strict -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -ffp-exception-behavior=strict -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s typedef __attribute__((vector_size(16))) signed long long vec_slong; typedef __attribute__((vector_size(16))) double vec_double; diff --git a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector5.c b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector5.c index cd0fafdb7435f..b354219e817f0 100644 --- a/clang/test/CodeGen/SystemZ/builtins-systemz-zvector5.c +++ b/clang/test/CodeGen/SystemZ/builtins-systemz-zvector5.c @@ -1,10 +1,10 @@ // REQUIRES: systemz-registered-target // RUN: %clang_cc1 -target-cpu z17 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s // RUN: %clang_cc1 -target-cpu z17 -triple s390x-linux-gnu \ // RUN: -O2 -fzvector -flax-vector-conversions=none \ -// RUN: -Wall -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM +// RUN: -Wall -Wno-sequence-point -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM #include <vecintrin.h> _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
