diff --git a/src/transform/transform.cc b/src/transform/transform.cc index 955f16eb29..20cfb83d37 100644 --- a/src/transform/transform.cc +++ b/src/transform/transform.cc @@ -67,6 +67,9 @@ void Transform::RenameReservedKeywords(CloneContext* ctx, const char* names[], size_t count) { ctx->ReplaceAll([=](Symbol in) { + if (!ctx->src->Symbols().HasName(in)) { + return ctx->dst->Symbols().New(); + } auto name_in = ctx->src->Symbols().NameFor(in); if (!std::binary_search(names, names + count, name_in)) { return ctx->dst->Symbols().Register(name_in); diff --git a/src/writer/hlsl/generator_impl_function_test.cc b/src/writer/hlsl/generator_impl_function_test.cc index 525ce1f15a..a12663fdc7 100644 --- a/src/writer/hlsl/generator_impl_function_test.cc +++ b/src/writer/hlsl/generator_impl_function_test.cc @@ -119,15 +119,15 @@ TEST_F(HlslGeneratorImplTest_Function, GeneratorImpl& gen = SanitizeAndBuild(); ASSERT_TRUE(gen.Generate(out)) << gen.error(); - EXPECT_EQ(result(), R"(struct tint_symbol_1 { + EXPECT_EQ(result(), R"(struct tint_symbol_5 { float foo : TEXCOORD0; }; struct tint_symbol_2 { float value : SV_Target1; }; -tint_symbol_2 frag_main(tint_symbol_1 tint_symbol_6) { - const float foo = tint_symbol_6.foo; +tint_symbol_2 frag_main(tint_symbol_5 tint_symbol_7) { + const float foo = tint_symbol_7.foo; const tint_symbol_2 tint_symbol_1 = {foo}; return tint_symbol_1; } @@ -153,15 +153,15 @@ TEST_F(HlslGeneratorImplTest_Function, GeneratorImpl& gen = SanitizeAndBuild(); ASSERT_TRUE(gen.Generate(out)) << gen.error(); - EXPECT_EQ(result(), R"(struct tint_symbol_1 { + EXPECT_EQ(result(), R"(struct tint_symbol_6 { float4 coord : SV_Position; }; struct tint_symbol_2 { float value : SV_Depth; }; -tint_symbol_2 frag_main(tint_symbol_1 tint_symbol_6) { - const float4 coord = tint_symbol_6.coord; +tint_symbol_2 frag_main(tint_symbol_6 tint_symbol_8) { + const float4 coord = tint_symbol_8.coord; const tint_symbol_2 tint_symbol_1 = {coord.x}; return tint_symbol_1; } @@ -214,7 +214,7 @@ struct tint_symbol_2 { float col1 : TEXCOORD1; float col2 : TEXCOORD2; }; -struct tint_symbol_7 { +struct tint_symbol_8 { float col1 : TEXCOORD1; float col2 : TEXCOORD2; }; @@ -225,8 +225,8 @@ tint_symbol_2 vert_main() { return tint_symbol_1; } -void frag_main(tint_symbol_7 tint_symbol_9) { - const Interface colors = {tint_symbol_9.col1, tint_symbol_9.col2}; +void frag_main(tint_symbol_8 tint_symbol_10) { + const Interface colors = {tint_symbol_10.col1, tint_symbol_10.col2}; const float r = colors.col1; const float g = colors.col2; return; diff --git a/src/writer/hlsl/generator_impl_sanitizer_test.cc b/src/writer/hlsl/generator_impl_sanitizer_test.cc index 48fbb063d6..229931d0fc 100644 --- a/src/writer/hlsl/generator_impl_sanitizer_test.cc +++ b/src/writer/hlsl/generator_impl_sanitizer_test.cc @@ -62,10 +62,10 @@ TEST_F(HlslSanitizerTest, ArrayLength) { ByteAddressBuffer sb : register(t0, space1); void main() { - uint tint_symbol_7 = 0u; - sb.GetDimensions(tint_symbol_7); - const uint tint_symbol_9 = ((tint_symbol_7 - 16u) / 16u); - uint len = tint_symbol_9; + uint tint_symbol_9 = 0u; + sb.GetDimensions(tint_symbol_9); + const uint tint_symbol_10 = ((tint_symbol_9 - 16u) / 16u); + uint len = tint_symbol_10; return; } diff --git a/src/writer/msl/generator_impl_function_test.cc b/src/writer/msl/generator_impl_function_test.cc index a7660616fa..6b1f2d8b96 100644 --- a/src/writer/msl/generator_impl_function_test.cc +++ b/src/writer/msl/generator_impl_function_test.cc @@ -108,15 +108,15 @@ TEST_F(MslGeneratorImplTest, Emit_Decoration_EntryPoint_WithInOutVars) { EXPECT_EQ(gen.result(), R"(#include using namespace metal; -struct tint_symbol_3 { +struct tint_symbol_1 { float foo [[user(locn0)]]; }; -struct tint_symbol_5 { +struct tint_symbol_3 { float value [[color(1)]]; }; -fragment tint_symbol_5 frag_main(tint_symbol_3 tint_symbol_1 [[stage_in]]) { - const float foo = tint_symbol_1.foo; +fragment tint_symbol_3 frag_main(tint_symbol_1 tint_symbol_6 [[stage_in]]) { + const float foo = tint_symbol_6.foo; return {foo}; } @@ -141,15 +141,15 @@ TEST_F(MslGeneratorImplTest, Emit_Decoration_EntryPoint_WithInOut_Builtins) { EXPECT_EQ(gen.result(), R"(#include using namespace metal; -struct tint_symbol_3 { +struct tint_symbol_1 { float4 coord [[position]]; }; -struct tint_symbol_5 { +struct tint_symbol_3 { float value [[depth(any)]]; }; -fragment tint_symbol_5 frag_main(tint_symbol_3 tint_symbol_1 [[stage_in]]) { - const float4 coord = tint_symbol_1.coord; +fragment tint_symbol_3 frag_main(tint_symbol_1 tint_symbol_6 [[stage_in]]) { + const float4 coord = tint_symbol_6.coord; return {coord.x}; } @@ -202,18 +202,18 @@ struct tint_symbol_4 { float col1 [[user(locn1)]]; float col2 [[user(locn2)]]; }; -struct tint_symbol_9 { +struct tint_symbol_7 { float col1 [[user(locn1)]]; float col2 [[user(locn2)]]; }; vertex tint_symbol_4 vert_main() { - const Interface tint_symbol_5 = {0.5f, 0.25f}; - return {tint_symbol_5.col1, tint_symbol_5.col2}; + const Interface tint_symbol_6 = {0.5f, 0.25f}; + return {tint_symbol_6.col1, tint_symbol_6.col2}; } -fragment void frag_main(tint_symbol_9 tint_symbol_7 [[stage_in]]) { - const Interface colors = {tint_symbol_7.col1, tint_symbol_7.col2}; +fragment void frag_main(tint_symbol_7 tint_symbol_9 [[stage_in]]) { + const Interface colors = {tint_symbol_9.col1, tint_symbol_9.col2}; const float r = colors.col1; const float g = colors.col2; return; @@ -266,10 +266,10 @@ using namespace metal; struct VertexOutput { float4 pos; }; -struct tint_symbol_3 { +struct tint_symbol_5 { float4 pos [[position]]; }; -struct tint_symbol_7 { +struct tint_symbol_8 { float4 pos [[position]]; }; @@ -277,14 +277,14 @@ VertexOutput foo(float x) { return {float4(x, x, x, 1.0f)}; } -vertex tint_symbol_3 vert_main1() { - const VertexOutput tint_symbol_5 = {foo(0.5f)}; - return {tint_symbol_5.pos}; +vertex tint_symbol_5 vert_main1() { + const VertexOutput tint_symbol_7 = {foo(0.5f)}; + return {tint_symbol_7.pos}; } -vertex tint_symbol_7 vert_main2() { - const VertexOutput tint_symbol_8 = {foo(0.25f)}; - return {tint_symbol_8.pos}; +vertex tint_symbol_8 vert_main2() { + const VertexOutput tint_symbol_10 = {foo(0.25f)}; + return {tint_symbol_10.pos}; } )");