gdatetime: Enable compile time check of g_date_time_format() format

By annotating it with G_GNUC_STRFTIME.

https://gitlab.gnome.org/GNOME/glib/issues/1575
This commit is contained in:
Christian Persch 2018-10-31 11:50:07 +01:00
parent d62a07831c
commit ae02adc3c3
3 changed files with 17 additions and 1 deletions

View File

@ -261,7 +261,7 @@ GDateTime * g_date_time_to_utc (GDateTi
GLIB_AVAILABLE_IN_ALL
gchar * g_date_time_format (GDateTime *datetime,
const gchar *format) G_GNUC_MALLOC;
const gchar *format) G_GNUC_MALLOC G_GNUC_STRFTIME (2);
G_END_DECLS

View File

@ -25,6 +25,14 @@
#include <glib/gstdio.h>
#include <locale.h>
/* The tests below exercise invalid formats and y2k-unsafe formats,
* so we need to silence the warnings here to pass.
*/
#ifdef __GNUC__
#pragma GCC diagnostic ignored "-Wformat"
#pragma GCC diagnostic ignored "-Wformat-y2k"
#endif
#define ASSERT_DATE(dt,y,m,d) G_STMT_START { \
g_assert_nonnull ((dt)); \
g_assert_cmpint ((y), ==, g_date_time_get_year ((dt))); \

View File

@ -18,6 +18,14 @@
#include <locale.h>
#include <glib/glib.h>
/* The whole purpose of this test is to pass the command line argument
* to g_date_time_format(), so the format argument cannot be compile-
* time checked. Disable the inevitable compiler warning.
*/
#ifdef __GNUC__
#pragma GCC diagnostic ignored "-Wformat-nonliteral"
#endif
int
main (int argc, char *argv[])
{