Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions backends/tofino/bf-p4c/test/gtest/error_reporter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,13 +91,13 @@ TEST_F(ErrorReporterTest, WarningsConformToExpectedFormat) {
)";

const std::string EXPECTED_WARN_1 =
R"(TestCode(46): [--Wwarn=uninitialized_use] warning: tmp may be uninitialized
R"(TestCode(46): [--Wwarn=uninitialized-use] warning: tmp may be uninitialized
tmp = tmp * (make_zero ? 16w0 : 16w1);
^^^
)";

const std::string EXPECTED_WARN_2 =
R"(TestCode(44): [--Wwarn=uninitialized_out_param] warning: out parameter 'val_undefined' may be uninitialized when 'do_global_action' terminates
R"(TestCode(44): [--Wwarn=uninitialized-out-param] warning: out parameter 'val_undefined' may be uninitialized when 'do_global_action' terminates
action do_global_action(in bool make_zero, out bool val_undefined) {
^^^^^^^^^^^^^
TestCode(44)
Expand All @@ -106,8 +106,8 @@ TestCode(44)
)";

const std::string EXPECTED_WARN_3 =
R"([--Wwarn=uninitialized_use] warning: val_undefined may be uninitialized
TestCode(44): [--Wwarn=uninitialized_use] warning: val_undefined may be uninitialized
R"([--Wwarn=uninitialized-use] warning: val_undefined may be uninitialized
TestCode(44): [--Wwarn=uninitialized-use] warning: val_undefined may be uninitialized
action do_global_action(in bool make_zero, out bool val_undefined) {
^^^^^^^^^^^^^
)";
Expand Down
2 changes: 1 addition & 1 deletion frontends/common/parser_options.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -529,7 +529,7 @@ const P4CConfiguration &P4CContext::getConfig() {

bool P4CContext::isRecognizedDiagnostic(cstring diagnostic) {
static const std::unordered_set<cstring> recognizedDiagnostics = {
"uninitialized_out_param"_cs, "uninitialized_use"_cs, "unknown_diagnostic"_cs};
"uninitialized-out-param"_cs, "uninitialized-use"_cs, "unknown_diagnostic"_cs};

return recognizedDiagnostics.count(diagnostic);
}
Expand Down
12 changes: 6 additions & 6 deletions lib/error_catalog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,13 +122,13 @@ std::map<int, cstring> ErrorCatalog::errorCatalog = {
{ErrorType::WARN_PARSER_TRANSITION, "parser-transition"_cs},
{ErrorType::WARN_UNREACHABLE, "unreachable"_cs},
{ErrorType::WARN_SHADOWING, "shadow"_cs},
{ErrorType::WARN_UNINITIALIZED_USE, "uninitialized_use"_cs},
{ErrorType::WARN_UNINITIALIZED_OUT_PARAM, "uninitialized_out_param"_cs},
{ErrorType::WARN_UNINITIALIZED_USE, "uninitialized-use"_cs},
{ErrorType::WARN_UNINITIALIZED_OUT_PARAM, "uninitialized-out-param"_cs},
{ErrorType::WARN_IGNORE, "ignore"_cs},
{ErrorType::WARN_INVALID_HEADER, "invalid_header"_cs},
{ErrorType::WARN_DUPLICATE_PRIORITIES, "duplicate_priorities"_cs},
{ErrorType::WARN_ENTRIES_OUT_OF_ORDER, "entries_out_of_priority_order"_cs},
{ErrorType::WARN_MULTI_HDR_EXTRACT, "multi_header_extract"_cs},
{ErrorType::WARN_INVALID_HEADER, "invalid-header"_cs},
{ErrorType::WARN_DUPLICATE_PRIORITIES, "duplicate-priorities"_cs},
{ErrorType::WARN_ENTRIES_OUT_OF_ORDER, "entries-out-of-priority-order"_cs},
{ErrorType::WARN_MULTI_HDR_EXTRACT, "multi-header-extract"_cs},
{ErrorType::WARN_EXPRESSION, "expr"_cs},
{ErrorType::WARN_DUPLICATE, "duplicate"_cs},
{ErrorType::WARN_BRANCH_HINT, "branch"_cs},
Expand Down
30 changes: 15 additions & 15 deletions test/gtest/diagnostics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class Diagnostics : public P4CTest {};

TEST_F(Diagnostics, P4_16_Disable) {
auto test = createP4_16DiagnosticsTestCase(P4_SOURCE(R"(
@diagnostic("uninitialized_out_param", "disable")
@diagnostic("uninitialized-out-param", "disable")
)"));
EXPECT_TRUE(test);
EXPECT_EQ(0u, diagnosticCount());
Expand All @@ -77,7 +77,7 @@ TEST_F(Diagnostics, P4_16_Disable) {

TEST_F(Diagnostics, P4_16_Warn) {
auto test = createP4_16DiagnosticsTestCase(P4_SOURCE(R"(
@diagnostic("uninitialized_out_param", "warn")
@diagnostic("uninitialized-out-param", "warn")
)"));
EXPECT_TRUE(test);
EXPECT_EQ(1u, diagnosticCount());
Expand All @@ -87,7 +87,7 @@ TEST_F(Diagnostics, P4_16_Warn) {

TEST_F(Diagnostics, P4_16_Error) {
auto test = createP4_16DiagnosticsTestCase(P4_SOURCE(R"(
@diagnostic("uninitialized_out_param", "error")
@diagnostic("uninitialized-out-param", "error")
)"));
EXPECT_FALSE(test);
EXPECT_EQ(1u, diagnosticCount());
Expand All @@ -97,15 +97,15 @@ TEST_F(Diagnostics, P4_16_Error) {

TEST_F(Diagnostics, DISABLED_P4_14_Disable) {
auto test = createP4_14DiagnosticsTestCase(P4_SOURCE(R"(
@pragma diagnostic uninitialized_use disable
@pragma diagnostic uninitialized-use disable
)"));
EXPECT_TRUE(test);
EXPECT_EQ(0u, diagnosticCount());
}

TEST_F(Diagnostics, DISABLED_P4_14_Warn) {
auto test = createP4_14DiagnosticsTestCase(P4_SOURCE(R"(
@pragma diagnostic uninitialized_use warn
@pragma diagnostic uninitialized-use warn
)"));
EXPECT_TRUE(test);
EXPECT_EQ(1u, diagnosticCount());
Expand All @@ -115,7 +115,7 @@ TEST_F(Diagnostics, DISABLED_P4_14_Warn) {

TEST_F(Diagnostics, DISABLED_P4_14_Error) {
auto test = createP4_14DiagnosticsTestCase(P4_SOURCE(R"(
@pragma diagnostic uninitialized_use error
@pragma diagnostic uninitialized-use error
)"));
EXPECT_FALSE(test);
EXPECT_EQ(1u, diagnosticCount());
Expand All @@ -133,26 +133,26 @@ TEST_F(Diagnostics, NestedCompileContexts) {
{
AutoCompileContext autoErrorContext(new GTestContext);

// Run a test with `uninitialized_out_param` set to trigger an error.
// Run a test with `uninitialized-out-param` set to trigger an error.
auto test = createP4_16DiagnosticsTestCase(P4_SOURCE(R"(
@diagnostic("uninitialized_out_param", "error")
@diagnostic("uninitialized-out-param", "error")
)"));
EXPECT_FALSE(test);
EXPECT_EQ(1u, diagnosticCount());
EXPECT_EQ(0u, warningCount());
EXPECT_EQ(1u, errorCount());
}

// Run a test with `uninitialized_out_param` disabled. The error from
// Run a test with `uninitialized-out-param` disabled. The error from
// the previous test should be gone, and no new error should appear.
auto test = createP4_16DiagnosticsTestCase(P4_SOURCE(R"(
@diagnostic("uninitialized_out_param", "disable")
@diagnostic("uninitialized-out-param", "disable")
)"));
EXPECT_TRUE(test);
EXPECT_EQ(0u, diagnosticCount());
}

// Run a test with no diagnostic pragma for `uninitialized_out_param`. It
// Run a test with no diagnostic pragma for `uninitialized-out-param`. It
// should default to triggering a warning; the diagnostic actions configured
// by the previous tests should be gone.
auto test = createP4_16DiagnosticsTestCase(P4_SOURCE(R"()"));
Expand Down Expand Up @@ -205,7 +205,7 @@ TEST_F(Diagnostics, CompilerOptions) {

{
AutoCompileContext autoContext(new GTestContext);
auto test = parseWithCompilerOptions({"(test)", "--Wdisable=uninitialized_out_param"});
auto test = parseWithCompilerOptions({"(test)", "--Wdisable=uninitialized-out-param"});
EXPECT_TRUE(test);
EXPECT_EQ(0u, diagnosticCount());
}
Expand All @@ -221,7 +221,7 @@ TEST_F(Diagnostics, CompilerOptions) {

{
AutoCompileContext autoContext(new GTestContext);
auto test = parseWithCompilerOptions({"(test)", "--Wwarn=uninitialized_out_param"});
auto test = parseWithCompilerOptions({"(test)", "--Wwarn=uninitialized-out-param"});
EXPECT_TRUE(test);
EXPECT_EQ(1u, diagnosticCount());
EXPECT_EQ(1u, warningCount());
Expand All @@ -230,7 +230,7 @@ TEST_F(Diagnostics, CompilerOptions) {

{
AutoCompileContext autoContext(new GTestContext);
auto test = parseWithCompilerOptions({"(test)", "--Werror=uninitialized_out_param"});
auto test = parseWithCompilerOptions({"(test)", "--Werror=uninitialized-out-param"});
EXPECT_FALSE(test);
EXPECT_EQ(1u, diagnosticCount());
EXPECT_EQ(0u, warningCount());
Expand All @@ -256,7 +256,7 @@ TEST_F(Diagnostics, CompilerOptions) {

// We expect all warnings to be disabled. If `unknown_diagnostic` was
// treated as an argument to `--Wdisable`, then
// `uninitialized_out_param` would still be enabled and a warning would
// `uninitialized-out-param` would still be enabled and a warning would
// fire.
EXPECT_EQ(0u, diagnosticCount());
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
psa-dpdk-struct-field.p4(51): [--Wwarn=uninitialized_use] warning: flg may be uninitialized
psa-dpdk-struct-field.p4(51): [--Wwarn=uninitialized-use] warning: flg may be uninitialized
if (flg == 0x2) {
^^^
psa-dpdk-struct-field.p4(51): [--Werror=target-error] error: Unsupported bitwidth 80 in flg
Expand Down
8 changes: 4 additions & 4 deletions testdata/p4_16_errors_outputs/issue-2123_e.p4-stderr
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
issue-2123_e.p4(63): [--Wwarn=uninitialized_use] warning: hdr.ipv4.totalLen may be uninitialized
issue-2123_e.p4(63): [--Wwarn=uninitialized-use] warning: hdr.ipv4.totalLen may be uninitialized
hdr.ipv4.totalLen .. 0x0800 : parse_ipv4;
^^^^^^^^^^^^^^^^^
issue-2123_e.p4(64): [--Wwarn=uninitialized_use] warning: hdr.ipv4.totalLen may be uninitialized
issue-2123_e.p4(64): [--Wwarn=uninitialized-use] warning: hdr.ipv4.totalLen may be uninitialized
0x0800 .. hdr.ipv4.totalLen : parse_ipv4;
^^^^^^^^^^^^^^^^^
issue-2123_e.p4(63): [--Wwarn=invalid_header] warning: accessing a field of an invalid header hdr.ipv4
issue-2123_e.p4(63): [--Wwarn=invalid-header] warning: accessing a field of an invalid header hdr.ipv4
hdr.ipv4.totalLen .. 0x0800 : parse_ipv4;
^^^^^^^^
issue-2123_e.p4(64): [--Wwarn=invalid_header] warning: accessing a field of an invalid header hdr.ipv4
issue-2123_e.p4(64): [--Wwarn=invalid-header] warning: accessing a field of an invalid header hdr.ipv4
0x0800 .. hdr.ipv4.totalLen : parse_ipv4;
^^^^^^^^
issue-2123_e.p4(61): [--Wwarn=invalid] warning: 16w0x806-16w0x800: Range with end less than start is treated as an empty range
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
no_warn_const_switch_expr.p4(1): [--Wwarn=uninitialized_out_param] warning: out parameter 'y' may be uninitialized when 'bar' terminates
no_warn_const_switch_expr.p4(1): [--Wwarn=uninitialized-out-param] warning: out parameter 'y' may be uninitialized when 'bar' terminates
void bar(in bit<2> x, out bit<8> y) {
^
no_warn_const_switch_expr.p4(1)
void bar(in bit<2> x, out bit<8> y) {
^^^
[--Wwarn=uninitialized_use] warning: y_0 may be uninitialized
[--Wwarn=uninitialized-use] warning: y_0 may be uninitialized
no_warn_const_switch_expr.p4(2): error: SwitchStatement: switch statements not supported in actions on this target
switch (x) {
^^^^^^
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ const ExpireTimeProfileId_t EXPIRE_TIME_PROFILE_TCP_NEVER = (ExpireTimeProfileId
pna-example-tcp-connection-tracking-err-1.p4(141): [--Wwarn=unused] warning: 'drop' is unused
action drop () {
^^^^
pna-example-tcp-connection-tracking-err-1.p4(206): [--Wwarn=uninitialized_use] warning: update_aging_info may be uninitialized
pna-example-tcp-connection-tracking-err-1.p4(206): [--Wwarn=uninitialized-use] warning: update_aging_info may be uninitialized
if (update_aging_info) {
^^^^^^^^^^^^^^^^^
pna-example-tcp-connection-tracking-err-1.p4(208): [--Wwarn=uninitialized_use] warning: new_expire_time_profile_id may not be completely initialized
pna-example-tcp-connection-tracking-err-1.p4(208): [--Wwarn=uninitialized-use] warning: new_expire_time_profile_id may not be completely initialized
set_entry_expire_time(new_expire_time_profile_id);
^^^^^^^^^^^^^^^^^^^^^^^^^^
pna-example-tcp-connection-tracking-err-1.p4(240): [--Wwarn=uninitialized_use] warning: new_expire_time_profile_id may not be completely initialized
pna-example-tcp-connection-tracking-err-1.p4(240): [--Wwarn=uninitialized-use] warning: new_expire_time_profile_id may not be completely initialized
expire_time_profile_id = new_expire_time_profile_id);
^^^^^^^^^^^^^^^^^^^^^^^^^^
pna-example-tcp-connection-tracking-err-1.p4(208): [--Werror=unexpected] error: set_entry_expire_time(new_expire_time_profile_id) must only be called from within an action with ' ct_tcp_table_hit' property equal to true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ const ExpireTimeProfileId_t EXPIRE_TIME_PROFILE_TCP_NEVER = (ExpireTimeProfileId
pna-example-tcp-connection-tracking-err.p4(141): [--Wwarn=unused] warning: 'drop' is unused
action drop () {
^^^^
pna-example-tcp-connection-tracking-err.p4(206): [--Wwarn=uninitialized_use] warning: update_aging_info may be uninitialized
pna-example-tcp-connection-tracking-err.p4(206): [--Wwarn=uninitialized-use] warning: update_aging_info may be uninitialized
if (update_aging_info) {
^^^^^^^^^^^^^^^^^
pna-example-tcp-connection-tracking-err.p4(208): [--Wwarn=uninitialized_use] warning: new_expire_time_profile_id may not be completely initialized
pna-example-tcp-connection-tracking-err.p4(208): [--Wwarn=uninitialized-use] warning: new_expire_time_profile_id may not be completely initialized
set_entry_expire_time(new_expire_time_profile_id);
^^^^^^^^^^^^^^^^^^^^^^^^^^
pna-example-tcp-connection-tracking-err.p4(240): [--Wwarn=uninitialized_use] warning: new_expire_time_profile_id may not be completely initialized
pna-example-tcp-connection-tracking-err.p4(240): [--Wwarn=uninitialized-use] warning: new_expire_time_profile_id may not be completely initialized
expire_time_profile_id = new_expire_time_profile_id);
^^^^^^^^^^^^^^^^^^^^^^^^^^
pna-example-tcp-connection-tracking-err.p4(208): [--Werror=unexpected] error: set_entry_expire_time(new_expire_time_profile_id) must only be called from within an action with 'idle_timeout_with_auto_delete ct_tcp_table_hit' property equal to true
Expand Down
2 changes: 1 addition & 1 deletion testdata/p4_16_samples/entries-prio.p4
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ control c(in Headers h) {
largest_priority_wins = false;
priority_delta = 10;

@noWarn("duplicate_priorities")
@noWarn("duplicate-priorities")
entries = {
const priority=10: (0x01, 0x1111 &&& 0xF ) : a_params(1);
(0x02, 0x1181 ) : a_params(2); // priority=20
Expand Down
16 changes: 8 additions & 8 deletions testdata/p4_16_samples/init-entries-bmv2.p4
Original file line number Diff line number Diff line change
Expand Up @@ -91,11 +91,11 @@ control ingressImpl(
actions = { a; a_params; }
default_action = a;
// t1b is same as t1, but because it has
// @noWarn("duplicate_priorities") annotation, no warning
// @noWarn("duplicate-priorities") annotation, no warning
// should be created for it about duplicate priorities.
largest_priority_wins = false;
priority_delta = 10;
@noWarn("duplicate_priorities")
@noWarn("duplicate-priorities")
entries = {
const priority=10: (0x01, 0x1111 &&& 0xF ) : a_params(1);
(0x02, 0x1181 ) : a_params(2); // priority=20
Expand Down Expand Up @@ -136,10 +136,10 @@ control ingressImpl(
largest_priority_wins = false;
priority_delta = 10;
// t2b is same as t2, but because it has
// @noWarn("entries_out_of_priority_order") annotation, no
// @noWarn("entries-out-of-priority-order") annotation, no
// warning should be created for it about entries out of
// priority order.
@noWarn("entries_out_of_priority_order")
@noWarn("entries-out-of-priority-order")
entries = {
const priority=11: (0x01, 0x1111 &&& 0xF ) : a_params(1);
(0x02, 0x1181 ) : a_params(2); // priority=21
Expand Down Expand Up @@ -181,8 +181,8 @@ control ingressImpl(
// t3b is same as t3, but because it has both noWarn
// annotations, there should be no warnings issues for it
// about entry priorities.
@noWarn("duplicate_priorities")
@noWarn("entries_out_of_priority_order")
@noWarn("duplicate-priorities")
@noWarn("entries-out-of-priority-order")
entries = {
const priority=11: (0x01, 0x1111 &&& 0xF ) : a_params(1);
(0x02, 0x1181 ) : a_params(2); // priority=12
Expand Down Expand Up @@ -221,9 +221,9 @@ control ingressImpl(
default_action = a;
largest_priority_wins = false;
// t4b is same as t4, but because it has
// @noWarn("duplicate_priorities") annotation, no warning
// @noWarn("duplicate-priorities") annotation, no warning
// should be created for it about duplicate priorities.
@noWarn("duplicate_priorities")
@noWarn("duplicate-priorities")
entries = {
const priority=2001: (0x01, 0x1111 &&& 0xF ) : a_params(1);
priority=2001: (0x02, 0x1181 ) : a_params(2);
Expand Down
2 changes: 1 addition & 1 deletion testdata/p4_16_samples/invalid-hdr-warnings7.p4
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ control c(inout bit<32> x) {
^ us1[0].h2.a ^ us1[1].h1.a ^ us1[1].h2.a;
}

apply @noWarn("uninitialized_use") {
apply @noWarn("uninitialized-use") {
u.h1.setValid();
hs[0].setValid();
us[0].h1.setValid();
Expand Down
2 changes: 1 addition & 1 deletion testdata/p4_16_samples/invalid-hdr-warnings8.p4
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ control c(inout bit<32> x) {
^ us1[0].h2.a ^ us1[1].h1.a ^ us1[1].h2.a;
}

apply @noWarn("uninitialized_use") {
apply @noWarn("uninitialized-use") {
u.h1.setValid();
hs[0].setValid();
us[0].h1.setValid();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Expect no errors, as --Wdisable should take precedence over --Werror for warnings.
@command_line("--Werror", "--Wdisable=uninitialized_use", "--Wdisable=invalid_header")
@command_line("--Werror", "--Wdisable=uninitialized-use", "--Wdisable=invalid-header")
header h_t {
bit<28> f1;
bit<4> f2;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Control testcase to ensure that this program actually emits warnings
// that can be disabled with --Wdisable=uninitialized_use and --Wdisable=invalid_header.
// that can be disabled with --Wdisable=uninitialized-use and --Wdisable=invalid-header.
header h_t {
bit<28> f1;
bit<4> f2;
Expand Down
8 changes: 4 additions & 4 deletions testdata/p4_16_samples/uninit-nowarnings.p4
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,14 @@ header Header {
extern void func(in Header h);
extern bit<32> g(inout bit<32> v, in bit<32> w);

@noWarn("uninitialized_use")
@noWarn("uninitialized-use")
parser p1(packet_in p, out Header h) {
Header[2] stack;
bool b;
bool c;
bool d;

@noWarn("invalid_header")
@noWarn("invalid-header")
@noWarn("ordering")
state start {
h.data1 = 0;
Expand All @@ -41,7 +41,7 @@ parser p1(packet_in p, out Header h) {
transition next;
}

@noWarn("invalid_header")
@noWarn("invalid-header")
state next {
h.data2 = h.data3 + 1; // uninitialized
stack[0] = stack[1]; // uninitialized
Expand Down Expand Up @@ -83,7 +83,7 @@ control c(out bit<32> v) { // uninitialized
default_action = a1();
}

apply @noWarn("uninitialized_use")
apply @noWarn("uninitialized-use")
{
b = b + 1; // uninitialized
d = d + 1;
Expand Down
2 changes: 1 addition & 1 deletion testdata/p4_16_samples_outputs/annotation-bug.p4-stderr
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
annotation-bug.p4(24): [--Wwarn=uninitialized_use] warning: hdr.ipv4_option_timestamp.len may be uninitialized
annotation-bug.p4(24): [--Wwarn=uninitialized-use] warning: hdr.ipv4_option_timestamp.len may be uninitialized
get<headers>({ hdr.ipv4_option_timestamp });
^^^^^^^^^^^^^^^^^^^^^^^^^
Loading
Loading