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

waive -rules {SAME_NAME_TYPE} -location {*} -regexp {'prim_secded_.*' is used as a module here, and as a function at prim_secded_pkg.sv.*} \
      -comment "The secded functions and primitives may have the same name."
