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
*
* \retval str for convenience
*/
-static force_inline 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;
-}
+char *attribute_pure ast_str_to_lower(char *str);
/*!
* \brief Convert a string to all upper-case
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;
+}
+