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
This commit is contained in:
Chris-Savinovich
2019-01-22 11:48:57 -06:00
parent e66d4d1d2a
commit 9b85882f04
2 changed files with 15 additions and 13 deletions

View File

@@ -391,3 +391,17 @@ char *ast_read_line_from_buffer(char **buffer)
return start;
}
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;
}