diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2012-03-19 06:36:09 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2012-03-19 06:36:09 -0400 |
commit | 72538294fb1eb2e4dcd5d818c78bcdf78b0de491 (patch) | |
tree | ba95d431b41d54c7c25a3b5e84dfca9707a9feb2 /src/sim/serialize.hh | |
parent | adb862103138caf11191da50d34eb4c93295633a (diff) | |
download | gem5-72538294fb1eb2e4dcd5d818c78bcdf78b0de491.tar.xz |
gcc: Clean-up of non-C++0x compliant code, first steps
This patch cleans up a number of minor issues aiming to get closer to
compliance with the C++0x standard as interpreted by gcc and clang
(compile with std=c++0x and -pedantic-errors). In particular, the
patch cleans up enums where the last item was succeded by a comma,
namespaces closed by a curcly brace followed by a semi-colon, and the
use of the GNU-extension typeof (replaced by templated functions). It
does not address variable-length arrays, zero-size arrays, anonymous
structs, range expressions in switch statements, and the use of long
long. The generated CPU code also has a large number of issues that
remain to be fixed, mainly related to overflows in implicit constant
conversion (due to shifts).
Diffstat (limited to 'src/sim/serialize.hh')
-rw-r--r-- | src/sim/serialize.hh | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/sim/serialize.hh b/src/sim/serialize.hh index 12b787a5e..bc64e74f8 100644 --- a/src/sim/serialize.hh +++ b/src/sim/serialize.hh @@ -89,6 +89,17 @@ void objParamIn(Checkpoint *cp, const std::string §ion, const std::string &name, SimObject * ¶m); +template <typename T> +void fromInt(T &t, int i) +{ + t = (T)i; +} + +template <typename T> +void fromSimObject(T &t, SimObject *s) +{ + t = dynamic_cast<T>(s); +} // // These macros are streamlined to use in serialize/unserialize @@ -106,7 +117,7 @@ objParamIn(Checkpoint *cp, const std::string §ion, do { \ int tmp; \ paramIn(cp, section, #scalar, tmp); \ - scalar = (typeof(scalar))tmp; \ + fromInt(scalar, tmp); \ } while (0) #define SERIALIZE_ARRAY(member, size) \ @@ -121,7 +132,7 @@ objParamIn(Checkpoint *cp, const std::string §ion, do { \ SimObject *sptr; \ objParamIn(cp, section, #objptr, sptr); \ - objptr = dynamic_cast<typeof(objptr)>(sptr); \ + fromSimObject(objptr, sptr); \ } while (0) /* |