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.
This commit is contained in:
Andreas Sandberg 2015-02-11 10:23:24 -05:00
parent c9b8616c51
commit 9e6f803254
2 changed files with 8 additions and 1 deletions

View file

@ -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

View file

@ -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__)