Helper function returns if a c file uses variable parameter lists

This commit is contained in:
2021-12-22 08:57:53 +01:00
parent 404f69493d
commit f234d7613e
2 changed files with 33 additions and 0 deletions

View File

@@ -97,3 +97,35 @@ void cfile_print(cfile_t *aCfile)
cfunction_printList(&aCfile->functions); 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;
}

View File

@@ -70,5 +70,6 @@ cfile_variable_t* cfile_newVariable(cfile_variableList_t *aList);
int8_t cfile_freeVariables(cfile_variableList_t *aVariable); int8_t cfile_freeVariables(cfile_variableList_t *aVariable);
void cfile_free(cfile_t *aCfile); void cfile_free(cfile_t *aCfile);
void cfile_print(cfile_t *aCfile); void cfile_print(cfile_t *aCfile);
int8_t cfile_hasVaList(cfile_t *aFile);
#endif /* STUBSER_CFILE_IF_H_ */ #endif /* STUBSER_CFILE_IF_H_ */