Merge branch 'fix-strict-warning-related' into 'master'

Fix mingw gcc 10.3 compiler warnings

Closes #383

See merge request dbus/dbus!275
This commit is contained in:
Ralf Habacker 2022-05-01 16:41:06 +00:00
commit 31307769ca
9 changed files with 120 additions and 29 deletions

View file

@ -135,6 +135,7 @@ set(DBUS_SHARED_HEADERS
dbus-hash.h
dbus-internals.h
dbus-list.h
dbus-macros-internal.h
dbus-marshal-basic.h
dbus-mempool.h
dbus-string.h

View file

@ -227,6 +227,7 @@ DBUS_SHARED_SOURCES= \
dbus-internals.h \
dbus-list.c \
dbus-list.h \
dbus-macros-internal.h \
dbus-marshal-basic.c \
dbus-marshal-basic.h \
dbus-memory.c \

View file

@ -31,16 +31,11 @@
#include <dbus/dbus-types.h>
#include <dbus/dbus-errors.h>
#include <dbus/dbus-sysdeps.h>
#include <dbus/dbus-macros-internal.h>
#include <dbus/dbus-threads-internal.h>
DBUS_BEGIN_DECLS
#ifdef DBUS_ENABLE_EMBEDDED_TESTS
#define DBUS_EMBEDDED_TESTS_EXPORT DBUS_PRIVATE_EXPORT
#else
#define DBUS_EMBEDDED_TESTS_EXPORT /* nothing */
#endif
DBUS_PRIVATE_EXPORT
void _dbus_warn (const char *format,
...) _DBUS_GNUC_PRINTF (1, 2);

View file

@ -0,0 +1,53 @@
/*
* Copyright © 2010-2015 Ralf Habacker
* Copyright © 2015-2019 Collabora Ltd.
* SPDX-License-Identifier: AFL-2.1 or GPL-2.0-or-later
*
* Licensed under the Academic Free License version 2.1
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#ifdef DBUS_INSIDE_DBUS_H
#error "You can't include dbus-macros-internal.h in the public header dbus.h"
#endif
#ifndef DBUS_MACROS_INTERNAL_H
#define DBUS_MACROS_INTERNAL_H
#include <dbus/dbus-macros.h>
#ifdef DBUS_ENABLE_EMBEDDED_TESTS
# define DBUS_EMBEDDED_TESTS_EXPORT DBUS_PRIVATE_EXPORT
#else
# define DBUS_EMBEDDED_TESTS_EXPORT /* nothing */
#endif
#if defined(DBUS_PRIVATE_EXPORT)
/* value forced by compiler command line, don't redefine */
#elif defined(_WIN32)
# if defined(DBUS_STATIC_BUILD)
# define DBUS_PRIVATE_EXPORT /* no decoration */
# elif defined(dbus_1_EXPORTS)
# define DBUS_PRIVATE_EXPORT __declspec(dllexport)
# else
# define DBUS_PRIVATE_EXPORT __declspec(dllimport)
# endif
#elif defined(__GNUC__) && __GNUC__ >= 4
# define DBUS_PRIVATE_EXPORT __attribute__ ((__visibility__ ("default")))
#else
# define DBUS_PRIVATE_EXPORT /* no decoration */
#endif
#endif

View file

@ -210,22 +210,6 @@
#define DBUS_EXPORT
#endif
#if defined(DBUS_PRIVATE_EXPORT)
/* value forced by compiler command line, don't redefine */
#elif defined(_WIN32)
# if defined(DBUS_STATIC_BUILD)
# define DBUS_PRIVATE_EXPORT /* no decoration */
# elif defined(dbus_1_EXPORTS)
# define DBUS_PRIVATE_EXPORT __declspec(dllexport)
# else
# define DBUS_PRIVATE_EXPORT __declspec(dllimport)
# endif
#elif defined(__GNUC__) && __GNUC__ >= 4
# define DBUS_PRIVATE_EXPORT __attribute__ ((__visibility__ ("default")))
#else
# define DBUS_PRIVATE_EXPORT /* no decoration */
#endif
/* Implementation for dbus_clear_message() etc. This is not API,
* do not use it directly.
*

View file

@ -2345,6 +2345,41 @@ _dbus_string_append_byte_as_hex (DBusString *str,
return TRUE;
}
/* Currently only used when embedded tests are enabled */
#ifdef DBUS_ENABLE_EMBEDDED_TESTS
/**
* Appends \p size bytes from the buffer \p buf as hex digits to the string \p str
*
* If \p size is nonzero, then \p buf must be non-NULL.
*
* @param str the string
* @param buf the buffer to add bytes from
* @param size the number of bytes to add
* @returns #FALSE if no memory
*/
dbus_bool_t
_dbus_string_append_buffer_as_hex (DBusString *str,
void *buf,
int size)
{
unsigned char *p;
int i;
_dbus_assert (size >= 0);
_dbus_assert (size == 0 || buf != NULL);
p = (unsigned char *) buf;
for (i = 0; i < size; i++)
{
if (!_dbus_string_append_byte_as_hex (str, p[i]))
return FALSE;
}
return TRUE;
}
#endif
/**
* Encodes a string in hex, the way MD5 and SHA-1 are usually
* encoded. (Each byte is two hex digits.)

View file

@ -31,6 +31,8 @@
#include <stdarg.h>
#include <dbus/dbus-macros-internal.h>
DBUS_BEGIN_DECLS
/**
@ -358,6 +360,10 @@ DBUS_PRIVATE_EXPORT
void _dbus_string_chop_white (DBusString *str);
dbus_bool_t _dbus_string_append_byte_as_hex (DBusString *str,
unsigned char byte);
DBUS_EMBEDDED_TESTS_EXPORT
dbus_bool_t _dbus_string_append_buffer_as_hex (DBusString *str,
void *buf,
int size);
DBUS_PRIVATE_EXPORT
dbus_bool_t _dbus_string_hex_encode (const DBusString *source,
int start,

View file

@ -27,6 +27,7 @@
#ifndef DBUS_UUIDGEN_H
#define DBUS_UUIDGEN_H
#include <dbus/dbus-macros-internal.h>
#include <dbus/dbus-types.h>
#include <dbus/dbus-errors.h>

View file

@ -2625,13 +2625,28 @@ double_read_value (TestTypeNode *node,
expected = double_from_seed (seed);
if (!_DBUS_DOUBLES_BITWISE_EQUAL (v, expected))
_dbus_test_fatal ("Expected double %g got %g\n"
" bits = 0x%" DBUS_INT64_MODIFIER "x vs.\n"
" bits = 0x%" DBUS_INT64_MODIFIER "x",
expected, v,
*(dbus_uint64_t*)(char*)&expected,
*(dbus_uint64_t*)(char*)&v);
{
DBusString es = _DBUS_STRING_INIT_INVALID;
DBusString vs = _DBUS_STRING_INIT_INVALID;
if (!_dbus_string_init (&es))
goto out;
if (!_dbus_string_init (&vs))
goto out;
if (!_dbus_string_append_buffer_as_hex (&es, &expected, sizeof(double)))
goto out;
if (!_dbus_string_append_buffer_as_hex (&vs, &v, sizeof(double)))
goto out;
_dbus_test_fatal ("Expected double %g got %g\n"
" bits = 0x%s vs.\n"
" bits = 0x%s",
expected, v,
_dbus_string_get_const_data (&es),
_dbus_string_get_const_data (&vs));
out:
_dbus_string_free (&es);
_dbus_string_free (&vs);
return FALSE;
}
return TRUE;
}