summaryrefslogtreecommitdiff
path: root/include/asterisk/utils.h
diff options
context:
space:
mode:
authorDavid M. Lee <dlee@digium.com>2012-09-18 15:50:35 +0000
committerDavid M. Lee <dlee@digium.com>2012-09-18 15:50:35 +0000
commitf8d815e19f925c7122f4bf4ead01b0111336866a (patch)
treeb289596496e0461f1a5d44ec85f2ae305e66b4a5 /include/asterisk/utils.h
parentb0f01e5a6f871f42ded30d77984b32aeb05817a6 (diff)
Add -fnested-functions compile flag, if needed.
In order to use nested functions on some versions of GCC (e.g. GCC on OS X), the -fnested-functions flag must be passed to the compiler. This patch adds detection logic to ./configure to add the flag if necessary. It also adds a comment to utils.h as to why the nested function needs a prototype. (closes issue ASTERISK-20399) Reported by: David M. Lee Review: https://reviewboard.asterisk.org/r/2102/ ........ Merged revisions 373119 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@373120 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk/utils.h')
-rw-r--r--include/asterisk/utils.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h
index 014a62ec5..e28e33267 100644
--- a/include/asterisk/utils.h
+++ b/include/asterisk/utils.h
@@ -919,8 +919,9 @@ char *ast_utils_which(const char *binary, char *fullpath, size_t fullpath_size);
* \endcode
*/
#define RAII_VAR(vartype, varname, initval, dtor) \
+ /* Prototype needed due to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36774 */ \
auto void _dtor_ ## varname (vartype * v); \
- auto void _dtor_ ## varname (vartype * v) { dtor(*v); } \
+ void _dtor_ ## varname (vartype * v) { dtor(*v); } \
vartype varname __attribute__((cleanup(_dtor_ ## varname))) = (initval)
#endif /* _ASTERISK_UTILS_H */