// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// waiver file for the pwrmgr_pkg

`verilator_config

// Waive the SYMRSVDWORD warning in pwrmgr_reg_pkg: we have a field in
// the WAKE_INFO register called "abort", which means pwrmgr_reg_pkg
// defines a struct with that name, clashing with a C++ reserved word.
lint_off -rule SYMRSVDWORD -file "*/pwrmgr_reg_pkg.sv" -match "*common word: 'abort'"
