macros: Add G_GNUC_FALLTHROUGH

Expands to the GNU C fallthrough statement attribute if the compiler is gcc.
This allows declaring case statement to explicitly fall through in switch
statements. To enable this feature, use -Wimplicit-fallthrough during
compilation.
This commit is contained in:
Benjamin Otte 2018-09-02 20:46:19 +02:00
parent b0e239c26e
commit 95477a4e35
3 changed files with 23 additions and 0 deletions

View File

@ -438,6 +438,7 @@ G_GNUC_DEPRECATED_FOR
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
G_GNUC_END_IGNORE_DEPRECATIONS
G_GNUC_NORETURN
G_GNUC_FALLTHROUGH
G_GNUC_UNUSED
G_GNUC_PRINTF
G_GNUC_SCANF

View File

@ -2280,6 +2280,22 @@
* See the GNU C documentation for more details.
*/
/**
* G_GNUC_FALLTHROUGH:
*
* Expands to the GNU C fallthrough statement attribute if the compiler is gcc.
* This allows declaring case statement to explicitly fall through in switch
* statements. To enable this feature, use -Wimplicit-fallthrough during
* compilation.
*
* Put the attribute right before the case statement you want to fall through
* to.
*
* See the GNU C documentation for more details.
*
* Since: 2.60
*/
/**
* G_GNUC_UNUSED:
*

View File

@ -191,6 +191,12 @@
#define G_GNUC_NO_INSTRUMENT
#endif /* !__GNUC__ */
#if __GNUC__ > 6
#define G_GNUC_FALLTHROUGH __attribute__((fallthrough))
#else
#define G_GNUC_FALLTHROUGH
#endif /* __GNUC__ */
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
#define G_GNUC_DEPRECATED __attribute__((__deprecated__))
#else