From 91b4540477f51d924d46489af9c2bed0f5fda8e5 Mon Sep 17 00:00:00 2001 From: Gabriel Busnot Date: Tue, 2 Aug 2022 07:07:33 +0000 Subject: [PATCH] python: Fix namespaced enums params code generation The wrapper_name parameter was not properly handled. Enums were always generated in the enums namespace even if required differently by wrapper_name. Change-Id: I366846ce39dfe10effc2cc145e7772a3fd171b92 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/67662 Tested-by: kokoro Reviewed-by: Bobby Bruce Maintainer: Bobby Bruce --- build_tools/enum_cc.py | 4 ++-- src/python/m5/params.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build_tools/enum_cc.py b/build_tools/enum_cc.py index 5d82b401b2..173143fc38 100644 --- a/build_tools/enum_cc.py +++ b/build_tools/enum_cc.py @@ -97,7 +97,7 @@ const char *${name}Strings[static_cast(${name}::Num_${name})] = ) else: code( - """namespace enums + """namespace ${wrapper_name} {""" ) code.indent(1) @@ -112,7 +112,7 @@ code("};") if not enum.wrapper_is_struct and not enum.is_class: code.dedent(1) - code("} // namespace enums") + code("} // namespace ${wrapper_name}") code("} // namespace gem5") diff --git a/src/python/m5/params.py b/src/python/m5/params.py index 2ca6dfcc14..2559b553d2 100644 --- a/src/python/m5/params.py +++ b/src/python/m5/params.py @@ -1560,8 +1560,8 @@ class MetaEnum(MetaParamValue): if cls.is_class: cls.cxx_type = f"{name}" else: - cls.cxx_type = f"enums::{name}" - + scope = init_dict.get("wrapper_name", "enums") + cls.cxx_type = f"{scope}::{name}" super().__init__(name, bases, init_dict)