Skip to content
Snippets Groups Projects
Commit 1c8378bb authored by Chris-Savinovich's avatar Chris-Savinovich Committed by Chris Savinovich
Browse files

Test_cel: Fails when DONT_OPTIMIZE is off

A bug in GCC causes TEST_CEL to return failure under the following
conditions:
1. TEST_FRAMEWORK on
2. DONT_OPTIMIZE off
3. Fedora and Ubuntu
4. GCC 8.2.1
5. Test name: test_cel_dial_pickup
6. There must exist a certain combination of multithreading.
The bug affects arithmetic calculations when the optimization level
is bigger than O1 and the -fpartial-inline flag is on. Provided these
conditions, function ast_str_to_lower() fails to convert to lower case
due to said function being of type force_inline.  The solution is to
remove the "force_inline" type declaration from function ast_str_to_lower()

Change-Id: Ied32e0071f12ed9d5f3b4cdd878b2532a1c769d7
parent deffb8a6
No related branches found
No related tags found
No related merge requests found
...@@ -1212,19 +1212,7 @@ static force_inline int attribute_pure ast_str_case_hash(const char *str) ...@@ -1212,19 +1212,7 @@ static force_inline int attribute_pure ast_str_case_hash(const char *str)
* *
* \retval str for convenience * \retval str for convenience
*/ */
static force_inline char *attribute_pure ast_str_to_lower(char *str) char *attribute_pure ast_str_to_lower(char *str);
{
char *str_orig = str;
if (!str) {
return str;
}
for (; *str; ++str) {
*str = tolower(*str);
}
return str_orig;
}
/*! /*!
* \brief Convert a string to all upper-case * \brief Convert a string to all upper-case
......
...@@ -421,3 +421,18 @@ int ast_vector_string_split(struct ast_vector_string *dest, ...@@ -421,3 +421,18 @@ int ast_vector_string_split(struct ast_vector_string *dest,
return 0; return 0;
} }
char *attribute_pure ast_str_to_lower(char *str)
{
char *str_orig = str;
if (!str) {
return str;
}
for (; *str; ++str) {
*str = tolower(*str);
}
return str_orig;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment