Commit 747bbdf7 authored by Blue Swirl's avatar Blue Swirl
Browse files

Suppress warnings about 'warn_unused_result' attribute directive



Signed-off-by: default avatarBlue Swirl <blauwirbel@gmail.com>
parent 78cfb07f
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -1666,6 +1666,23 @@ if compile_prog "" "" ; then
    need_offsetof=no
fi

##########################################
# check if the compiler understands attribute warn_unused_result
#
# This could be smarter, but gcc -Werror does not error out even when warning
# about attribute warn_unused_result

gcc_attribute_warn_unused_result=no
cat > $TMPC << EOF
#if defined(__GNUC__) && (__GNUC__ < 4) && defined(__GNUC_MINOR__) && (__GNUC__ < 4)
#error gcc 3.3 or older
#endif
int main(void) { return 0;}
EOF
if compile_prog "" ""; then
    gcc_attribute_warn_unused_result=yes
fi

##########################################
# check if we have fdatasync

@@ -1994,6 +2011,9 @@ fi
if test "$need_offsetof" = "yes" ; then
  echo "CONFIG_NEED_OFFSETOF=y" >> $config_host_mak
fi
if test "$gcc_attribute_warn_unused_result" = "yes" ; then
  echo "CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT=y" >> $config_host_mak
fi
if test "$fdatasync" = "yes" ; then
  echo "CONFIG_FDATASYNC=y" >> $config_host_mak
fi
+1 −1
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ struct CompatProperty {

DeviceState *qdev_create(BusState *bus, const char *name);
DeviceState *qdev_device_add(QemuOpts *opts);
int qdev_init(DeviceState *dev) __attribute__((warn_unused_result));
int qdev_init(DeviceState *dev) QEMU_WARN_UNUSED_RESULT;
void qdev_init_nofail(DeviceState *dev);
int qdev_unplug(DeviceState *dev);
void qdev_free(DeviceState *dev);
+5 −0
Original line number Diff line number Diff line
@@ -3,6 +3,11 @@
#define QEMU_COMMON_H

#define QEMU_NORETURN __attribute__ ((__noreturn__))
#ifdef CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT
#define QEMU_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
#else
#define QEMU_WARN_UNUSED_RESULT
#endif

/* Hack around the mess dyngen-exec.h causes: We need QEMU_NORETURN in files that
   cannot include the following headers without conflicts. This condition has