wgsl-reader: reject identifiers starting with underscrore
Update one test to avoid this error.
Fixed: tint:1179
Change-Id: Id41b0eb0f404648de4e86a835fe43f1729cb4696
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/64464
Auto-Submit: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: David Neto <dneto@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/docs/origin-trial-changes.md b/docs/origin-trial-changes.md
index 253c961..6da54e0 100644
--- a/docs/origin-trial-changes.md
+++ b/docs/origin-trial-changes.md
@@ -9,4 +9,5 @@
### Fixes
* Hex floats: issue an error when the magnitude is non-zero, and the exponent would cause
overflow. https://crbug.com/tint/1150 https://crbug.com/tint/1166
+* Reject identifiers beginning with an underscore. https://crbug.com/tint/1179
diff --git a/src/reader/wgsl/lexer.cc b/src/reader/wgsl/lexer.cc
index 832fd08..4bcba2f 100644
--- a/src/reader/wgsl/lexer.cc
+++ b/src/reader/wgsl/lexer.cc
@@ -119,15 +119,15 @@
}
bool Lexer::is_alpha(char ch) const {
- return std::isalpha(ch) || ch == '_';
+ return std::isalpha(ch);
}
bool Lexer::is_digit(char ch) const {
return std::isdigit(ch);
}
-bool Lexer::is_alphanum(char ch) const {
- return is_alpha(ch) || is_digit(ch);
+bool Lexer::is_alphanum_underscore(char ch) const {
+ return is_alpha(ch) || is_digit(ch) || ch == '_';
}
bool Lexer::is_hex(char ch) const {
@@ -660,7 +660,7 @@
}
Token Lexer::try_ident() {
- // Must begin with an a-zA-Z_
+ // Must begin with an a-zA-Z
if (!is_alpha(content_->data[pos_])) {
return {};
}
@@ -668,7 +668,7 @@
auto source = begin_source();
auto s = pos_;
- while (!is_eof() && is_alphanum(content_->data[pos_])) {
+ while (!is_eof() && is_alphanum_underscore(content_->data[pos_])) {
pos_++;
location_.column++;
}
diff --git a/src/reader/wgsl/lexer.h b/src/reader/wgsl/lexer.h
index 9c96bb5..c40ad7e 100644
--- a/src/reader/wgsl/lexer.h
+++ b/src/reader/wgsl/lexer.h
@@ -56,10 +56,19 @@
void end_source(Source&) const;
bool is_eof() const;
+ /// @param ch a character
+ /// @returns true if 'ch' is an alphabetic character
bool is_alpha(char ch) const;
+ /// @param ch a character
+ /// @returns true if 'ch' is a decimal digit
bool is_digit(char ch) const;
+ /// @param ch a character
+ /// @returns true if 'ch' is a hexadecimal digit
bool is_hex(char ch) const;
- bool is_alphanum(char ch) const;
+ /// @param ch a character
+ /// @returns true if 'ch' is a digit, an alphabetic character,
+ /// or an underscore.
+ bool is_alphanum_underscore(char ch) const;
bool matches(size_t pos, const std::string& substr);
/// The source file path
diff --git a/src/reader/wgsl/lexer_test.cc b/src/reader/wgsl/lexer_test.cc
index 2bc0765..24c5298 100644
--- a/src/reader/wgsl/lexer_test.cc
+++ b/src/reader/wgsl/lexer_test.cc
@@ -186,10 +186,26 @@
EXPECT_EQ(t.source().range.end.column, 1u + strlen(GetParam()));
EXPECT_EQ(t.to_str(), GetParam());
}
-INSTANTIATE_TEST_SUITE_P(
- LexerTest,
- IdentifierTest,
- testing::Values("test01", "_test_", "test_", "_test", "_01", "_test01"));
+INSTANTIATE_TEST_SUITE_P(LexerTest,
+ IdentifierTest,
+ testing::Values("a",
+ "test",
+ "test01",
+ "test_",
+ "test_01",
+ "ALLCAPS",
+ "MiXeD_CaSe",
+ "abcdefghijklmnopqrstuvwxyz",
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
+ "alldigits_0123456789"));
+
+TEST_F(LexerTest, IdentifierTest_DoesNotStartWithUnderscore) {
+ Source::FileContent content("_test");
+ Lexer l("test.wgsl", &content);
+
+ auto t = l.next();
+ EXPECT_FALSE(t.IsIdentifier());
+}
TEST_F(LexerTest, IdentifierTest_DoesNotStartWithNumber) {
Source::FileContent content("01test");
diff --git a/test/bug/tint/922.wgsl b/test/bug/tint/922.wgsl
index 52bc8e3..09d3876 100644
--- a/test/bug/tint/922.wgsl
+++ b/test/bug/tint/922.wgsl
@@ -57,40 +57,40 @@
var m1: Mat4x3_;
m1 = m;
- let _e2: Mat4x3_ = m1;
- let _e5: Mat4x3_ = m1;
- let _e8: Mat4x3_ = m1;
- return vec3<f32>(_e2.mx.x, _e5.my.x, _e8.mz.x);
+ let x_e2: Mat4x3_ = m1;
+ let x_e5: Mat4x3_ = m1;
+ let x_e8: Mat4x3_ = m1;
+ return vec3<f32>(x_e2.mx.x, x_e5.my.x, x_e8.mz.x);
}
fn Mat4x3GetCol1_(m2: Mat4x3_) -> vec3<f32> {
var m3: Mat4x3_;
m3 = m2;
- let _e2: Mat4x3_ = m3;
- let _e5: Mat4x3_ = m3;
- let _e8: Mat4x3_ = m3;
- return vec3<f32>(_e2.mx.y, _e5.my.y, _e8.mz.y);
+ let x_e2: Mat4x3_ = m3;
+ let x_e5: Mat4x3_ = m3;
+ let x_e8: Mat4x3_ = m3;
+ return vec3<f32>(x_e2.mx.y, x_e5.my.y, x_e8.mz.y);
}
fn Mat4x3GetCol2_(m4: Mat4x3_) -> vec3<f32> {
var m5: Mat4x3_;
m5 = m4;
- let _e2: Mat4x3_ = m5;
- let _e5: Mat4x3_ = m5;
- let _e8: Mat4x3_ = m5;
- return vec3<f32>(_e2.mx.z, _e5.my.z, _e8.mz.z);
+ let x_e2: Mat4x3_ = m5;
+ let x_e5: Mat4x3_ = m5;
+ let x_e8: Mat4x3_ = m5;
+ return vec3<f32>(x_e2.mx.z, x_e5.my.z, x_e8.mz.z);
}
fn Mat4x3GetCol3_(m6: Mat4x3_) -> vec3<f32> {
var m7: Mat4x3_;
m7 = m6;
- let _e2: Mat4x3_ = m7;
- let _e5: Mat4x3_ = m7;
- let _e8: Mat4x3_ = m7;
- return vec3<f32>(_e2.mx.w, _e5.my.w, _e8.mz.w);
+ let x_e2: Mat4x3_ = m7;
+ let x_e5: Mat4x3_ = m7;
+ let x_e8: Mat4x3_ = m7;
+ return vec3<f32>(x_e2.mx.w, x_e5.my.w, x_e8.mz.w);
}
fn Mul(m8: Mat4x4_, v: vec4<f32>) -> vec4<f32> {
@@ -99,15 +99,15 @@
m9 = m8;
v1 = v;
- let _e4: Mat4x4_ = m9;
- let _e6: vec4<f32> = v1;
- let _e8: Mat4x4_ = m9;
- let _e10: vec4<f32> = v1;
- let _e12: Mat4x4_ = m9;
- let _e14: vec4<f32> = v1;
- let _e16: Mat4x4_ = m9;
- let _e18: vec4<f32> = v1;
- return vec4<f32>(dot(_e4.mx, _e6), dot(_e8.my, _e10), dot(_e12.mz, _e14), dot(_e16.mw, _e18));
+ let x_e4: Mat4x4_ = m9;
+ let x_e6: vec4<f32> = v1;
+ let x_e8: Mat4x4_ = m9;
+ let x_e10: vec4<f32> = v1;
+ let x_e12: Mat4x4_ = m9;
+ let x_e14: vec4<f32> = v1;
+ let x_e16: Mat4x4_ = m9;
+ let x_e18: vec4<f32> = v1;
+ return vec4<f32>(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10), dot(x_e12.mz, x_e14), dot(x_e16.mw, x_e18));
}
fn Mul1(m10: Mat4x3_, v2: vec4<f32>) -> vec3<f32> {
@@ -116,13 +116,13 @@
m11 = m10;
v3 = v2;
- let _e4: Mat4x3_ = m11;
- let _e6: vec4<f32> = v3;
- let _e8: Mat4x3_ = m11;
- let _e10: vec4<f32> = v3;
- let _e12: Mat4x3_ = m11;
- let _e14: vec4<f32> = v3;
- return vec3<f32>(dot(_e4.mx, _e6), dot(_e8.my, _e10), dot(_e12.mz, _e14));
+ let x_e4: Mat4x3_ = m11;
+ let x_e6: vec4<f32> = v3;
+ let x_e8: Mat4x3_ = m11;
+ let x_e10: vec4<f32> = v3;
+ let x_e12: Mat4x3_ = m11;
+ let x_e14: vec4<f32> = v3;
+ return vec3<f32>(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10), dot(x_e12.mz, x_e14));
}
fn Mul2(m12: Mat4x2_, v4: vec4<f32>) -> vec2<f32> {
@@ -131,11 +131,11 @@
m13 = m12;
v5 = v4;
- let _e4: Mat4x2_ = m13;
- let _e6: vec4<f32> = v5;
- let _e8: Mat4x2_ = m13;
- let _e10: vec4<f32> = v5;
- return vec2<f32>(dot(_e4.mx, _e6), dot(_e8.my, _e10));
+ let x_e4: Mat4x2_ = m13;
+ let x_e6: vec4<f32> = v5;
+ let x_e8: Mat4x2_ = m13;
+ let x_e10: vec4<f32> = v5;
+ return vec2<f32>(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10));
}
fn Mul3(v6: vec3<f32>, m14: Mat4x3_) -> vec4<f32> {
@@ -144,143 +144,143 @@
v7 = v6;
m15 = m14;
- let _e5: Mat4x3_ = m15;
- let _e6: vec3<f32> = Mat4x3GetCol0_(_e5);
- let _e7: vec3<f32> = v7;
- let _e10: Mat4x3_ = m15;
- let _e11: vec3<f32> = Mat4x3GetCol1_(_e10);
- let _e12: vec3<f32> = v7;
- let _e15: Mat4x3_ = m15;
- let _e16: vec3<f32> = Mat4x3GetCol2_(_e15);
- let _e17: vec3<f32> = v7;
- let _e20: Mat4x3_ = m15;
- let _e21: vec3<f32> = Mat4x3GetCol3_(_e20);
- let _e22: vec3<f32> = v7;
- return vec4<f32>(dot(_e6, _e7), dot(_e11, _e12), dot(_e16, _e17), dot(_e21, _e22));
+ let x_e5: Mat4x3_ = m15;
+ let x_e6: vec3<f32> = Mat4x3GetCol0_(x_e5);
+ let x_e7: vec3<f32> = v7;
+ let x_e10: Mat4x3_ = m15;
+ let x_e11: vec3<f32> = Mat4x3GetCol1_(x_e10);
+ let x_e12: vec3<f32> = v7;
+ let x_e15: Mat4x3_ = m15;
+ let x_e16: vec3<f32> = Mat4x3GetCol2_(x_e15);
+ let x_e17: vec3<f32> = v7;
+ let x_e20: Mat4x3_ = m15;
+ let x_e21: vec3<f32> = Mat4x3GetCol3_(x_e20);
+ let x_e22: vec3<f32> = v7;
+ return vec4<f32>(dot(x_e6, x_e7), dot(x_e11, x_e12), dot(x_e16, x_e17), dot(x_e21, x_e22));
}
-fn _Mat4x4_(n: f32) -> Mat4x4_ {
+fn x_Mat4x4_(n: f32) -> Mat4x4_ {
var n1: f32;
var o: Mat4x4_;
n1 = n;
- let _e4: f32 = n1;
- o.mx = vec4<f32>(_e4, 0.0, 0.0, 0.0);
- let _e11: f32 = n1;
- o.my = vec4<f32>(0.0, _e11, 0.0, 0.0);
- let _e18: f32 = n1;
- o.mz = vec4<f32>(0.0, 0.0, _e18, 0.0);
- let _e25: f32 = n1;
- o.mw = vec4<f32>(0.0, 0.0, 0.0, _e25);
- let _e27: Mat4x4_ = o;
- return _e27;
+ let x_e4: f32 = n1;
+ o.mx = vec4<f32>(x_e4, 0.0, 0.0, 0.0);
+ let x_e11: f32 = n1;
+ o.my = vec4<f32>(0.0, x_e11, 0.0, 0.0);
+ let x_e18: f32 = n1;
+ o.mz = vec4<f32>(0.0, 0.0, x_e18, 0.0);
+ let x_e25: f32 = n1;
+ o.mw = vec4<f32>(0.0, 0.0, 0.0, x_e25);
+ let x_e27: Mat4x4_ = o;
+ return x_e27;
}
-fn _Mat4x4_1(m16: Mat4x3_) -> Mat4x4_ {
+fn x_Mat4x4_1(m16: Mat4x3_) -> Mat4x4_ {
var m17: Mat4x3_;
var o1: Mat4x4_;
m17 = m16;
- let _e4: Mat4x4_ = _Mat4x4_(1.0);
- o1 = _e4;
- let _e7: Mat4x3_ = m17;
- o1.mx = _e7.mx;
- let _e10: Mat4x3_ = m17;
- o1.my = _e10.my;
- let _e13: Mat4x3_ = m17;
- o1.mz = _e13.mz;
- let _e15: Mat4x4_ = o1;
- return _e15;
+ let x_e4: Mat4x4_ = x_Mat4x4_(1.0);
+ o1 = x_e4;
+ let x_e7: Mat4x3_ = m17;
+ o1.mx = x_e7.mx;
+ let x_e10: Mat4x3_ = m17;
+ o1.my = x_e10.my;
+ let x_e13: Mat4x3_ = m17;
+ o1.mz = x_e13.mz;
+ let x_e15: Mat4x4_ = o1;
+ return x_e15;
}
-fn _Mat4x4_2(m18: Mat4x2_) -> Mat4x4_ {
+fn x_Mat4x4_2(m18: Mat4x2_) -> Mat4x4_ {
var m19: Mat4x2_;
var o2: Mat4x4_;
m19 = m18;
- let _e4: Mat4x4_ = _Mat4x4_(1.0);
- o2 = _e4;
- let _e7: Mat4x2_ = m19;
- o2.mx = _e7.mx;
- let _e10: Mat4x2_ = m19;
- o2.my = _e10.my;
- let _e12: Mat4x4_ = o2;
- return _e12;
+ let x_e4: Mat4x4_ = x_Mat4x4_(1.0);
+ o2 = x_e4;
+ let x_e7: Mat4x2_ = m19;
+ o2.mx = x_e7.mx;
+ let x_e10: Mat4x2_ = m19;
+ o2.my = x_e10.my;
+ let x_e12: Mat4x4_ = o2;
+ return x_e12;
}
-fn _Mat4x3_(n2: f32) -> Mat4x3_ {
+fn x_Mat4x3_(n2: f32) -> Mat4x3_ {
var n3: f32;
var o3: Mat4x3_;
n3 = n2;
- let _e4: f32 = n3;
- o3.mx = vec4<f32>(_e4, 0.0, 0.0, 0.0);
- let _e11: f32 = n3;
- o3.my = vec4<f32>(0.0, _e11, 0.0, 0.0);
- let _e18: f32 = n3;
- o3.mz = vec4<f32>(0.0, 0.0, _e18, 0.0);
- let _e21: Mat4x3_ = o3;
- return _e21;
+ let x_e4: f32 = n3;
+ o3.mx = vec4<f32>(x_e4, 0.0, 0.0, 0.0);
+ let x_e11: f32 = n3;
+ o3.my = vec4<f32>(0.0, x_e11, 0.0, 0.0);
+ let x_e18: f32 = n3;
+ o3.mz = vec4<f32>(0.0, 0.0, x_e18, 0.0);
+ let x_e21: Mat4x3_ = o3;
+ return x_e21;
}
-fn _Mat4x3_1(m20: Mat4x4_) -> Mat4x3_ {
+fn x_Mat4x3_1(m20: Mat4x4_) -> Mat4x3_ {
var m21: Mat4x4_;
var o4: Mat4x3_;
m21 = m20;
- let _e4: Mat4x4_ = m21;
- o4.mx = _e4.mx;
- let _e7: Mat4x4_ = m21;
- o4.my = _e7.my;
- let _e10: Mat4x4_ = m21;
- o4.mz = _e10.mz;
- let _e12: Mat4x3_ = o4;
- return _e12;
+ let x_e4: Mat4x4_ = m21;
+ o4.mx = x_e4.mx;
+ let x_e7: Mat4x4_ = m21;
+ o4.my = x_e7.my;
+ let x_e10: Mat4x4_ = m21;
+ o4.mz = x_e10.mz;
+ let x_e12: Mat4x3_ = o4;
+ return x_e12;
}
fn main1() {
var t_PosMtx: Mat4x3_;
var t_TexSpaceCoord: vec2<f32>;
- let _e15: f32 = a_PosMtxIdx1;
- let _e18: Mat4x3_ = global2.u_PosMtx[i32(_e15)];
- t_PosMtx = _e18;
- let _e23: Mat4x3_ = t_PosMtx;
- let _e24: Mat4x4_ = _Mat4x4_1(_e23);
- let _e25: vec3<f32> = a_Position1;
- let _e29: Mat4x3_ = t_PosMtx;
- let _e30: Mat4x4_ = _Mat4x4_1(_e29);
- let _e31: vec3<f32> = a_Position1;
- let _e34: vec4<f32> = Mul(_e30, vec4<f32>(_e31, 1.0));
- let _e35: Mat4x4_ = global.u_Projection;
- let _e37: Mat4x3_ = t_PosMtx;
- let _e38: Mat4x4_ = _Mat4x4_1(_e37);
- let _e39: vec3<f32> = a_Position1;
- let _e43: Mat4x3_ = t_PosMtx;
- let _e44: Mat4x4_ = _Mat4x4_1(_e43);
- let _e45: vec3<f32> = a_Position1;
- let _e48: vec4<f32> = Mul(_e44, vec4<f32>(_e45, 1.0));
- let _e49: vec4<f32> = Mul(_e35, _e48);
- gl_Position = _e49;
- let _e50: vec4<f32> = a_Color1;
- v_Color = _e50;
- let _e52: vec4<f32> = global1.u_Misc0_;
- if ((_e52.x == 2.0)) {
+ let x_e15: f32 = a_PosMtxIdx1;
+ let x_e18: Mat4x3_ = global2.u_PosMtx[i32(x_e15)];
+ t_PosMtx = x_e18;
+ let x_e23: Mat4x3_ = t_PosMtx;
+ let x_e24: Mat4x4_ = x_Mat4x4_1(x_e23);
+ let x_e25: vec3<f32> = a_Position1;
+ let x_e29: Mat4x3_ = t_PosMtx;
+ let x_e30: Mat4x4_ = x_Mat4x4_1(x_e29);
+ let x_e31: vec3<f32> = a_Position1;
+ let x_e34: vec4<f32> = Mul(x_e30, vec4<f32>(x_e31, 1.0));
+ let x_e35: Mat4x4_ = global.u_Projection;
+ let x_e37: Mat4x3_ = t_PosMtx;
+ let x_e38: Mat4x4_ = x_Mat4x4_1(x_e37);
+ let x_e39: vec3<f32> = a_Position1;
+ let x_e43: Mat4x3_ = t_PosMtx;
+ let x_e44: Mat4x4_ = x_Mat4x4_1(x_e43);
+ let x_e45: vec3<f32> = a_Position1;
+ let x_e48: vec4<f32> = Mul(x_e44, vec4<f32>(x_e45, 1.0));
+ let x_e49: vec4<f32> = Mul(x_e35, x_e48);
+ gl_Position = x_e49;
+ let x_e50: vec4<f32> = a_Color1;
+ v_Color = x_e50;
+ let x_e52: vec4<f32> = global1.u_Misc0_;
+ if ((x_e52.x == 2.0)) {
{
- let _e59: vec3<f32> = a_Normal1;
- let _e64: Mat4x2_ = global1.u_TexMtx[0];
- let _e65: vec3<f32> = a_Normal1;
- let _e68: vec2<f32> = Mul2(_e64, vec4<f32>(_e65, 1.0));
- v_TexCoord = _e68.xy;
+ let x_e59: vec3<f32> = a_Normal1;
+ let x_e64: Mat4x2_ = global1.u_TexMtx[0];
+ let x_e65: vec3<f32> = a_Normal1;
+ let x_e68: vec2<f32> = Mul2(x_e64, vec4<f32>(x_e65, 1.0));
+ v_TexCoord = x_e68.xy;
return;
}
} else {
{
- let _e73: vec2<f32> = a_UV1;
- let _e79: Mat4x2_ = global1.u_TexMtx[0];
- let _e80: vec2<f32> = a_UV1;
- let _e84: vec2<f32> = Mul2(_e79, vec4<f32>(_e80, 1.0, 1.0));
- v_TexCoord = _e84.xy;
+ let x_e73: vec2<f32> = a_UV1;
+ let x_e79: Mat4x2_ = global1.u_TexMtx[0];
+ let x_e80: vec2<f32> = a_UV1;
+ let x_e84: vec2<f32> = Mul2(x_e79, vec4<f32>(x_e80, 1.0, 1.0));
+ v_TexCoord = x_e84.xy;
return;
}
}
@@ -294,8 +294,8 @@
a_Normal1 = a_Normal;
a_PosMtxIdx1 = a_PosMtxIdx;
main1();
- let _e11: vec4<f32> = v_Color;
- let _e13: vec2<f32> = v_TexCoord;
- let _e15: vec4<f32> = gl_Position;
- return VertexOutput(_e11, _e13, _e15);
-}
\ No newline at end of file
+ let x_e11: vec4<f32> = v_Color;
+ let x_e13: vec2<f32> = v_TexCoord;
+ let x_e15: vec4<f32> = gl_Position;
+ return VertexOutput(x_e11, x_e13, x_e15);
+}
diff --git a/test/bug/tint/922.wgsl.expected.hlsl b/test/bug/tint/922.wgsl.expected.hlsl
index ebd6476..7043767 100644
--- a/test/bug/tint/922.wgsl.expected.hlsl
+++ b/test/bug/tint/922.wgsl.expected.hlsl
@@ -90,17 +90,17 @@
Mat4x3_ m15 = (Mat4x3_)0;
v7 = v6;
m15 = m14;
- const float3 _e6 = Mat4x3GetCol0_(m15);
- const float3 _e7 = v7;
- const float3 _e11 = Mat4x3GetCol1_(m15);
- const float3 _e12 = v7;
- const float3 _e16 = Mat4x3GetCol2_(m15);
- const float3 _e17 = v7;
- const float3 _e21 = Mat4x3GetCol3_(m15);
- return float4(dot(_e6, _e7), dot(_e11, _e12), dot(_e16, _e17), dot(_e21, v7));
+ const float3 x_e6 = Mat4x3GetCol0_(m15);
+ const float3 x_e7 = v7;
+ const float3 x_e11 = Mat4x3GetCol1_(m15);
+ const float3 x_e12 = v7;
+ const float3 x_e16 = Mat4x3GetCol2_(m15);
+ const float3 x_e17 = v7;
+ const float3 x_e21 = Mat4x3GetCol3_(m15);
+ return float4(dot(x_e6, x_e7), dot(x_e11, x_e12), dot(x_e16, x_e17), dot(x_e21, v7));
}
-Mat4x4_ _Mat4x4_(float n) {
+Mat4x4_ x_Mat4x4_(float n) {
float n1 = 0.0f;
Mat4x4_ o = (Mat4x4_)0;
n1 = n;
@@ -111,30 +111,30 @@
return o;
}
-Mat4x4_ _Mat4x4_1(Mat4x3_ m16) {
+Mat4x4_ x_Mat4x4_1(Mat4x3_ m16) {
Mat4x3_ m17 = (Mat4x3_)0;
Mat4x4_ o1 = (Mat4x4_)0;
m17 = m16;
- const Mat4x4_ _e4 = _Mat4x4_(1.0f);
- o1 = _e4;
+ const Mat4x4_ x_e4 = x_Mat4x4_(1.0f);
+ o1 = x_e4;
o1.mx = m17.mx;
o1.my = m17.my;
o1.mz = m17.mz;
return o1;
}
-Mat4x4_ _Mat4x4_2(Mat4x2_ m18) {
+Mat4x4_ x_Mat4x4_2(Mat4x2_ m18) {
Mat4x2_ m19 = (Mat4x2_)0;
Mat4x4_ o2 = (Mat4x4_)0;
m19 = m18;
- const Mat4x4_ _e4 = _Mat4x4_(1.0f);
- o2 = _e4;
+ const Mat4x4_ x_e4 = x_Mat4x4_(1.0f);
+ o2 = x_e4;
o2.mx = m19.mx;
o2.my = m19.my;
return o2;
}
-Mat4x3_ _Mat4x3_(float n2) {
+Mat4x3_ x_Mat4x3_(float n2) {
float n3 = 0.0f;
Mat4x3_ o3 = (Mat4x3_)0;
n3 = n2;
@@ -144,7 +144,7 @@
return o3;
}
-Mat4x3_ _Mat4x3_1(Mat4x4_ m20) {
+Mat4x3_ x_Mat4x3_1(Mat4x4_ m20) {
Mat4x4_ m21 = (Mat4x4_)0;
Mat4x3_ o4 = (Mat4x3_)0;
m21 = m20;
@@ -181,35 +181,35 @@
void main1() {
Mat4x3_ t_PosMtx = (Mat4x3_)0;
float2 t_TexSpaceCoord = float2(0.0f, 0.0f);
- const Mat4x3_ _e18 = tint_symbol_3(global2, (48u * uint(int(a_PosMtxIdx1))));
- t_PosMtx = _e18;
- const Mat4x4_ _e24 = _Mat4x4_1(t_PosMtx);
- const float3 _e25 = a_Position1;
- const Mat4x4_ _e30 = _Mat4x4_1(t_PosMtx);
- const float4 _e34 = Mul(_e30, float4(a_Position1, 1.0f));
- const Mat4x4_ _e35 = tint_symbol_5(global, 0u);
- const Mat4x4_ _e38 = _Mat4x4_1(t_PosMtx);
- const float3 _e39 = a_Position1;
- const Mat4x4_ _e44 = _Mat4x4_1(t_PosMtx);
- const float4 _e48 = Mul(_e44, float4(a_Position1, 1.0f));
- const float4 _e49 = Mul(_e35, _e48);
- gl_Position = _e49;
+ const Mat4x3_ x_e18 = tint_symbol_3(global2, (48u * uint(int(a_PosMtxIdx1))));
+ t_PosMtx = x_e18;
+ const Mat4x4_ x_e24 = x_Mat4x4_1(t_PosMtx);
+ const float3 x_e25 = a_Position1;
+ const Mat4x4_ x_e30 = x_Mat4x4_1(t_PosMtx);
+ const float4 x_e34 = Mul(x_e30, float4(a_Position1, 1.0f));
+ const Mat4x4_ x_e35 = tint_symbol_5(global, 0u);
+ const Mat4x4_ x_e38 = x_Mat4x4_1(t_PosMtx);
+ const float3 x_e39 = a_Position1;
+ const Mat4x4_ x_e44 = x_Mat4x4_1(t_PosMtx);
+ const float4 x_e48 = Mul(x_e44, float4(a_Position1, 1.0f));
+ const float4 x_e49 = Mul(x_e35, x_e48);
+ gl_Position = x_e49;
v_Color = a_Color1;
- const float4 _e52 = asfloat(global1[2]);
- if ((_e52.x == 2.0f)) {
+ const float4 x_e52 = asfloat(global1[2]);
+ if ((x_e52.x == 2.0f)) {
{
- const float3 _e59 = a_Normal1;
- const Mat4x2_ _e64 = tint_symbol_8(global1, (32u * uint(0)));
- const float2 _e68 = Mul2(_e64, float4(a_Normal1, 1.0f));
- v_TexCoord = _e68.xy;
+ const float3 x_e59 = a_Normal1;
+ const Mat4x2_ x_e64 = tint_symbol_8(global1, (32u * uint(0)));
+ const float2 x_e68 = Mul2(x_e64, float4(a_Normal1, 1.0f));
+ v_TexCoord = x_e68.xy;
return;
}
} else {
{
- const float2 _e73 = a_UV1;
- const Mat4x2_ _e79 = tint_symbol_8(global1, (32u * uint(0)));
- const float2 _e84 = Mul2(_e79, float4(a_UV1, 1.0f, 1.0f));
- v_TexCoord = _e84.xy;
+ const float2 x_e73 = a_UV1;
+ const Mat4x2_ x_e79 = tint_symbol_8(global1, (32u * uint(0)));
+ const float2 x_e84 = Mul2(x_e79, float4(a_UV1, 1.0f, 1.0f));
+ v_TexCoord = x_e84.xy;
return;
}
}
diff --git a/test/bug/tint/922.wgsl.expected.msl b/test/bug/tint/922.wgsl.expected.msl
index 58763e8..e9b7764 100644
--- a/test/bug/tint/922.wgsl.expected.msl
+++ b/test/bug/tint/922.wgsl.expected.msl
@@ -53,37 +53,37 @@
float3 Mat4x3GetCol0_(Mat4x3_ m) {
Mat4x3_ m1 = {};
m1 = m;
- Mat4x3_ const _e2 = m1;
- Mat4x3_ const _e5 = m1;
- Mat4x3_ const _e8 = m1;
- return float3(_e2.mx.x, _e5.my.x, _e8.mz.x);
+ Mat4x3_ const x_e2 = m1;
+ Mat4x3_ const x_e5 = m1;
+ Mat4x3_ const x_e8 = m1;
+ return float3(x_e2.mx.x, x_e5.my.x, x_e8.mz.x);
}
float3 Mat4x3GetCol1_(Mat4x3_ m2) {
Mat4x3_ m3 = {};
m3 = m2;
- Mat4x3_ const _e2 = m3;
- Mat4x3_ const _e5 = m3;
- Mat4x3_ const _e8 = m3;
- return float3(_e2.mx.y, _e5.my.y, _e8.mz.y);
+ Mat4x3_ const x_e2 = m3;
+ Mat4x3_ const x_e5 = m3;
+ Mat4x3_ const x_e8 = m3;
+ return float3(x_e2.mx.y, x_e5.my.y, x_e8.mz.y);
}
float3 Mat4x3GetCol2_(Mat4x3_ m4) {
Mat4x3_ m5 = {};
m5 = m4;
- Mat4x3_ const _e2 = m5;
- Mat4x3_ const _e5 = m5;
- Mat4x3_ const _e8 = m5;
- return float3(_e2.mx.z, _e5.my.z, _e8.mz.z);
+ Mat4x3_ const x_e2 = m5;
+ Mat4x3_ const x_e5 = m5;
+ Mat4x3_ const x_e8 = m5;
+ return float3(x_e2.mx.z, x_e5.my.z, x_e8.mz.z);
}
float3 Mat4x3GetCol3_(Mat4x3_ m6) {
Mat4x3_ m7 = {};
m7 = m6;
- Mat4x3_ const _e2 = m7;
- Mat4x3_ const _e5 = m7;
- Mat4x3_ const _e8 = m7;
- return float3(_e2.mx.w, _e5.my.w, _e8.mz.w);
+ Mat4x3_ const x_e2 = m7;
+ Mat4x3_ const x_e5 = m7;
+ Mat4x3_ const x_e8 = m7;
+ return float3(x_e2.mx.w, x_e5.my.w, x_e8.mz.w);
}
float4 Mul(Mat4x4_ m8, float4 v) {
@@ -91,15 +91,15 @@
float4 v1 = 0.0f;
m9 = m8;
v1 = v;
- Mat4x4_ const _e4 = m9;
- float4 const _e6 = v1;
- Mat4x4_ const _e8 = m9;
- float4 const _e10 = v1;
- Mat4x4_ const _e12 = m9;
- float4 const _e14 = v1;
- Mat4x4_ const _e16 = m9;
- float4 const _e18 = v1;
- return float4(dot(_e4.mx, _e6), dot(_e8.my, _e10), dot(_e12.mz, _e14), dot(_e16.mw, _e18));
+ Mat4x4_ const x_e4 = m9;
+ float4 const x_e6 = v1;
+ Mat4x4_ const x_e8 = m9;
+ float4 const x_e10 = v1;
+ Mat4x4_ const x_e12 = m9;
+ float4 const x_e14 = v1;
+ Mat4x4_ const x_e16 = m9;
+ float4 const x_e18 = v1;
+ return float4(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10), dot(x_e12.mz, x_e14), dot(x_e16.mw, x_e18));
}
float3 Mul1(Mat4x3_ m10, float4 v2) {
@@ -107,13 +107,13 @@
float4 v3 = 0.0f;
m11 = m10;
v3 = v2;
- Mat4x3_ const _e4 = m11;
- float4 const _e6 = v3;
- Mat4x3_ const _e8 = m11;
- float4 const _e10 = v3;
- Mat4x3_ const _e12 = m11;
- float4 const _e14 = v3;
- return float3(dot(_e4.mx, _e6), dot(_e8.my, _e10), dot(_e12.mz, _e14));
+ Mat4x3_ const x_e4 = m11;
+ float4 const x_e6 = v3;
+ Mat4x3_ const x_e8 = m11;
+ float4 const x_e10 = v3;
+ Mat4x3_ const x_e12 = m11;
+ float4 const x_e14 = v3;
+ return float3(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10), dot(x_e12.mz, x_e14));
}
float2 Mul2(Mat4x2_ m12, float4 v4) {
@@ -121,11 +121,11 @@
float4 v5 = 0.0f;
m13 = m12;
v5 = v4;
- Mat4x2_ const _e4 = m13;
- float4 const _e6 = v5;
- Mat4x2_ const _e8 = m13;
- float4 const _e10 = v5;
- return float2(dot(_e4.mx, _e6), dot(_e8.my, _e10));
+ Mat4x2_ const x_e4 = m13;
+ float4 const x_e6 = v5;
+ Mat4x2_ const x_e8 = m13;
+ float4 const x_e10 = v5;
+ return float2(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10));
}
float4 Mul3(float3 v6, Mat4x3_ m14) {
@@ -133,137 +133,137 @@
Mat4x3_ m15 = {};
v7 = v6;
m15 = m14;
- Mat4x3_ const _e5 = m15;
- float3 const _e6 = Mat4x3GetCol0_(_e5);
- float3 const _e7 = v7;
- Mat4x3_ const _e10 = m15;
- float3 const _e11 = Mat4x3GetCol1_(_e10);
- float3 const _e12 = v7;
- Mat4x3_ const _e15 = m15;
- float3 const _e16 = Mat4x3GetCol2_(_e15);
- float3 const _e17 = v7;
- Mat4x3_ const _e20 = m15;
- float3 const _e21 = Mat4x3GetCol3_(_e20);
- float3 const _e22 = v7;
- return float4(dot(_e6, _e7), dot(_e11, _e12), dot(_e16, _e17), dot(_e21, _e22));
+ Mat4x3_ const x_e5 = m15;
+ float3 const x_e6 = Mat4x3GetCol0_(x_e5);
+ float3 const x_e7 = v7;
+ Mat4x3_ const x_e10 = m15;
+ float3 const x_e11 = Mat4x3GetCol1_(x_e10);
+ float3 const x_e12 = v7;
+ Mat4x3_ const x_e15 = m15;
+ float3 const x_e16 = Mat4x3GetCol2_(x_e15);
+ float3 const x_e17 = v7;
+ Mat4x3_ const x_e20 = m15;
+ float3 const x_e21 = Mat4x3GetCol3_(x_e20);
+ float3 const x_e22 = v7;
+ return float4(dot(x_e6, x_e7), dot(x_e11, x_e12), dot(x_e16, x_e17), dot(x_e21, x_e22));
}
-Mat4x4_ _Mat4x4_(float n) {
+Mat4x4_ x_Mat4x4_(float n) {
float n1 = 0.0f;
Mat4x4_ o = {};
n1 = n;
- float const _e4 = n1;
- o.mx = float4(_e4, 0.0f, 0.0f, 0.0f);
- float const _e11 = n1;
- o.my = float4(0.0f, _e11, 0.0f, 0.0f);
- float const _e18 = n1;
- o.mz = float4(0.0f, 0.0f, _e18, 0.0f);
- float const _e25 = n1;
- o.mw = float4(0.0f, 0.0f, 0.0f, _e25);
- Mat4x4_ const _e27 = o;
- return _e27;
+ float const x_e4 = n1;
+ o.mx = float4(x_e4, 0.0f, 0.0f, 0.0f);
+ float const x_e11 = n1;
+ o.my = float4(0.0f, x_e11, 0.0f, 0.0f);
+ float const x_e18 = n1;
+ o.mz = float4(0.0f, 0.0f, x_e18, 0.0f);
+ float const x_e25 = n1;
+ o.mw = float4(0.0f, 0.0f, 0.0f, x_e25);
+ Mat4x4_ const x_e27 = o;
+ return x_e27;
}
-Mat4x4_ _Mat4x4_1(Mat4x3_ m16) {
+Mat4x4_ x_Mat4x4_1(Mat4x3_ m16) {
Mat4x3_ m17 = {};
Mat4x4_ o1 = {};
m17 = m16;
- Mat4x4_ const _e4 = _Mat4x4_(1.0f);
- o1 = _e4;
- Mat4x3_ const _e7 = m17;
- o1.mx = _e7.mx;
- Mat4x3_ const _e10 = m17;
- o1.my = _e10.my;
- Mat4x3_ const _e13 = m17;
- o1.mz = _e13.mz;
- Mat4x4_ const _e15 = o1;
- return _e15;
+ Mat4x4_ const x_e4 = x_Mat4x4_(1.0f);
+ o1 = x_e4;
+ Mat4x3_ const x_e7 = m17;
+ o1.mx = x_e7.mx;
+ Mat4x3_ const x_e10 = m17;
+ o1.my = x_e10.my;
+ Mat4x3_ const x_e13 = m17;
+ o1.mz = x_e13.mz;
+ Mat4x4_ const x_e15 = o1;
+ return x_e15;
}
-Mat4x4_ _Mat4x4_2(Mat4x2_ m18) {
+Mat4x4_ x_Mat4x4_2(Mat4x2_ m18) {
Mat4x2_ m19 = {};
Mat4x4_ o2 = {};
m19 = m18;
- Mat4x4_ const _e4 = _Mat4x4_(1.0f);
- o2 = _e4;
- Mat4x2_ const _e7 = m19;
- o2.mx = _e7.mx;
- Mat4x2_ const _e10 = m19;
- o2.my = _e10.my;
- Mat4x4_ const _e12 = o2;
- return _e12;
+ Mat4x4_ const x_e4 = x_Mat4x4_(1.0f);
+ o2 = x_e4;
+ Mat4x2_ const x_e7 = m19;
+ o2.mx = x_e7.mx;
+ Mat4x2_ const x_e10 = m19;
+ o2.my = x_e10.my;
+ Mat4x4_ const x_e12 = o2;
+ return x_e12;
}
-Mat4x3_ _Mat4x3_(float n2) {
+Mat4x3_ x_Mat4x3_(float n2) {
float n3 = 0.0f;
Mat4x3_ o3 = {};
n3 = n2;
- float const _e4 = n3;
- o3.mx = float4(_e4, 0.0f, 0.0f, 0.0f);
- float const _e11 = n3;
- o3.my = float4(0.0f, _e11, 0.0f, 0.0f);
- float const _e18 = n3;
- o3.mz = float4(0.0f, 0.0f, _e18, 0.0f);
- Mat4x3_ const _e21 = o3;
- return _e21;
+ float const x_e4 = n3;
+ o3.mx = float4(x_e4, 0.0f, 0.0f, 0.0f);
+ float const x_e11 = n3;
+ o3.my = float4(0.0f, x_e11, 0.0f, 0.0f);
+ float const x_e18 = n3;
+ o3.mz = float4(0.0f, 0.0f, x_e18, 0.0f);
+ Mat4x3_ const x_e21 = o3;
+ return x_e21;
}
-Mat4x3_ _Mat4x3_1(Mat4x4_ m20) {
+Mat4x3_ x_Mat4x3_1(Mat4x4_ m20) {
Mat4x4_ m21 = {};
Mat4x3_ o4 = {};
m21 = m20;
- Mat4x4_ const _e4 = m21;
- o4.mx = _e4.mx;
- Mat4x4_ const _e7 = m21;
- o4.my = _e7.my;
- Mat4x4_ const _e10 = m21;
- o4.mz = _e10.mz;
- Mat4x3_ const _e12 = o4;
- return _e12;
+ Mat4x4_ const x_e4 = m21;
+ o4.mx = x_e4.mx;
+ Mat4x4_ const x_e7 = m21;
+ o4.my = x_e7.my;
+ Mat4x4_ const x_e10 = m21;
+ o4.mz = x_e10.mz;
+ Mat4x3_ const x_e12 = o4;
+ return x_e12;
}
void main1(constant ub_PacketParams& global2, constant ub_SceneParams& global, constant ub_MaterialParams& global1, thread float* const tint_symbol_5, thread float3* const tint_symbol_6, thread float4* const tint_symbol_7, thread float4* const tint_symbol_8, thread float4* const tint_symbol_9, thread float3* const tint_symbol_10, thread float2* const tint_symbol_11, thread float2* const tint_symbol_12) {
Mat4x3_ t_PosMtx = {};
float2 t_TexSpaceCoord = 0.0f;
- float const _e15 = *(tint_symbol_5);
- Mat4x3_ const _e18 = global2.u_PosMtx.arr[int(_e15)];
- t_PosMtx = _e18;
- Mat4x3_ const _e23 = t_PosMtx;
- Mat4x4_ const _e24 = _Mat4x4_1(_e23);
- float3 const _e25 = *(tint_symbol_6);
- Mat4x3_ const _e29 = t_PosMtx;
- Mat4x4_ const _e30 = _Mat4x4_1(_e29);
- float3 const _e31 = *(tint_symbol_6);
- float4 const _e34 = Mul(_e30, float4(_e31, 1.0f));
- Mat4x4_ const _e35 = global.u_Projection;
- Mat4x3_ const _e37 = t_PosMtx;
- Mat4x4_ const _e38 = _Mat4x4_1(_e37);
- float3 const _e39 = *(tint_symbol_6);
- Mat4x3_ const _e43 = t_PosMtx;
- Mat4x4_ const _e44 = _Mat4x4_1(_e43);
- float3 const _e45 = *(tint_symbol_6);
- float4 const _e48 = Mul(_e44, float4(_e45, 1.0f));
- float4 const _e49 = Mul(_e35, _e48);
- *(tint_symbol_7) = _e49;
- float4 const _e50 = *(tint_symbol_8);
- *(tint_symbol_9) = _e50;
- float4 const _e52 = global1.u_Misc0_;
- if ((_e52.x == 2.0f)) {
+ float const x_e15 = *(tint_symbol_5);
+ Mat4x3_ const x_e18 = global2.u_PosMtx.arr[int(x_e15)];
+ t_PosMtx = x_e18;
+ Mat4x3_ const x_e23 = t_PosMtx;
+ Mat4x4_ const x_e24 = x_Mat4x4_1(x_e23);
+ float3 const x_e25 = *(tint_symbol_6);
+ Mat4x3_ const x_e29 = t_PosMtx;
+ Mat4x4_ const x_e30 = x_Mat4x4_1(x_e29);
+ float3 const x_e31 = *(tint_symbol_6);
+ float4 const x_e34 = Mul(x_e30, float4(x_e31, 1.0f));
+ Mat4x4_ const x_e35 = global.u_Projection;
+ Mat4x3_ const x_e37 = t_PosMtx;
+ Mat4x4_ const x_e38 = x_Mat4x4_1(x_e37);
+ float3 const x_e39 = *(tint_symbol_6);
+ Mat4x3_ const x_e43 = t_PosMtx;
+ Mat4x4_ const x_e44 = x_Mat4x4_1(x_e43);
+ float3 const x_e45 = *(tint_symbol_6);
+ float4 const x_e48 = Mul(x_e44, float4(x_e45, 1.0f));
+ float4 const x_e49 = Mul(x_e35, x_e48);
+ *(tint_symbol_7) = x_e49;
+ float4 const x_e50 = *(tint_symbol_8);
+ *(tint_symbol_9) = x_e50;
+ float4 const x_e52 = global1.u_Misc0_;
+ if ((x_e52.x == 2.0f)) {
{
- float3 const _e59 = *(tint_symbol_10);
- Mat4x2_ const _e64 = global1.u_TexMtx.arr[0];
- float3 const _e65 = *(tint_symbol_10);
- float2 const _e68 = Mul2(_e64, float4(_e65, 1.0f));
- *(tint_symbol_11) = _e68.xy;
+ float3 const x_e59 = *(tint_symbol_10);
+ Mat4x2_ const x_e64 = global1.u_TexMtx.arr[0];
+ float3 const x_e65 = *(tint_symbol_10);
+ float2 const x_e68 = Mul2(x_e64, float4(x_e65, 1.0f));
+ *(tint_symbol_11) = x_e68.xy;
return;
}
} else {
{
- float2 const _e73 = *(tint_symbol_12);
- Mat4x2_ const _e79 = global1.u_TexMtx.arr[0];
- float2 const _e80 = *(tint_symbol_12);
- float2 const _e84 = Mul2(_e79, float4(_e80, 1.0f, 1.0f));
- *(tint_symbol_11) = _e84.xy;
+ float2 const x_e73 = *(tint_symbol_12);
+ Mat4x2_ const x_e79 = global1.u_TexMtx.arr[0];
+ float2 const x_e80 = *(tint_symbol_12);
+ float2 const x_e84 = Mul2(x_e79, float4(x_e80, 1.0f, 1.0f));
+ *(tint_symbol_11) = x_e84.xy;
return;
}
}
@@ -276,10 +276,10 @@
*(tint_symbol_16) = a_Normal;
*(tint_symbol_17) = a_PosMtxIdx;
main1(global2, global, global1, tint_symbol_17, tint_symbol_13, tint_symbol_18, tint_symbol_15, tint_symbol_19, tint_symbol_16, tint_symbol_20, tint_symbol_14);
- float4 const _e11 = *(tint_symbol_19);
- float2 const _e13 = *(tint_symbol_20);
- float4 const _e15 = *(tint_symbol_18);
- VertexOutput const tint_symbol_4 = {.v_Color=_e11, .v_TexCoord=_e13, .member=_e15};
+ float4 const x_e11 = *(tint_symbol_19);
+ float2 const x_e13 = *(tint_symbol_20);
+ float4 const x_e15 = *(tint_symbol_18);
+ VertexOutput const tint_symbol_4 = {.v_Color=x_e11, .v_TexCoord=x_e13, .member=x_e15};
return tint_symbol_4;
}
diff --git a/test/bug/tint/922.wgsl.expected.spvasm b/test/bug/tint/922.wgsl.expected.spvasm
index f81704a..bc29396 100644
--- a/test/bug/tint/922.wgsl.expected.spvasm
+++ b/test/bug/tint/922.wgsl.expected.spvasm
@@ -77,23 +77,23 @@
OpName %m14 "m14"
OpName %v7 "v7"
OpName %m15 "m15"
- OpName %_Mat4x4_ "_Mat4x4_"
+ OpName %x_Mat4x4_ "x_Mat4x4_"
OpName %n "n"
OpName %n1 "n1"
OpName %o "o"
- OpName %_Mat4x4_1 "_Mat4x4_1"
+ OpName %x_Mat4x4_1 "x_Mat4x4_1"
OpName %m16 "m16"
OpName %m17 "m17"
OpName %o1 "o1"
- OpName %_Mat4x4_2 "_Mat4x4_2"
+ OpName %x_Mat4x4_2 "x_Mat4x4_2"
OpName %m18 "m18"
OpName %m19 "m19"
OpName %o2 "o2"
- OpName %_Mat4x3_ "_Mat4x3_"
+ OpName %x_Mat4x3_ "x_Mat4x3_"
OpName %n2 "n2"
OpName %n3 "n3"
OpName %o3 "o3"
- OpName %_Mat4x3_1 "_Mat4x3_1"
+ OpName %x_Mat4x3_1 "x_Mat4x3_1"
OpName %m20 "m20"
OpName %m21 "m21"
OpName %o4 "o4"
@@ -404,7 +404,7 @@
%202 = OpCompositeConstruct %v4float %198 %199 %200 %201
OpReturnValue %202
OpFunctionEnd
- %_Mat4x4_ = OpFunction %Mat4x4_ None %203
+ %x_Mat4x4_ = OpFunction %Mat4x4_ None %203
%n = OpFunctionParameter %float
%206 = OpLabel
%n1 = OpVariable %_ptr_Function_float Function %23
@@ -429,13 +429,13 @@
%226 = OpLoad %Mat4x4_ %o
OpReturnValue %226
OpFunctionEnd
- %_Mat4x4_1 = OpFunction %Mat4x4_ None %227
+ %x_Mat4x4_1 = OpFunction %Mat4x4_ None %227
%m16 = OpFunctionParameter %Mat4x3_
%230 = OpLabel
%m17 = OpVariable %_ptr_Function_Mat4x3_ Function %60
%o1 = OpVariable %_ptr_Function_Mat4x4_ Function %120
OpStore %m17 %m16
- %233 = OpFunctionCall %Mat4x4_ %_Mat4x4_ %float_1
+ %233 = OpFunctionCall %Mat4x4_ %x_Mat4x4_ %float_1
OpStore %o1 %233
%235 = OpLoad %Mat4x3_ %m17
%236 = OpAccessChain %_ptr_Function_v4float %o1 %uint_0
@@ -452,13 +452,13 @@
%244 = OpLoad %Mat4x4_ %o1
OpReturnValue %244
OpFunctionEnd
- %_Mat4x4_2 = OpFunction %Mat4x4_ None %245
+ %x_Mat4x4_2 = OpFunction %Mat4x4_ None %245
%m18 = OpFunctionParameter %Mat4x2_
%248 = OpLabel
%m19 = OpVariable %_ptr_Function_Mat4x2_ Function %167
%o2 = OpVariable %_ptr_Function_Mat4x4_ Function %120
OpStore %m19 %m18
- %251 = OpFunctionCall %Mat4x4_ %_Mat4x4_ %float_1
+ %251 = OpFunctionCall %Mat4x4_ %x_Mat4x4_ %float_1
OpStore %o2 %251
%252 = OpLoad %Mat4x2_ %m19
%253 = OpAccessChain %_ptr_Function_v4float %o2 %uint_0
@@ -471,7 +471,7 @@
%258 = OpLoad %Mat4x4_ %o2
OpReturnValue %258
OpFunctionEnd
- %_Mat4x3_ = OpFunction %Mat4x3_ None %259
+ %x_Mat4x3_ = OpFunction %Mat4x3_ None %259
%n2 = OpFunctionParameter %float
%262 = OpLabel
%n3 = OpVariable %_ptr_Function_float Function %23
@@ -492,7 +492,7 @@
%274 = OpLoad %Mat4x3_ %o3
OpReturnValue %274
OpFunctionEnd
- %_Mat4x3_1 = OpFunction %Mat4x3_ None %275
+ %x_Mat4x3_1 = OpFunction %Mat4x3_ None %275
%m20 = OpFunctionParameter %Mat4x4_
%278 = OpLabel
%m21 = OpVariable %_ptr_Function_Mat4x4_ Function %120
@@ -523,10 +523,10 @@
%303 = OpLoad %Mat4x3_ %302
OpStore %t_PosMtx %303
%304 = OpLoad %Mat4x3_ %t_PosMtx
- %305 = OpFunctionCall %Mat4x4_ %_Mat4x4_1 %304
+ %305 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %304
%306 = OpLoad %v3float %a_Position1
%307 = OpLoad %Mat4x3_ %t_PosMtx
- %308 = OpFunctionCall %Mat4x4_ %_Mat4x4_1 %307
+ %308 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %307
%309 = OpLoad %v3float %a_Position1
%311 = OpCompositeExtract %float %309 0
%312 = OpCompositeExtract %float %309 1
@@ -536,10 +536,10 @@
%316 = OpAccessChain %_ptr_Uniform_Mat4x4_ %global %uint_0
%317 = OpLoad %Mat4x4_ %316
%318 = OpLoad %Mat4x3_ %t_PosMtx
- %319 = OpFunctionCall %Mat4x4_ %_Mat4x4_1 %318
+ %319 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %318
%320 = OpLoad %v3float %a_Position1
%321 = OpLoad %Mat4x3_ %t_PosMtx
- %322 = OpFunctionCall %Mat4x4_ %_Mat4x4_1 %321
+ %322 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %321
%323 = OpLoad %v3float %a_Position1
%325 = OpCompositeExtract %float %323 0
%326 = OpCompositeExtract %float %323 1
diff --git a/test/bug/tint/922.wgsl.expected.wgsl b/test/bug/tint/922.wgsl.expected.wgsl
index c9178c1..aa20cc7 100644
--- a/test/bug/tint/922.wgsl.expected.wgsl
+++ b/test/bug/tint/922.wgsl.expected.wgsl
@@ -66,37 +66,37 @@
fn Mat4x3GetCol0_(m : Mat4x3_) -> vec3<f32> {
var m1 : Mat4x3_;
m1 = m;
- let _e2 : Mat4x3_ = m1;
- let _e5 : Mat4x3_ = m1;
- let _e8 : Mat4x3_ = m1;
- return vec3<f32>(_e2.mx.x, _e5.my.x, _e8.mz.x);
+ let x_e2 : Mat4x3_ = m1;
+ let x_e5 : Mat4x3_ = m1;
+ let x_e8 : Mat4x3_ = m1;
+ return vec3<f32>(x_e2.mx.x, x_e5.my.x, x_e8.mz.x);
}
fn Mat4x3GetCol1_(m2 : Mat4x3_) -> vec3<f32> {
var m3 : Mat4x3_;
m3 = m2;
- let _e2 : Mat4x3_ = m3;
- let _e5 : Mat4x3_ = m3;
- let _e8 : Mat4x3_ = m3;
- return vec3<f32>(_e2.mx.y, _e5.my.y, _e8.mz.y);
+ let x_e2 : Mat4x3_ = m3;
+ let x_e5 : Mat4x3_ = m3;
+ let x_e8 : Mat4x3_ = m3;
+ return vec3<f32>(x_e2.mx.y, x_e5.my.y, x_e8.mz.y);
}
fn Mat4x3GetCol2_(m4 : Mat4x3_) -> vec3<f32> {
var m5 : Mat4x3_;
m5 = m4;
- let _e2 : Mat4x3_ = m5;
- let _e5 : Mat4x3_ = m5;
- let _e8 : Mat4x3_ = m5;
- return vec3<f32>(_e2.mx.z, _e5.my.z, _e8.mz.z);
+ let x_e2 : Mat4x3_ = m5;
+ let x_e5 : Mat4x3_ = m5;
+ let x_e8 : Mat4x3_ = m5;
+ return vec3<f32>(x_e2.mx.z, x_e5.my.z, x_e8.mz.z);
}
fn Mat4x3GetCol3_(m6 : Mat4x3_) -> vec3<f32> {
var m7 : Mat4x3_;
m7 = m6;
- let _e2 : Mat4x3_ = m7;
- let _e5 : Mat4x3_ = m7;
- let _e8 : Mat4x3_ = m7;
- return vec3<f32>(_e2.mx.w, _e5.my.w, _e8.mz.w);
+ let x_e2 : Mat4x3_ = m7;
+ let x_e5 : Mat4x3_ = m7;
+ let x_e8 : Mat4x3_ = m7;
+ return vec3<f32>(x_e2.mx.w, x_e5.my.w, x_e8.mz.w);
}
fn Mul(m8 : Mat4x4_, v : vec4<f32>) -> vec4<f32> {
@@ -104,15 +104,15 @@
var v1 : vec4<f32>;
m9 = m8;
v1 = v;
- let _e4 : Mat4x4_ = m9;
- let _e6 : vec4<f32> = v1;
- let _e8 : Mat4x4_ = m9;
- let _e10 : vec4<f32> = v1;
- let _e12 : Mat4x4_ = m9;
- let _e14 : vec4<f32> = v1;
- let _e16 : Mat4x4_ = m9;
- let _e18 : vec4<f32> = v1;
- return vec4<f32>(dot(_e4.mx, _e6), dot(_e8.my, _e10), dot(_e12.mz, _e14), dot(_e16.mw, _e18));
+ let x_e4 : Mat4x4_ = m9;
+ let x_e6 : vec4<f32> = v1;
+ let x_e8 : Mat4x4_ = m9;
+ let x_e10 : vec4<f32> = v1;
+ let x_e12 : Mat4x4_ = m9;
+ let x_e14 : vec4<f32> = v1;
+ let x_e16 : Mat4x4_ = m9;
+ let x_e18 : vec4<f32> = v1;
+ return vec4<f32>(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10), dot(x_e12.mz, x_e14), dot(x_e16.mw, x_e18));
}
fn Mul1(m10 : Mat4x3_, v2 : vec4<f32>) -> vec3<f32> {
@@ -120,13 +120,13 @@
var v3 : vec4<f32>;
m11 = m10;
v3 = v2;
- let _e4 : Mat4x3_ = m11;
- let _e6 : vec4<f32> = v3;
- let _e8 : Mat4x3_ = m11;
- let _e10 : vec4<f32> = v3;
- let _e12 : Mat4x3_ = m11;
- let _e14 : vec4<f32> = v3;
- return vec3<f32>(dot(_e4.mx, _e6), dot(_e8.my, _e10), dot(_e12.mz, _e14));
+ let x_e4 : Mat4x3_ = m11;
+ let x_e6 : vec4<f32> = v3;
+ let x_e8 : Mat4x3_ = m11;
+ let x_e10 : vec4<f32> = v3;
+ let x_e12 : Mat4x3_ = m11;
+ let x_e14 : vec4<f32> = v3;
+ return vec3<f32>(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10), dot(x_e12.mz, x_e14));
}
fn Mul2(m12 : Mat4x2_, v4 : vec4<f32>) -> vec2<f32> {
@@ -134,11 +134,11 @@
var v5 : vec4<f32>;
m13 = m12;
v5 = v4;
- let _e4 : Mat4x2_ = m13;
- let _e6 : vec4<f32> = v5;
- let _e8 : Mat4x2_ = m13;
- let _e10 : vec4<f32> = v5;
- return vec2<f32>(dot(_e4.mx, _e6), dot(_e8.my, _e10));
+ let x_e4 : Mat4x2_ = m13;
+ let x_e6 : vec4<f32> = v5;
+ let x_e8 : Mat4x2_ = m13;
+ let x_e10 : vec4<f32> = v5;
+ return vec2<f32>(dot(x_e4.mx, x_e6), dot(x_e8.my, x_e10));
}
fn Mul3(v6 : vec3<f32>, m14 : Mat4x3_) -> vec4<f32> {
@@ -146,137 +146,137 @@
var m15 : Mat4x3_;
v7 = v6;
m15 = m14;
- let _e5 : Mat4x3_ = m15;
- let _e6 : vec3<f32> = Mat4x3GetCol0_(_e5);
- let _e7 : vec3<f32> = v7;
- let _e10 : Mat4x3_ = m15;
- let _e11 : vec3<f32> = Mat4x3GetCol1_(_e10);
- let _e12 : vec3<f32> = v7;
- let _e15 : Mat4x3_ = m15;
- let _e16 : vec3<f32> = Mat4x3GetCol2_(_e15);
- let _e17 : vec3<f32> = v7;
- let _e20 : Mat4x3_ = m15;
- let _e21 : vec3<f32> = Mat4x3GetCol3_(_e20);
- let _e22 : vec3<f32> = v7;
- return vec4<f32>(dot(_e6, _e7), dot(_e11, _e12), dot(_e16, _e17), dot(_e21, _e22));
+ let x_e5 : Mat4x3_ = m15;
+ let x_e6 : vec3<f32> = Mat4x3GetCol0_(x_e5);
+ let x_e7 : vec3<f32> = v7;
+ let x_e10 : Mat4x3_ = m15;
+ let x_e11 : vec3<f32> = Mat4x3GetCol1_(x_e10);
+ let x_e12 : vec3<f32> = v7;
+ let x_e15 : Mat4x3_ = m15;
+ let x_e16 : vec3<f32> = Mat4x3GetCol2_(x_e15);
+ let x_e17 : vec3<f32> = v7;
+ let x_e20 : Mat4x3_ = m15;
+ let x_e21 : vec3<f32> = Mat4x3GetCol3_(x_e20);
+ let x_e22 : vec3<f32> = v7;
+ return vec4<f32>(dot(x_e6, x_e7), dot(x_e11, x_e12), dot(x_e16, x_e17), dot(x_e21, x_e22));
}
-fn _Mat4x4_(n : f32) -> Mat4x4_ {
+fn x_Mat4x4_(n : f32) -> Mat4x4_ {
var n1 : f32;
var o : Mat4x4_;
n1 = n;
- let _e4 : f32 = n1;
- o.mx = vec4<f32>(_e4, 0.0, 0.0, 0.0);
- let _e11 : f32 = n1;
- o.my = vec4<f32>(0.0, _e11, 0.0, 0.0);
- let _e18 : f32 = n1;
- o.mz = vec4<f32>(0.0, 0.0, _e18, 0.0);
- let _e25 : f32 = n1;
- o.mw = vec4<f32>(0.0, 0.0, 0.0, _e25);
- let _e27 : Mat4x4_ = o;
- return _e27;
+ let x_e4 : f32 = n1;
+ o.mx = vec4<f32>(x_e4, 0.0, 0.0, 0.0);
+ let x_e11 : f32 = n1;
+ o.my = vec4<f32>(0.0, x_e11, 0.0, 0.0);
+ let x_e18 : f32 = n1;
+ o.mz = vec4<f32>(0.0, 0.0, x_e18, 0.0);
+ let x_e25 : f32 = n1;
+ o.mw = vec4<f32>(0.0, 0.0, 0.0, x_e25);
+ let x_e27 : Mat4x4_ = o;
+ return x_e27;
}
-fn _Mat4x4_1(m16 : Mat4x3_) -> Mat4x4_ {
+fn x_Mat4x4_1(m16 : Mat4x3_) -> Mat4x4_ {
var m17 : Mat4x3_;
var o1 : Mat4x4_;
m17 = m16;
- let _e4 : Mat4x4_ = _Mat4x4_(1.0);
- o1 = _e4;
- let _e7 : Mat4x3_ = m17;
- o1.mx = _e7.mx;
- let _e10 : Mat4x3_ = m17;
- o1.my = _e10.my;
- let _e13 : Mat4x3_ = m17;
- o1.mz = _e13.mz;
- let _e15 : Mat4x4_ = o1;
- return _e15;
+ let x_e4 : Mat4x4_ = x_Mat4x4_(1.0);
+ o1 = x_e4;
+ let x_e7 : Mat4x3_ = m17;
+ o1.mx = x_e7.mx;
+ let x_e10 : Mat4x3_ = m17;
+ o1.my = x_e10.my;
+ let x_e13 : Mat4x3_ = m17;
+ o1.mz = x_e13.mz;
+ let x_e15 : Mat4x4_ = o1;
+ return x_e15;
}
-fn _Mat4x4_2(m18 : Mat4x2_) -> Mat4x4_ {
+fn x_Mat4x4_2(m18 : Mat4x2_) -> Mat4x4_ {
var m19 : Mat4x2_;
var o2 : Mat4x4_;
m19 = m18;
- let _e4 : Mat4x4_ = _Mat4x4_(1.0);
- o2 = _e4;
- let _e7 : Mat4x2_ = m19;
- o2.mx = _e7.mx;
- let _e10 : Mat4x2_ = m19;
- o2.my = _e10.my;
- let _e12 : Mat4x4_ = o2;
- return _e12;
+ let x_e4 : Mat4x4_ = x_Mat4x4_(1.0);
+ o2 = x_e4;
+ let x_e7 : Mat4x2_ = m19;
+ o2.mx = x_e7.mx;
+ let x_e10 : Mat4x2_ = m19;
+ o2.my = x_e10.my;
+ let x_e12 : Mat4x4_ = o2;
+ return x_e12;
}
-fn _Mat4x3_(n2 : f32) -> Mat4x3_ {
+fn x_Mat4x3_(n2 : f32) -> Mat4x3_ {
var n3 : f32;
var o3 : Mat4x3_;
n3 = n2;
- let _e4 : f32 = n3;
- o3.mx = vec4<f32>(_e4, 0.0, 0.0, 0.0);
- let _e11 : f32 = n3;
- o3.my = vec4<f32>(0.0, _e11, 0.0, 0.0);
- let _e18 : f32 = n3;
- o3.mz = vec4<f32>(0.0, 0.0, _e18, 0.0);
- let _e21 : Mat4x3_ = o3;
- return _e21;
+ let x_e4 : f32 = n3;
+ o3.mx = vec4<f32>(x_e4, 0.0, 0.0, 0.0);
+ let x_e11 : f32 = n3;
+ o3.my = vec4<f32>(0.0, x_e11, 0.0, 0.0);
+ let x_e18 : f32 = n3;
+ o3.mz = vec4<f32>(0.0, 0.0, x_e18, 0.0);
+ let x_e21 : Mat4x3_ = o3;
+ return x_e21;
}
-fn _Mat4x3_1(m20 : Mat4x4_) -> Mat4x3_ {
+fn x_Mat4x3_1(m20 : Mat4x4_) -> Mat4x3_ {
var m21 : Mat4x4_;
var o4 : Mat4x3_;
m21 = m20;
- let _e4 : Mat4x4_ = m21;
- o4.mx = _e4.mx;
- let _e7 : Mat4x4_ = m21;
- o4.my = _e7.my;
- let _e10 : Mat4x4_ = m21;
- o4.mz = _e10.mz;
- let _e12 : Mat4x3_ = o4;
- return _e12;
+ let x_e4 : Mat4x4_ = m21;
+ o4.mx = x_e4.mx;
+ let x_e7 : Mat4x4_ = m21;
+ o4.my = x_e7.my;
+ let x_e10 : Mat4x4_ = m21;
+ o4.mz = x_e10.mz;
+ let x_e12 : Mat4x3_ = o4;
+ return x_e12;
}
fn main1() {
var t_PosMtx : Mat4x3_;
var t_TexSpaceCoord : vec2<f32>;
- let _e15 : f32 = a_PosMtxIdx1;
- let _e18 : Mat4x3_ = global2.u_PosMtx[i32(_e15)];
- t_PosMtx = _e18;
- let _e23 : Mat4x3_ = t_PosMtx;
- let _e24 : Mat4x4_ = _Mat4x4_1(_e23);
- let _e25 : vec3<f32> = a_Position1;
- let _e29 : Mat4x3_ = t_PosMtx;
- let _e30 : Mat4x4_ = _Mat4x4_1(_e29);
- let _e31 : vec3<f32> = a_Position1;
- let _e34 : vec4<f32> = Mul(_e30, vec4<f32>(_e31, 1.0));
- let _e35 : Mat4x4_ = global.u_Projection;
- let _e37 : Mat4x3_ = t_PosMtx;
- let _e38 : Mat4x4_ = _Mat4x4_1(_e37);
- let _e39 : vec3<f32> = a_Position1;
- let _e43 : Mat4x3_ = t_PosMtx;
- let _e44 : Mat4x4_ = _Mat4x4_1(_e43);
- let _e45 : vec3<f32> = a_Position1;
- let _e48 : vec4<f32> = Mul(_e44, vec4<f32>(_e45, 1.0));
- let _e49 : vec4<f32> = Mul(_e35, _e48);
- gl_Position = _e49;
- let _e50 : vec4<f32> = a_Color1;
- v_Color = _e50;
- let _e52 : vec4<f32> = global1.u_Misc0_;
- if ((_e52.x == 2.0)) {
+ let x_e15 : f32 = a_PosMtxIdx1;
+ let x_e18 : Mat4x3_ = global2.u_PosMtx[i32(x_e15)];
+ t_PosMtx = x_e18;
+ let x_e23 : Mat4x3_ = t_PosMtx;
+ let x_e24 : Mat4x4_ = x_Mat4x4_1(x_e23);
+ let x_e25 : vec3<f32> = a_Position1;
+ let x_e29 : Mat4x3_ = t_PosMtx;
+ let x_e30 : Mat4x4_ = x_Mat4x4_1(x_e29);
+ let x_e31 : vec3<f32> = a_Position1;
+ let x_e34 : vec4<f32> = Mul(x_e30, vec4<f32>(x_e31, 1.0));
+ let x_e35 : Mat4x4_ = global.u_Projection;
+ let x_e37 : Mat4x3_ = t_PosMtx;
+ let x_e38 : Mat4x4_ = x_Mat4x4_1(x_e37);
+ let x_e39 : vec3<f32> = a_Position1;
+ let x_e43 : Mat4x3_ = t_PosMtx;
+ let x_e44 : Mat4x4_ = x_Mat4x4_1(x_e43);
+ let x_e45 : vec3<f32> = a_Position1;
+ let x_e48 : vec4<f32> = Mul(x_e44, vec4<f32>(x_e45, 1.0));
+ let x_e49 : vec4<f32> = Mul(x_e35, x_e48);
+ gl_Position = x_e49;
+ let x_e50 : vec4<f32> = a_Color1;
+ v_Color = x_e50;
+ let x_e52 : vec4<f32> = global1.u_Misc0_;
+ if ((x_e52.x == 2.0)) {
{
- let _e59 : vec3<f32> = a_Normal1;
- let _e64 : Mat4x2_ = global1.u_TexMtx[0];
- let _e65 : vec3<f32> = a_Normal1;
- let _e68 : vec2<f32> = Mul2(_e64, vec4<f32>(_e65, 1.0));
- v_TexCoord = _e68.xy;
+ let x_e59 : vec3<f32> = a_Normal1;
+ let x_e64 : Mat4x2_ = global1.u_TexMtx[0];
+ let x_e65 : vec3<f32> = a_Normal1;
+ let x_e68 : vec2<f32> = Mul2(x_e64, vec4<f32>(x_e65, 1.0));
+ v_TexCoord = x_e68.xy;
return;
}
} else {
{
- let _e73 : vec2<f32> = a_UV1;
- let _e79 : Mat4x2_ = global1.u_TexMtx[0];
- let _e80 : vec2<f32> = a_UV1;
- let _e84 : vec2<f32> = Mul2(_e79, vec4<f32>(_e80, 1.0, 1.0));
- v_TexCoord = _e84.xy;
+ let x_e73 : vec2<f32> = a_UV1;
+ let x_e79 : Mat4x2_ = global1.u_TexMtx[0];
+ let x_e80 : vec2<f32> = a_UV1;
+ let x_e84 : vec2<f32> = Mul2(x_e79, vec4<f32>(x_e80, 1.0, 1.0));
+ v_TexCoord = x_e84.xy;
return;
}
}
@@ -290,8 +290,8 @@
a_Normal1 = a_Normal;
a_PosMtxIdx1 = a_PosMtxIdx;
main1();
- let _e11 : vec4<f32> = v_Color;
- let _e13 : vec2<f32> = v_TexCoord;
- let _e15 : vec4<f32> = gl_Position;
- return VertexOutput(_e11, _e13, _e15);
+ let x_e11 : vec4<f32> = v_Color;
+ let x_e13 : vec2<f32> = v_TexCoord;
+ let x_e15 : vec4<f32> = gl_Position;
+ return VertexOutput(x_e11, x_e13, x_e15);
}