summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormilek7 <me@milek7.pl>2021-01-08 01:26:51 +0100
committerCharles Pigott <charlespigott@googlemail.com>2021-01-08 00:40:45 +0000
commit639cfa43d23aa142cabbf2f08ec20a2133b0503e (patch)
tree968674fda66e17259ca719408eeb3a79a7867f90
parent79d938b9570be94381cf61190d60bfc847fb8c4c (diff)
downloadopenttd-639cfa43d23aa142cabbf2f08ec20a2133b0503e.tar.xz
Codechange: Use access __attribute__ to silence warnings in GCC
-rw-r--r--src/stdafx.h6
-rw-r--r--src/string_func.h16
2 files changed, 14 insertions, 8 deletions
diff --git a/src/stdafx.h b/src/stdafx.h
index 12d4fa81d..9e2eb2aef 100644
--- a/src/stdafx.h
+++ b/src/stdafx.h
@@ -136,6 +136,12 @@
# endif
#endif /* __GNUC__ || __clang__ */
+#if defined(__GNUC__)
+# 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.