mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
237d246665
This commit also adds size 16 -> extended integer kind mapping. While we are hardcoding this for now, some maintenance (as above) is needed, so it's best to hardcode it only in one place and share that definition.
36 lines
850 B
C++
36 lines
850 B
C++
//
|
|
// This file is distributed under the MIT License. See LICENSE.md for details.
|
|
//
|
|
|
|
#include "mlir/Pass/Pass.h"
|
|
|
|
#include "revng/mlir/Dialect/Clift/Transforms/Passes.h"
|
|
#include "revng/mlir/Dialect/Clift/Utils/CSemantics.h"
|
|
|
|
namespace mlir {
|
|
namespace clift {
|
|
#define GEN_PASS_DEF_CLIFTVERIFYC
|
|
#include "revng/mlir/Dialect/Clift/Transforms/Passes.h.inc"
|
|
} // namespace clift
|
|
} // namespace mlir
|
|
|
|
namespace clift = mlir::clift;
|
|
|
|
namespace {
|
|
|
|
struct VerifyCPass : clift::impl::CliftVerifyCBase<VerifyCPass> {
|
|
void runOnOperation() override {
|
|
const auto &Target = clift::TargetCImplementation::Default;
|
|
|
|
if (mlir::failed(verifyCSemantics(getOperation(), Target)))
|
|
signalPassFailure();
|
|
}
|
|
};
|
|
|
|
} // namespace
|
|
|
|
std::unique_ptr<mlir::OperationPass<mlir::ModuleOp>>
|
|
clift::createVerifyCPass() {
|
|
return std::make_unique<VerifyCPass>();
|
|
}
|