shithub: rgbds

Download patch

ref: 1b4187e51f76dea56924b610c98840f0828dd9e0
parent: cbaaec98ca14ecb6bc8521b9fb7a9c319cb20f4e
author: Antonio Niño Díaz <antonio_nd@outlook.com>
date: Mon Apr 2 18:25:09 EDT 2018

Cleanup GCC compiler attributes

Added define 'unused_' for '__attribute__((unused))'. The oldest version
of GCC with online docs (GCC 2.95.3, released in March 16, 2001 [1])
already has support for this attribute, so it doesn't make sense to
check the version.

Renamed 'noreturn' to 'noreturn_' for consistency.

[1] https://gcc.gnu.org/onlinedocs/

Signed-off-by: Antonio Niño Díaz <antonio_nd@outlook.com>

--- a/include/asm/main.h
+++ b/include/asm/main.h
@@ -46,7 +46,7 @@
  * It is also used when the assembler goes into an invalid state (for example,
  * when it fails to allocate memory).
  */
-noreturn void fatalerror(const char *fmt, ...);
+noreturn_ void fatalerror(const char *fmt, ...);
 
 /*
  * Used for errors that make it impossible to assemble correctly, but don't
--- a/include/extern/err.h
+++ b/include/extern/err.h
@@ -34,10 +34,10 @@
 void warnx(const char *fmt, ...);
 void vwarnx(const char *fmt, va_list ap);
 
-noreturn void err(int status, const char *fmt, ...);
-noreturn void verr(int status, const char *fmt, va_list ap);
-noreturn void errx(int status, const char *fmt, ...);
-noreturn void verrx(int status, const char *fmt, va_list ap);
+noreturn_ void err(int status, const char *fmt, ...);
+noreturn_ void verr(int status, const char *fmt, va_list ap);
+noreturn_ void errx(int status, const char *fmt, ...);
+noreturn_ void verrx(int status, const char *fmt, va_list ap);
 
 #endif /* ERR_IN_LIBC */
 
--- a/include/helpers.h
+++ b/include/helpers.h
@@ -11,10 +11,12 @@
 
 #ifdef __GNUC__
 	/* GCC or compatible */
-	#define noreturn __attribute__ ((noreturn))
+	#define noreturn_	__attribute__ ((noreturn))
+	#define unused_		__attribute__ ((unused))
 #else
 	/* Unsupported, but no need to throw a fit */
-	#define noreturn
+	#define noreturn_
+	#define unused_
 #endif
 
 #endif /* HELPERS_H */
--- a/include/link/script.h
+++ b/include/link/script.h
@@ -13,7 +13,7 @@
 
 #include "helpers.h"
 
-noreturn void script_fatalerror(const char *fmt, ...);
+noreturn_ void script_fatalerror(const char *fmt, ...);
 
 void script_Parse(const char *path);
 
--- a/src/asm/globlex.c
+++ b/src/asm/globlex.c
@@ -20,6 +20,8 @@
 #include "asm/symbol.h"
 #include "asm/symbol.h"
 
+#include "helpers.h"
+
 #include "asmy.h"
 
 bool oDontExpandStrings;
@@ -219,7 +221,7 @@
 	return 0;
 }
 
-uint32_t PutUniqueArg(__attribute ((unused)) char *src, uint32_t size)
+uint32_t PutUniqueArg(unused_ char *src, uint32_t size)
 {
 	char *s;
 
--- a/src/asm/symbol.c
+++ b/src/asm/symbol.c
@@ -25,6 +25,7 @@
 
 #include "extern/err.h"
 
+#include "helpers.h"
 #include "version.h"
 
 struct sSymbol *tHashedSymbols[HASHSIZE];
@@ -62,7 +63,7 @@
 	memmove(string, new_beginning, strlen(new_beginning) + 1);
 }
 
-int32_t Callback_NARG(__attribute__ ((unused)) struct sSymbol *sym)
+int32_t Callback_NARG(unused_ struct sSymbol *sym)
 {
 	uint32_t i = 0;
 
@@ -72,7 +73,7 @@
 	return i;
 }
 
-int32_t Callback__LINE__(struct sSymbol __attribute__((unused)) *sym)
+int32_t Callback__LINE__(unused_ struct sSymbol *sym)
 {
 	return nLineNo;
 }
--- a/src/extern/err.c
+++ b/src/extern/err.c
@@ -33,7 +33,7 @@
 	putc('\n', stderr);
 }
 
-noreturn void rgbds_verr(int status, const char *fmt, va_list ap)
+noreturn_ void rgbds_verr(int status, const char *fmt, va_list ap)
 {
 	fprintf(stderr, "error");
 	if (fmt) {
@@ -44,7 +44,7 @@
 	exit(status);
 }
 
-noreturn void rgbds_verrx(int status, const char *fmt, va_list ap)
+noreturn_ void rgbds_verrx(int status, const char *fmt, va_list ap)
 {
 	fprintf(stderr, "error");
 	if (fmt) {
@@ -73,7 +73,7 @@
 	va_end(ap);
 }
 
-noreturn void rgbds_err(int status, const char *fmt, ...)
+noreturn_ void rgbds_err(int status, const char *fmt, ...)
 {
 	va_list ap;
 
@@ -82,7 +82,7 @@
 	va_end(ap);
 }
 
-noreturn void rgbds_errx(int status, const char *fmt, ...)
+noreturn_ void rgbds_errx(int status, const char *fmt, ...)
 {
 	va_list ap;
 
--- a/src/link/lexer.l
+++ b/src/link/lexer.l
@@ -179,7 +179,7 @@
 	fprintf(stderr, "%s(%d)", linkerscript_path, include_line[i]);
 }
 
-noreturn void script_fatalerror(const char *fmt, ...)
+noreturn_ void script_fatalerror(const char *fmt, ...)
 {
 	va_list args;
 	va_start(args, fmt);