#define _LOGI(fmt, arg...)
#endif
-#pragma GCC diagnostic ignored "-Wstringop-truncation"
-#pragma GCC diagnostic ignored "-Wstringop-overflow"
+#ifdef __GNUC__
+#if __GNUC__ >= 8
+#define PUSH_IGNORE_STRING_WARNINGS \
+ _Pragma("GCC diagnostic push") \
+ _Pragma("GCC diagnostic ignored \"-Wstringop-truncation\"") \
+ _Pragma("GCC diagnostic ignored \"-Wstringop-overflow\"")
+#define POP_IGNORE_STRING_WARNINGS _Pragma("GCC diagnostic pop")
+#else
+#define PUSH_IGNORE_STRING_WARNINGS
+#define POP_IGNORE_STRING_WARNINGS
+#endif
+#endif
#define TryReturn(condition, expr, returnValue, ...)\
if (!(condition)) { \
char *tmp_message_list = realloc(message_list, new_size);
TryReturn(tmp_message_list != NULL, ret_val = PRVMGR_ERR_OUT_OF_MEMORY; goto FINISH, PRVMGR_ERR_OUT_OF_MEMORY, "[PRVMGR_ERR_OUT_OF_MEMORY] message_list's realloc is failed.");
message_list = tmp_message_list;
+ PUSH_IGNORE_STRING_WARNINGS
strncat(message_list, "[MISMATCHED_PRIVILEGE_LEVEL]|", strlen("[MISMATCHED_PRIVILEGE_LEVEL]|"));
strncat(message_list, mismatched_message, strlen(mismatched_message));
+ POP_IGNORE_STRING_WARNINGS
}
size_t total_size = snprintf(0, 0, "%s%s", message_list, newline) + 1;
char* tmp_message_list = realloc(message_list, total_size);