Skip to content

Commit

Permalink
Stop when an error is throwing in the P4Runtime serializer. Make stop…
Browse files Browse the repository at this point in the history
… on error explicit in pass manager. (#4408)
  • Loading branch information
fruffy committed Feb 12, 2024
1 parent 02f89f7 commit e9a1c4b
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 0 deletions.
1 change: 1 addition & 0 deletions backends/p4tools/common/compiler/compiler_target.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ P4::FrontEnd CompilerTarget::mkFrontEnd() const { return {}; }
MidEnd CompilerTarget::mkMidEnd(const CompilerOptions &options) const {
MidEnd midEnd(options);
midEnd.addDefaultPasses();
midEnd.setStopOnError(true);
return midEnd;
}

Expand Down
4 changes: 4 additions & 0 deletions backends/p4tools/modules/testgen/targets/bmv2/bmv2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@ CompilerResultOrError Bmv2V1ModelCompilerTarget::runCompilerImpl(
/// After the front end, get the P4Runtime API for the V1model architecture.
auto p4runtimeApi = P4::P4RuntimeSerializer::get()->generateP4Runtime(program, "v1model");

if (::errorCount() > 0) {
return std::nullopt;
}

program = runMidEnd(program);
if (program == nullptr) {
return std::nullopt;
Expand Down

0 comments on commit e9a1c4b

Please sign in to comment.