diff --git a/src/stubser/cfile.c b/src/stubser/cfile.c index b04ecb3..f18ea34 100644 --- a/src/stubser/cfile.c +++ b/src/stubser/cfile.c @@ -97,3 +97,35 @@ void cfile_print(cfile_t *aCfile) cfunction_printList(&aCfile->functions); } + +/*! + * @brief Checks if at least one function uses a variable parameter list + * @retval -2 Null pointer parameter + * @retval -1 Has no va_list + * @retval 0 At least on va_list + */ +int8_t cfile_hasVaList(cfile_t *aFile) +{ + cfunction_t *function = aFile->functions.head; + cfunction_parameterList_t *paraList = NULL; + cfunction_parameter_t *parameter; + if (NULL == aFile) + { + return -2; + } + while(function) + { + paraList = &function->parameter; + parameter = paraList->head; + while(parameter) + { + if (CPARAMETER_TYPE_VARIABLE == parameter->type) + { + return 0; + } + parameter = parameter->next; + } + function = function->next; + } + return -1; +} diff --git a/src/stubser/cfile_if.h b/src/stubser/cfile_if.h index 6a34fe1..3b8a90c 100644 --- a/src/stubser/cfile_if.h +++ b/src/stubser/cfile_if.h @@ -70,5 +70,6 @@ cfile_variable_t* cfile_newVariable(cfile_variableList_t *aList); int8_t cfile_freeVariables(cfile_variableList_t *aVariable); void cfile_free(cfile_t *aCfile); void cfile_print(cfile_t *aCfile); +int8_t cfile_hasVaList(cfile_t *aFile); #endif /* STUBSER_CFILE_IF_H_ */