From 24036c6c817680007ad76ebf308bbfff59877179 Mon Sep 17 00:00:00 2001 From: Kyle Cripps Date: Mon, 7 Oct 2024 09:35:47 -0700 Subject: [PATCH 1/3] Do not print confusing warning when a parser state contains an assignment to an l-value slice Signed-off-by: Kyle Cripps --- midend/interpreter.cpp | 10 +++++++--- .../parser-unroll-slice-assignment.p4 | 16 ++++++++++++++++ .../parser-unroll-slice-assignment-first.p4 | 16 ++++++++++++++++ .../parser-unroll-slice-assignment-frontend.p4 | 16 ++++++++++++++++ .../parser-unroll-slice-assignment-midend.p4 | 16 ++++++++++++++++ .../parser-unroll-slice-assignment.p4 | 16 ++++++++++++++++ .../parser-unroll-slice-assignment.p4-stderr | 3 +++ .../parser-unroll-slice-assignment-first.p4 | 16 ++++++++++++++++ .../parser-unroll-slice-assignment-frontend.p4 | 16 ++++++++++++++++ .../parser-unroll-slice-assignment-midend.p4 | 16 ++++++++++++++++ .../parser-unroll-slice-assignment.p4 | 16 ++++++++++++++++ .../parser-unroll-slice-assignment.p4-stderr | 3 +++ 12 files changed, 157 insertions(+), 3 deletions(-) create mode 100644 testdata/p4_16_samples/parser-unroll-slice-assignment.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-first.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-frontend.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-midend.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4-stderr create mode 100644 testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-first.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-frontend.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-midend.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4-stderr diff --git a/midend/interpreter.cpp b/midend/interpreter.cpp index 6f845b4a662..96cafedcac0 100644 --- a/midend/interpreter.cpp +++ b/midend/interpreter.cpp @@ -741,9 +741,13 @@ void ExpressionEvaluator::postorder(const IR::Operation_Ternary *expression) { auto e1i = e1->to(); auto e2i = e2->to(); if (e0i->isUninitialized()) { - auto result = new SymbolicStaticError(expression->e0, "Uninitialized"); - set(expression, result); - return; + // This cannot be an uninitialized read if 'expression' is the LHS of + // an assignment to a sliced l-value. + if (!evaluatingLeftValue) { + auto result = new SymbolicStaticError(expression->e0, "Uninitialized"); + set(expression, result); + return; + } } else if (e1i->isUninitialized()) { auto result = new SymbolicStaticError(expression->e1, "Uninitialized"); set(expression, result); diff --git a/testdata/p4_16_samples/parser-unroll-slice-assignment.p4 b/testdata/p4_16_samples/parser-unroll-slice-assignment.p4 new file mode 100644 index 00000000000..123b0c3de1e --- /dev/null +++ b/testdata/p4_16_samples/parser-unroll-slice-assignment.p4 @@ -0,0 +1,16 @@ +#include + +struct S { + bit<8> f; +} + +parser p(packet_in packet, out S s) { + state start { + s.f[3:0] = 2; + transition accept; + } +} + +parser simple(packet_in packet, out S s); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-first.p4 b/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-first.p4 new file mode 100644 index 00000000000..53d755e7307 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-first.p4 @@ -0,0 +1,16 @@ +#include + +struct S { + bit<8> f; +} + +parser p(packet_in packet, out S s) { + state start { + s.f[3:0] = 4w2; + transition accept; + } +} + +parser simple(packet_in packet, out S s); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-frontend.p4 b/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-frontend.p4 new file mode 100644 index 00000000000..53d755e7307 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-frontend.p4 @@ -0,0 +1,16 @@ +#include + +struct S { + bit<8> f; +} + +parser p(packet_in packet, out S s) { + state start { + s.f[3:0] = 4w2; + transition accept; + } +} + +parser simple(packet_in packet, out S s); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-midend.p4 b/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-midend.p4 new file mode 100644 index 00000000000..53d755e7307 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-midend.p4 @@ -0,0 +1,16 @@ +#include + +struct S { + bit<8> f; +} + +parser p(packet_in packet, out S s) { + state start { + s.f[3:0] = 4w2; + transition accept; + } +} + +parser simple(packet_in packet, out S s); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4 b/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4 new file mode 100644 index 00000000000..123b0c3de1e --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4 @@ -0,0 +1,16 @@ +#include + +struct S { + bit<8> f; +} + +parser p(packet_in packet, out S s) { + state start { + s.f[3:0] = 2; + transition accept; + } +} + +parser simple(packet_in packet, out S s); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4-stderr b/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4-stderr new file mode 100644 index 00000000000..be5cd84505a --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4-stderr @@ -0,0 +1,3 @@ +parser-unroll-slice-assignment.p4(9): [--Wwarn=uninitialized_use] warning: s.f may be uninitialized + s.f[3:0] = 2; + ^^^ diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-first.p4 b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-first.p4 new file mode 100644 index 00000000000..53d755e7307 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-first.p4 @@ -0,0 +1,16 @@ +#include + +struct S { + bit<8> f; +} + +parser p(packet_in packet, out S s) { + state start { + s.f[3:0] = 4w2; + transition accept; + } +} + +parser simple(packet_in packet, out S s); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-frontend.p4 b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-frontend.p4 new file mode 100644 index 00000000000..53d755e7307 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-frontend.p4 @@ -0,0 +1,16 @@ +#include + +struct S { + bit<8> f; +} + +parser p(packet_in packet, out S s) { + state start { + s.f[3:0] = 4w2; + transition accept; + } +} + +parser simple(packet_in packet, out S s); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-midend.p4 b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-midend.p4 new file mode 100644 index 00000000000..53d755e7307 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-midend.p4 @@ -0,0 +1,16 @@ +#include + +struct S { + bit<8> f; +} + +parser p(packet_in packet, out S s) { + state start { + s.f[3:0] = 4w2; + transition accept; + } +} + +parser simple(packet_in packet, out S s); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4 b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4 new file mode 100644 index 00000000000..123b0c3de1e --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4 @@ -0,0 +1,16 @@ +#include + +struct S { + bit<8> f; +} + +parser p(packet_in packet, out S s) { + state start { + s.f[3:0] = 2; + transition accept; + } +} + +parser simple(packet_in packet, out S s); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4-stderr b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4-stderr new file mode 100644 index 00000000000..be5cd84505a --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4-stderr @@ -0,0 +1,3 @@ +parser-unroll-slice-assignment.p4(9): [--Wwarn=uninitialized_use] warning: s.f may be uninitialized + s.f[3:0] = 2; + ^^^ From 47f774716d6fee96163283e3fe0e167c9cf8d9ad Mon Sep 17 00:00:00 2001 From: Kyle Cripps Date: Mon, 7 Oct 2024 10:02:06 -0700 Subject: [PATCH 2/3] Add additional test case Signed-off-by: Kyle Cripps --- .../parser-unroll-uninitialized-slice-read.p4 | 12 ++++++++++++ .../parser-unroll-uninitialized-slice-read-first.p4 | 12 ++++++++++++ ...arser-unroll-uninitialized-slice-read-frontend.p4 | 12 ++++++++++++ .../parser-unroll-uninitialized-slice-read-midend.p4 | 12 ++++++++++++ .../parser-unroll-uninitialized-slice-read.p4 | 12 ++++++++++++ .../parser-unroll-uninitialized-slice-read.p4-stderr | 9 +++++++++ .../parser-unroll-uninitialized-slice-read-first.p4 | 12 ++++++++++++ ...arser-unroll-uninitialized-slice-read-frontend.p4 | 12 ++++++++++++ .../parser-unroll-uninitialized-slice-read-midend.p4 | 12 ++++++++++++ .../parser-unroll-uninitialized-slice-read.p4 | 12 ++++++++++++ .../parser-unroll-uninitialized-slice-read.p4-stderr | 12 ++++++++++++ 11 files changed, 129 insertions(+) create mode 100644 testdata/p4_16_samples/parser-unroll-uninitialized-slice-read.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read-first.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read-frontend.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read-midend.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read.p4-stderr create mode 100644 testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read-first.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read-frontend.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read-midend.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read.p4 create mode 100644 testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read.p4-stderr diff --git a/testdata/p4_16_samples/parser-unroll-uninitialized-slice-read.p4 b/testdata/p4_16_samples/parser-unroll-uninitialized-slice-read.p4 new file mode 100644 index 00000000000..10d44be16b6 --- /dev/null +++ b/testdata/p4_16_samples/parser-unroll-uninitialized-slice-read.p4 @@ -0,0 +1,12 @@ +#include + +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + state start { + g = f[3:0]; + transition accept; + } +} + +parser simple(packet_in packet, out bit<8> f, out bit<4> g); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read-first.p4 b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read-first.p4 new file mode 100644 index 00000000000..10d44be16b6 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read-first.p4 @@ -0,0 +1,12 @@ +#include + +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + state start { + g = f[3:0]; + transition accept; + } +} + +parser simple(packet_in packet, out bit<8> f, out bit<4> g); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read-frontend.p4 b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read-frontend.p4 new file mode 100644 index 00000000000..10d44be16b6 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read-frontend.p4 @@ -0,0 +1,12 @@ +#include + +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + state start { + g = f[3:0]; + transition accept; + } +} + +parser simple(packet_in packet, out bit<8> f, out bit<4> g); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read-midend.p4 b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read-midend.p4 new file mode 100644 index 00000000000..10d44be16b6 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read-midend.p4 @@ -0,0 +1,12 @@ +#include + +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + state start { + g = f[3:0]; + transition accept; + } +} + +parser simple(packet_in packet, out bit<8> f, out bit<4> g); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read.p4 b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read.p4 new file mode 100644 index 00000000000..10d44be16b6 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read.p4 @@ -0,0 +1,12 @@ +#include + +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + state start { + g = f[3:0]; + transition accept; + } +} + +parser simple(packet_in packet, out bit<8> f, out bit<4> g); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read.p4-stderr b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read.p4-stderr new file mode 100644 index 00000000000..52dd3c8a0f4 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-read.p4-stderr @@ -0,0 +1,9 @@ +parser-unroll-uninitialized-slice-read.p4(5): [--Wwarn=uninitialized_use] warning: f may be uninitialized + g = f[3:0]; + ^ +parser-unroll-uninitialized-slice-read.p4(3): [--Wwarn=uninitialized_out_param] warning: out parameter 'f' may be uninitialized when 'p' terminates +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + ^ +parser-unroll-uninitialized-slice-read.p4(3) +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + ^ diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read-first.p4 b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read-first.p4 new file mode 100644 index 00000000000..10d44be16b6 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read-first.p4 @@ -0,0 +1,12 @@ +#include + +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + state start { + g = f[3:0]; + transition accept; + } +} + +parser simple(packet_in packet, out bit<8> f, out bit<4> g); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read-frontend.p4 b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read-frontend.p4 new file mode 100644 index 00000000000..10d44be16b6 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read-frontend.p4 @@ -0,0 +1,12 @@ +#include + +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + state start { + g = f[3:0]; + transition accept; + } +} + +parser simple(packet_in packet, out bit<8> f, out bit<4> g); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read-midend.p4 b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read-midend.p4 new file mode 100644 index 00000000000..10d44be16b6 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read-midend.p4 @@ -0,0 +1,12 @@ +#include + +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + state start { + g = f[3:0]; + transition accept; + } +} + +parser simple(packet_in packet, out bit<8> f, out bit<4> g); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read.p4 b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read.p4 new file mode 100644 index 00000000000..10d44be16b6 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read.p4 @@ -0,0 +1,12 @@ +#include + +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + state start { + g = f[3:0]; + transition accept; + } +} + +parser simple(packet_in packet, out bit<8> f, out bit<4> g); +package top(simple e); +top(p()) main; diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read.p4-stderr b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read.p4-stderr new file mode 100644 index 00000000000..c2e7e3cd08c --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-read.p4-stderr @@ -0,0 +1,12 @@ +parser-unroll-uninitialized-slice-read.p4(5): [--Wwarn=uninitialized_use] warning: f may be uninitialized + g = f[3:0]; + ^ +parser-unroll-uninitialized-slice-read.p4(3): [--Wwarn=uninitialized_out_param] warning: out parameter 'f' may be uninitialized when 'p' terminates +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + ^ +parser-unroll-uninitialized-slice-read.p4(3) +parser p(packet_in packet, out bit<8> f, out bit<4> g) { + ^ +parser-unroll-uninitialized-slice-read.p4(5): [--Wwarn=ignore-prop] warning: Result of 'g = f[3:0]' is not defined: Error: Uninitialized + g = f[3:0]; + ^ From 364b582759671c3bb5fda4deb8cf392b43b870a8 Mon Sep 17 00:00:00 2001 From: Kyle Cripps Date: Mon, 7 Oct 2024 10:05:43 -0700 Subject: [PATCH 3/3] rename test Signed-off-by: Kyle Cripps --- ...ssignment.p4 => parser-unroll-uninitialized-slice-write.p4} | 0 .../parser-unroll-slice-assignment.p4-stderr | 3 --- ...rst.p4 => parser-unroll-uninitialized-slice-write-first.p4} | 0 ....p4 => parser-unroll-uninitialized-slice-write-frontend.p4} | 0 ...nd.p4 => parser-unroll-uninitialized-slice-write-midend.p4} | 0 ...ssignment.p4 => parser-unroll-uninitialized-slice-write.p4} | 0 .../parser-unroll-uninitialized-slice-write.p4-stderr | 3 +++ .../parser-unroll/parser-unroll-slice-assignment.p4-stderr | 3 --- ...rst.p4 => parser-unroll-uninitialized-slice-write-first.p4} | 0 ....p4 => parser-unroll-uninitialized-slice-write-frontend.p4} | 0 ...nd.p4 => parser-unroll-uninitialized-slice-write-midend.p4} | 0 ...ssignment.p4 => parser-unroll-uninitialized-slice-write.p4} | 0 .../parser-unroll-uninitialized-slice-write.p4-stderr | 3 +++ 13 files changed, 6 insertions(+), 6 deletions(-) rename testdata/p4_16_samples/{parser-unroll-slice-assignment.p4 => parser-unroll-uninitialized-slice-write.p4} (100%) delete mode 100644 testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4-stderr rename testdata/p4_16_samples_outputs/{parser-unroll-slice-assignment-first.p4 => parser-unroll-uninitialized-slice-write-first.p4} (100%) rename testdata/p4_16_samples_outputs/{parser-unroll-slice-assignment-frontend.p4 => parser-unroll-uninitialized-slice-write-frontend.p4} (100%) rename testdata/p4_16_samples_outputs/{parser-unroll-slice-assignment-midend.p4 => parser-unroll-uninitialized-slice-write-midend.p4} (100%) rename testdata/p4_16_samples_outputs/{parser-unroll-slice-assignment.p4 => parser-unroll-uninitialized-slice-write.p4} (100%) create mode 100644 testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-write.p4-stderr delete mode 100644 testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4-stderr rename testdata/p4_16_samples_outputs/parser-unroll/{parser-unroll-slice-assignment-first.p4 => parser-unroll-uninitialized-slice-write-first.p4} (100%) rename testdata/p4_16_samples_outputs/parser-unroll/{parser-unroll-slice-assignment-frontend.p4 => parser-unroll-uninitialized-slice-write-frontend.p4} (100%) rename testdata/p4_16_samples_outputs/parser-unroll/{parser-unroll-slice-assignment-midend.p4 => parser-unroll-uninitialized-slice-write-midend.p4} (100%) rename testdata/p4_16_samples_outputs/parser-unroll/{parser-unroll-slice-assignment.p4 => parser-unroll-uninitialized-slice-write.p4} (100%) create mode 100644 testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-write.p4-stderr diff --git a/testdata/p4_16_samples/parser-unroll-slice-assignment.p4 b/testdata/p4_16_samples/parser-unroll-uninitialized-slice-write.p4 similarity index 100% rename from testdata/p4_16_samples/parser-unroll-slice-assignment.p4 rename to testdata/p4_16_samples/parser-unroll-uninitialized-slice-write.p4 diff --git a/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4-stderr b/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4-stderr deleted file mode 100644 index be5cd84505a..00000000000 --- a/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4-stderr +++ /dev/null @@ -1,3 +0,0 @@ -parser-unroll-slice-assignment.p4(9): [--Wwarn=uninitialized_use] warning: s.f may be uninitialized - s.f[3:0] = 2; - ^^^ diff --git a/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-first.p4 b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-write-first.p4 similarity index 100% rename from testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-first.p4 rename to testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-write-first.p4 diff --git a/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-frontend.p4 b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-write-frontend.p4 similarity index 100% rename from testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-frontend.p4 rename to testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-write-frontend.p4 diff --git a/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-midend.p4 b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-write-midend.p4 similarity index 100% rename from testdata/p4_16_samples_outputs/parser-unroll-slice-assignment-midend.p4 rename to testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-write-midend.p4 diff --git a/testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4 b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-write.p4 similarity index 100% rename from testdata/p4_16_samples_outputs/parser-unroll-slice-assignment.p4 rename to testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-write.p4 diff --git a/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-write.p4-stderr b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-write.p4-stderr new file mode 100644 index 00000000000..b5834510440 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll-uninitialized-slice-write.p4-stderr @@ -0,0 +1,3 @@ +parser-unroll-uninitialized-slice-write.p4(9): [--Wwarn=uninitialized_use] warning: s.f may be uninitialized + s.f[3:0] = 2; + ^^^ diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4-stderr b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4-stderr deleted file mode 100644 index be5cd84505a..00000000000 --- a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4-stderr +++ /dev/null @@ -1,3 +0,0 @@ -parser-unroll-slice-assignment.p4(9): [--Wwarn=uninitialized_use] warning: s.f may be uninitialized - s.f[3:0] = 2; - ^^^ diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-first.p4 b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-write-first.p4 similarity index 100% rename from testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-first.p4 rename to testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-write-first.p4 diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-frontend.p4 b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-write-frontend.p4 similarity index 100% rename from testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-frontend.p4 rename to testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-write-frontend.p4 diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-midend.p4 b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-write-midend.p4 similarity index 100% rename from testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment-midend.p4 rename to testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-write-midend.p4 diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4 b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-write.p4 similarity index 100% rename from testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-slice-assignment.p4 rename to testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-write.p4 diff --git a/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-write.p4-stderr b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-write.p4-stderr new file mode 100644 index 00000000000..b5834510440 --- /dev/null +++ b/testdata/p4_16_samples_outputs/parser-unroll/parser-unroll-uninitialized-slice-write.p4-stderr @@ -0,0 +1,3 @@ +parser-unroll-uninitialized-slice-write.p4(9): [--Wwarn=uninitialized_use] warning: s.f may be uninitialized + s.f[3:0] = 2; + ^^^