diff --git a/include/asterisk/app.h b/include/asterisk/app.h index 6323287fccc7db32f896aaa4c966d3b439d238c2..7690364f6d80c78603e6c74e1ba6b40534a487ac 100644 --- a/include/asterisk/app.h +++ b/include/asterisk/app.h @@ -1215,7 +1215,7 @@ int ast_app_group_list_unlock(void); ast_app_separate_args() will perform that function before parsing the arguments. */ -#define AST_DECLARE_APP_ARGS(name, arglist) AST_DEFINE_APP_ARGS_TYPE(, arglist) name = { 0, } +#define AST_DECLARE_APP_ARGS(name, arglist) AST_DEFINE_APP_ARGS_TYPE(argtype_##name, arglist) name = { 0, } /*! \brief Define a structure type to hold an application's arguments. @@ -1233,10 +1233,13 @@ int ast_app_group_list_unlock(void); */ #define AST_DEFINE_APP_ARGS_TYPE(type, arglist) \ + struct __subtype_##type { arglist }; \ struct type { \ unsigned int argc; \ - char *argv[0]; \ - arglist; \ + union { \ + char *argv[sizeof(struct __subtype_##type) / sizeof(char*)]; \ + struct { arglist }; \ + }; \ } /*!