summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sandberg <Andreas.Sandberg@ARM.com>2015-02-11 10:23:24 -0500
committerAndreas Sandberg <Andreas.Sandberg@ARM.com>2015-02-11 10:23:24 -0500
commit9e6f803254cbf3f5f491775debdc6593c3329da8 (patch)
tree0fa1a55ac41adcb2c3c1a61dd0b5aa9c9d897ee3
parentc9b8616c515f7689baf0706a9c17d3f9d625ef04 (diff)
downloadgem5-9e6f803254cbf3f5f491775debdc6593c3329da8.tar.xz
base: Add compiler macros to add deprecation warnings
Gcc and clang both provide an attribute that can be used to flag a function as deprecated at compile time. This changeset adds a gem5 compiler macro for that compiler feature. The macro can be used to indicate that a legacy API within gem5 has been deprecated and provide a graceful migration to the new API.
-rwxr-xr-xsrc/SConscript7
-rw-r--r--src/base/compiler.hh2
2 files changed, 8 insertions, 1 deletions
diff --git a/src/SConscript b/src/SConscript
index cffc4d157..a479464a1 100755
--- a/src/SConscript
+++ b/src/SConscript
@@ -1061,7 +1061,12 @@ def makeEnv(env, label, objsfx, strip = False, **kwargs):
new_env.Append(LINKFLAGS='-fsanitize=undefined')
werror_env = new_env.Clone()
- werror_env.Append(CCFLAGS='-Werror')
+ # Treat warnings as errors but white list some warnings that we
+ # want to allow (e.g., deprecation warnings).
+ werror_env.Append(CCFLAGS=['-Werror',
+ '-Wno-error=deprecated-declarations',
+ '-Wno-error=deprecated',
+ ])
def make_obj(source, static, extra_deps = None):
'''This function adds the specified source to the correct
diff --git a/src/base/compiler.hh b/src/base/compiler.hh
index b1fea055c..1a104dd87 100644
--- a/src/base/compiler.hh
+++ b/src/base/compiler.hh
@@ -80,6 +80,8 @@
# define M5_VAR_USED __attribute__((unused))
# define M5_ATTR_PACKED __attribute__ ((__packed__))
# define M5_NO_INLINE __attribute__ ((__noinline__))
+# define M5_DEPRECATED __attribute__((deprecated))
+# define M5_DEPRECATED_MSG(MSG) __attribute__((deprecated(MSG)))
#endif
#if defined(__clang__)