-
-
Save Milek7/3dd1f0d2bd6fd8422579055d7dbbd62f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/stdafx.h b/src/stdafx.h | |
index 12d4fa81d..274ef7a8d 100644 | |
--- a/src/stdafx.h | |
+++ b/src/stdafx.h | |
@@ -136,6 +136,12 @@ | |
# endif | |
#endif /* __GNUC__ || __clang__ */ | |
+#if __GNUC__ > 11 || (__GNUC__ == 11 && __GNUC_MINOR__ >= 1) | |
+# define NOACCESS(args) __attribute__ ((access (none, args))) | |
+#else | |
+# define NOACCESS(args) | |
+#endif | |
+ | |
#if defined(__WATCOMC__) | |
# define NORETURN | |
# define CDECL | |
diff --git a/src/string_func.h b/src/string_func.h | |
index 13e14f2d3..7a53710c2 100644 | |
--- a/src/string_func.h | |
+++ b/src/string_func.h | |
@@ -30,25 +30,25 @@ | |
#include "core/bitmath_func.hpp" | |
#include "string_type.h" | |
-char *strecat(char *dst, const char *src, const char *last); | |
-char *strecpy(char *dst, const char *src, const char *last); | |
-char *stredup(const char *src, const char *last = nullptr); | |
+char *strecat(char *dst, const char *src, const char *last) NOACCESS(3); | |
+char *strecpy(char *dst, const char *src, const char *last) NOACCESS(3); | |
+char *stredup(const char *src, const char *last = nullptr) NOACCESS(2); | |
-int CDECL seprintf(char *str, const char *last, const char *format, ...) WARN_FORMAT(3, 4); | |
-int CDECL vseprintf(char *str, const char *last, const char *format, va_list ap) WARN_FORMAT(3, 0); | |
+int CDECL seprintf(char *str, const char *last, const char *format, ...) WARN_FORMAT(3, 4) NOACCESS(2); | |
+int CDECL vseprintf(char *str, const char *last, const char *format, va_list ap) WARN_FORMAT(3, 0) NOACCESS(2); | |
char *CDECL str_fmt(const char *str, ...) WARN_FORMAT(1, 2); | |
-void str_validate(char *str, const char *last, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK); | |
+void str_validate(char *str, const char *last, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK) NOACCESS(2); | |
std::string str_validate(const std::string &str, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK); | |
void ValidateString(const char *str); | |
-void str_fix_scc_encoded(char *str, const char *last); | |
+void str_fix_scc_encoded(char *str, const char *last) NOACCESS(2); | |
void str_strip_colours(char *str); | |
bool strtolower(char *str); | |
bool strtolower(std::string &str, std::string::size_type offs = 0); | |
-bool StrValid(const char *str, const char *last); | |
+bool StrValid(const char *str, const char *last) NOACCESS(2); | |
/** | |
* Check if a string buffer is empty. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment