diff options
author | Curtis Dunham <Curtis.Dunham@arm.com> | 2015-09-02 15:19:43 -0500 |
---|---|---|
committer | Curtis Dunham <Curtis.Dunham@arm.com> | 2015-09-02 15:19:43 -0500 |
commit | 1ad5b772291220d44b355d8d939d625db7dffc1a (patch) | |
tree | bb19b0d83038f0b8126d01a29670e7d65c66709d | |
parent | fe47f0a72fda6b101c10810acfb60569fe5b05cd (diff) | |
download | gem5-1ad5b772291220d44b355d8d939d625db7dffc1a.tar.xz |
sim: make warning for absent optional parameters optional
This is in support of tag-based checkpoint versioning. It should be
possible to examine an optional parameter in a checkpoint during
unserialization and not have it throw a warning.
-rw-r--r-- | src/sim/serialize.cc | 8 | ||||
-rw-r--r-- | src/sim/serialize.hh | 8 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/sim/serialize.cc b/src/sim/serialize.cc index 3127d9a04..0ecf45b6d 100644 --- a/src/sim/serialize.cc +++ b/src/sim/serialize.cc @@ -223,12 +223,13 @@ paramIn(CheckpointIn &cp, const string &name, T ¶m) template <class T> bool -optParamIn(CheckpointIn &cp, const string &name, T ¶m) +optParamIn(CheckpointIn &cp, const string &name, T ¶m, bool warn) { const string §ion(Serializable::currentSection()); string str; if (!cp.find(section, name, str) || !parseParam(str, param)) { - warn("optional parameter %s:%s not present\n", section, name); + if (warn) + warn("optional parameter %s:%s not present\n", section, name); return false; } else { return true; @@ -384,7 +385,8 @@ objParamIn(CheckpointIn &cp, const string &name, SimObject * ¶m) template void \ paramIn(CheckpointIn &cp, const string &name, type & param); \ template bool \ - optParamIn(CheckpointIn &cp, const string &name, type & param); \ + optParamIn(CheckpointIn &cp, const string &name, type & param, \ + bool warn); \ template void \ arrayParamOut(CheckpointOut &os, const string &name, \ type const *param, unsigned size); \ diff --git a/src/sim/serialize.hh b/src/sim/serialize.hh index 561cd5508..e3b761f10 100644 --- a/src/sim/serialize.hh +++ b/src/sim/serialize.hh @@ -100,13 +100,15 @@ void paramIn(CheckpointIn &cp, const std::string &name, } template <class T> -bool optParamIn(CheckpointIn &cp, const std::string &name, T ¶m); +bool optParamIn(CheckpointIn &cp, const std::string &name, T ¶m, + bool warn = true); template <typename DataType, typename BitUnion> bool optParamIn(CheckpointIn &cp, const std::string &name, - BitfieldBackend::BitUnionOperators<DataType, BitUnion> &p) + BitfieldBackend::BitUnionOperators<DataType, BitUnion> &p, + bool warn = true) { - return optParamIn(cp, name, p.__data); + return optParamIn(cp, name, p.__data, warn); } template <class T> |