tint/uniformity: Violations are now errors
Switch the default severity for all uniformity violations to errors.
We now have an opt-out mechanism for deriviative operations (via
diagnostic filters), and a `workgroupUniformLoad()` builtin for
compute shaders.
Bug: tint:1809
Change-Id: I666c706d6195ca0d24ead14c4709e7f646bfcc64
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117741
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/tint/reader/spirv/parser_test.cc b/src/tint/reader/spirv/parser_test.cc
index 3f5e370..9cbb461 100644
--- a/src/tint/reader/spirv/parser_test.cc
+++ b/src/tint/reader/spirv/parser_test.cc
@@ -64,8 +64,7 @@
options.allow_non_uniform_derivatives = false;
auto program = Parse(spv, options);
auto errs = diag::Formatter().format(program.Diagnostics());
- // TODO(jrprice): This will become EXPECT_FALSE.
- EXPECT_TRUE(program.IsValid()) << errs;
+ EXPECT_FALSE(program.IsValid()) << errs;
EXPECT_THAT(errs, ::testing::HasSubstr("'dpdx' must only be called from uniform control flow"));
}
diff --git a/src/tint/resolver/resolver.cc b/src/tint/resolver/resolver.cc
index 0553644..7db9a2f 100644
--- a/src/tint/resolver/resolver.cc
+++ b/src/tint/resolver/resolver.cc
@@ -146,9 +146,7 @@
// Run the uniformity analysis, which requires a complete semantic module.
if (!enabled_extensions_.Contains(ast::Extension::kChromiumDisableUniformityAnalysis)) {
if (!AnalyzeUniformity(builder_, dependencies_)) {
- if (kUniformityFailuresAsError) {
- return false;
- }
+ return false;
}
}
}
diff --git a/src/tint/resolver/uniformity.h b/src/tint/resolver/uniformity.h
index 1139980..fd17449 100644
--- a/src/tint/resolver/uniformity.h
+++ b/src/tint/resolver/uniformity.h
@@ -26,7 +26,7 @@
namespace tint::resolver {
/// If true, uniformity analysis failures will be treated as an error, else as a warning.
-constexpr bool kUniformityFailuresAsError = false;
+constexpr bool kUniformityFailuresAsError = true;
/// Analyze the uniformity of a program.
/// @param builder the program to analyze
diff --git a/src/tint/resolver/uniformity_test.cc b/src/tint/resolver/uniformity_test.cc
index 8f6a710..274287a 100644
--- a/src/tint/resolver/uniformity_test.cc
+++ b/src/tint/resolver/uniformity_test.cc
@@ -43,11 +43,7 @@
bool valid = program.IsValid();
if (should_pass) {
EXPECT_TRUE(valid) << error_;
- if (program.Diagnostics().count() == 1u) {
- EXPECT_THAT(program.Diagnostics().str(), ::testing::HasSubstr("unreachable"));
- } else {
- EXPECT_EQ(program.Diagnostics().count(), 0u) << error_;
- }
+ EXPECT_FALSE(program.Diagnostics().contains_errors());
} else {
if (kUniformityFailuresAsError) {
EXPECT_FALSE(valid);
@@ -408,7 +404,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -469,7 +465,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -512,7 +508,7 @@
if (!should_pass) {
EXPECT_EQ(
error_,
- R"(test:5:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:5:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -547,7 +543,7 @@
if (!should_pass) {
EXPECT_EQ(
error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -592,7 +588,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -623,7 +619,7 @@
RunTest(src, should_pass);
if (!should_pass) {
EXPECT_EQ(error_,
- R"(test:5:5 warning: 'dpdx' must only be called from uniform control flow
+ R"(test:5:5 error: 'dpdx' must only be called from uniform control flow
dpdx(0.5);
^^^^
@@ -657,7 +653,7 @@
RunTest(src, should_pass);
if (!should_pass) {
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'dpdx' must only be called from uniform control flow
+ R"(test:9:5 error: 'dpdx' must only be called from uniform control flow
dpdx(0.5);
^^^^
@@ -694,7 +690,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:5:5 warning: 'dpdx' must only be called from uniform control flow
+ R"(test:5:5 error: 'dpdx' must only be called from uniform control flow
dpdx(0.5);
^^^^
@@ -724,7 +720,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'dpdx' must only be called from uniform control flow
+ R"(test:9:5 error: 'dpdx' must only be called from uniform control flow
dpdx(0.5);
^^^^
@@ -837,7 +833,7 @@
EXPECT_THAT(
error_,
::testing::StartsWith(
- R"(test:13:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:13:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();)"));
EXPECT_THAT(error_,
::testing::HasSubstr("test:14:9 note: reading from read_write storage buffer "
@@ -877,7 +873,7 @@
EXPECT_THAT(
error_,
::testing::StartsWith(
- R"(test:14:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:14:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();)"));
EXPECT_THAT(error_,
::testing::HasSubstr("test:13:9 note: reading from read_write storage buffer "
@@ -918,7 +914,7 @@
EXPECT_THAT(
error_,
::testing::StartsWith(
- R"(test:15:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:15:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();)"));
EXPECT_THAT(error_,
::testing::HasSubstr("test:13:9 note: reading from read_write storage buffer "
@@ -965,7 +961,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:7:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:7:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1016,7 +1012,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1084,7 +1080,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1168,7 +1164,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:14:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:14:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1206,7 +1202,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:15:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:15:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1249,7 +1245,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:20:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:20:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1323,7 +1319,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:20:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:20:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1364,7 +1360,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1408,7 +1404,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:16:9 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:16:9 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1449,7 +1445,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1490,7 +1486,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1608,7 +1604,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:16:9 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:16:9 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1670,7 +1666,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1703,7 +1699,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1758,7 +1754,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1813,7 +1809,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1874,7 +1870,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:15:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:15:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1919,7 +1915,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:21:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:21:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -1961,7 +1957,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2002,7 +1998,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2039,7 +2035,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:7:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:7:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2135,7 +2131,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:7:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:7:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2172,7 +2168,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2237,7 +2233,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:17:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:17:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2284,7 +2280,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:23:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:23:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2327,7 +2323,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2370,7 +2366,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2465,7 +2461,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2493,7 +2489,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:7:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:7:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2522,7 +2518,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2551,7 +2547,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2580,7 +2576,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2609,7 +2605,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2637,7 +2633,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:7:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:7:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2668,7 +2664,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2745,7 +2741,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:15:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:15:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2828,7 +2824,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:12:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:12:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -2865,7 +2861,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:13:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:13:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3022,7 +3018,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:3 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:3 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3059,7 +3055,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:7:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:7:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3089,7 +3085,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:7:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:7:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3124,7 +3120,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:11:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:11:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3213,7 +3209,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:14:9 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:14:9 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3253,7 +3249,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:19:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:19:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3319,7 +3315,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:18:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:18:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3388,7 +3384,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:21:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:21:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3430,7 +3426,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3535,7 +3531,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3565,7 +3561,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3630,7 +3626,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:11:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:11:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3658,7 +3654,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:7:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:7:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3687,7 +3683,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3719,7 +3715,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3755,7 +3751,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:7:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:7:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3788,7 +3784,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3829,7 +3825,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:12:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:12:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3862,7 +3858,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3903,7 +3899,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -3986,7 +3982,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4024,7 +4020,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4065,7 +4061,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4113,7 +4109,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:11:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:11:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4155,7 +4151,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4201,7 +4197,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4249,7 +4245,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4279,7 +4275,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4311,7 +4307,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:11:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:11:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4362,7 +4358,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:11:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:11:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4412,7 +4408,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:12:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:12:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4465,7 +4461,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:12:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:12:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4499,7 +4495,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:13:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:13:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4582,7 +4578,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:21:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:21:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4676,7 +4672,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:18:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:18:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4713,7 +4709,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:16:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:16:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4750,7 +4746,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:16:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:16:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4795,7 +4791,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:24:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:24:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4834,7 +4830,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:18:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:18:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4870,7 +4866,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:7:7 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:7:7 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4906,7 +4902,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:15:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:15:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4943,7 +4939,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:16:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:16:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -4980,7 +4976,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:16:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:16:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5021,7 +5017,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:20:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:20:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5080,7 +5076,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:14:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:14:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5137,7 +5133,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:14:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:14:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5192,7 +5188,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:12:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:12:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5230,7 +5226,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:14:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:14:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5270,7 +5266,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:16:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:16:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5340,7 +5336,7 @@
RunTest(std::move(b), false);
EXPECT_EQ(error_,
- R"(warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(error: 'workgroupBarrier' must only be called from uniform control flow
note: control flow depends on possibly non-uniform value
note: reading from module-scope private variable 'non_uniform_global' may result in a non-uniform value)");
}
@@ -5376,7 +5372,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5405,7 +5401,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5450,7 +5446,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5483,7 +5479,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5601,7 +5597,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5631,7 +5627,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5664,7 +5660,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5693,7 +5689,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5726,7 +5722,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5830,7 +5826,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5863,7 +5859,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5896,7 +5892,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5930,7 +5926,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5965,7 +5961,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -5999,7 +5995,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6029,7 +6025,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6060,7 +6056,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6092,7 +6088,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6124,7 +6120,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6154,7 +6150,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6203,7 +6199,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6236,7 +6232,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:12:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:12:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6289,7 +6285,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:12:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:12:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6326,7 +6322,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:13:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:13:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6364,7 +6360,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:14:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:14:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6402,7 +6398,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:14:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:14:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6457,7 +6453,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:13:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:13:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6558,7 +6554,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:13:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:13:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6594,7 +6590,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:14:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:14:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6630,7 +6626,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:14:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:14:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6667,7 +6663,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:13:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:13:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6708,7 +6704,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6737,7 +6733,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6782,7 +6778,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6813,7 +6809,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6846,7 +6842,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6893,7 +6889,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6926,7 +6922,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6959,7 +6955,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -6992,7 +6988,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:9:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:9:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7026,7 +7022,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7061,7 +7057,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7095,7 +7091,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:10:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:10:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7241,7 +7237,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7268,7 +7264,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7295,7 +7291,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7325,7 +7321,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7355,7 +7351,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:8:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7392,7 +7388,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:5:41 warning: 'dpdx' must only be called from uniform control flow
+ R"(test:5:41 error: 'dpdx' must only be called from uniform control flow
let b = (non_uniform_global == 0) && (dpdx(1.0) == 0.0);
^^^^
@@ -7539,7 +7535,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:16:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:16:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7601,7 +7597,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:17:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:17:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7645,7 +7641,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:21:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:21:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7715,7 +7711,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:28 warning: possibly non-uniform value passed here
+ R"(test:8:28 error: possibly non-uniform value passed here
if (workgroupUniformLoad(&data[idx]) > 0) {
^
@@ -7747,7 +7743,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:8:31 warning: possibly non-uniform value passed here
+ R"(test:8:31 error: possibly non-uniform value passed here
return workgroupUniformLoad(p);
^
@@ -7778,7 +7774,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -7805,7 +7801,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'storageBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'storageBarrier' must only be called from uniform control flow
storageBarrier();
^^^^^^^^^^^^^^
@@ -7864,7 +7860,7 @@
RunTest(std::move(b), false);
EXPECT_EQ(error_,
- R"(warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(error: 'workgroupBarrier' must only be called from uniform control flow
note: control flow depends on possibly non-uniform value
note: reading from module-scope private variable 'v0' may result in a non-uniform value)");
}
@@ -7908,7 +7904,7 @@
}
)";
- RunTest(ss.str(), param == ast::DiagnosticSeverity::kOff);
+ RunTest(ss.str(), param != ast::DiagnosticSeverity::kError);
if (param == ast::DiagnosticSeverity::kOff) {
EXPECT_TRUE(error_.empty());
@@ -7936,7 +7932,7 @@
}
)";
- RunTest(ss.str(), param == ast::DiagnosticSeverity::kOff);
+ RunTest(ss.str(), param != ast::DiagnosticSeverity::kError);
if (param == ast::DiagnosticSeverity::kOff) {
EXPECT_TRUE(error_.empty());
} else {
@@ -7969,7 +7965,7 @@
}
)";
- RunTest(src, false);
+ RunTest(src, true);
EXPECT_THAT(error_, ::testing::HasSubstr("note: 'dpdx' must only be called"));
}
@@ -7989,7 +7985,7 @@
}
)";
- RunTest(src, false);
+ RunTest(src, true);
EXPECT_THAT(error_, ::testing::HasSubstr("note: 'dpdx' must only be called"));
}
@@ -8133,7 +8129,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:14:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:14:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -8168,7 +8164,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:5:3 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:5:3 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -8211,7 +8207,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:5:3 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:5:3 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -8254,7 +8250,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -8317,7 +8313,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:18:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:18:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
@@ -8352,7 +8348,7 @@
RunTest(src, false);
EXPECT_EQ(error_,
- R"(test:6:5 warning: 'workgroupBarrier' must only be called from uniform control flow
+ R"(test:6:5 error: 'workgroupBarrier' must only be called from uniform control flow
workgroupBarrier();
^^^^^^^^^^^^^^^^
diff --git a/src/tint/resolver/validator.cc b/src/tint/resolver/validator.cc
index c791e25..57a2e3a 100644
--- a/src/tint/resolver/validator.cc
+++ b/src/tint/resolver/validator.cc
@@ -169,7 +169,7 @@
valid_type_storage_layouts_(valid_type_storage_layouts) {
// Set default severities for filterable diagnostic rules.
diagnostic_filters_.Set(ast::DiagnosticRule::kDerivativeUniformity,
- ast::DiagnosticSeverity::kWarning);
+ ast::DiagnosticSeverity::kError);
diagnostic_filters_.Set(ast::DiagnosticRule::kChromiumUnreachableCode,
ast::DiagnosticSeverity::kWarning);
}
diff --git a/src/tint/transform/demote_to_helper_test.cc b/src/tint/transform/demote_to_helper_test.cc
index 943da0d..3753360 100644
--- a/src/tint/transform/demote_to_helper_test.cc
+++ b/src/tint/transform/demote_to_helper_test.cc
@@ -542,10 +542,10 @@
@fragment
fn foo_no_discard(@location(0) in : f32, @location(1) coord : vec2<f32>) {
+ let ret = bar_no_discard(in, coord);
if (in == 0.0) {
return;
}
- let ret = bar_no_discard(in, coord);
v2 = ret;
}
)";
@@ -591,10 +591,10 @@
@fragment
fn foo_no_discard(@location(0) in : f32, @location(1) coord : vec2<f32>) {
+ let ret = bar_no_discard(in, coord);
if ((in == 0.0)) {
return;
}
- let ret = bar_no_discard(in, coord);
v2 = ret;
}
)";
@@ -992,8 +992,9 @@
}
var result = 0;
for (var i = 0; i < 10; i = atomicAdd(&a, 1)) {
- result += i32(textureSample(t, s, coord).x);
+ result += i;
}
+ result += i32(textureSample(t, s, coord).x);
return result;
}
)";
@@ -1020,7 +1021,7 @@
break;
}
{
- result += i32(textureSample(t, s, coord).x);
+ result += i;
}
continuing {
@@ -1032,6 +1033,7 @@
}
}
}
+ result += i32(textureSample(t, s, coord).x);
if (tint_discarded) {
discard;
}
@@ -1060,8 +1062,9 @@
var result = 0;
if (!atomicCompareExchangeWeak(&a, i32(in), 42).exchanged) {
let xchg = atomicCompareExchangeWeak(&a, i32(in), 42);
- result = i32(textureSample(t, s, coord).x) * xchg.old_value;
+ result = xchg.old_value;
}
+ result += i32(textureSample(t, s, coord).x);
return result;
}
)";
@@ -1100,8 +1103,9 @@
tint_symbol_3.exchanged = tint_symbol_4.exchanged;
}
let xchg = tint_symbol_3;
- result = (i32(textureSample(t, s, coord).x) * xchg.old_value);
+ result = xchg.old_value;
}
+ result += i32(textureSample(t, s, coord).x);
if (tint_discarded) {
discard;
}