Blame gnulib-tests/test-ignore-value.c

Packit Service 2723c6
/* Test the "ignore-value" module.
Packit Service 2723c6
Packit Service 2723c6
   Copyright (C) 2011-2018 Free Software Foundation, Inc.
Packit Service 2723c6
Packit Service 2723c6
   This program is free software: you can redistribute it and/or modify
Packit Service 2723c6
   it under the terms of the GNU General Public License as published by
Packit Service 2723c6
   the Free Software Foundation; either version 3 of the License, or
Packit Service 2723c6
   (at your option) any later version.
Packit Service 2723c6
Packit Service 2723c6
   This program is distributed in the hope that it will be useful,
Packit Service 2723c6
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 2723c6
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 2723c6
   GNU General Public License for more details.
Packit Service 2723c6
Packit Service 2723c6
   You should have received a copy of the GNU General Public License
Packit Service 2723c6
   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
Packit Service 2723c6
Packit Service 2723c6
/* Written by Eric Blake.  */
Packit Service 2723c6
Packit Service 2723c6
#include <config.h>
Packit Service 2723c6
Packit Service 2723c6
#include "ignore-value.h"
Packit Service 2723c6
Packit Service 2723c6
#include <stdio.h>
Packit Service 2723c6
Packit Service 2723c6
#ifndef _GL_ATTRIBUTE_RETURN_CHECK
Packit Service 2723c6
# if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
Packit Service 2723c6
#  define _GL_ATTRIBUTE_RETURN_CHECK
Packit Service 2723c6
# else
Packit Service 2723c6
#  define _GL_ATTRIBUTE_RETURN_CHECK __attribute__((__warn_unused_result__))
Packit Service 2723c6
# endif
Packit Service 2723c6
#endif
Packit Service 2723c6
Packit Service 2723c6
struct s { int i; };
Packit Service 2723c6
static char doChar (void) _GL_ATTRIBUTE_RETURN_CHECK;
Packit Service 2723c6
static int doInt (void) _GL_ATTRIBUTE_RETURN_CHECK;
Packit Service 2723c6
static off_t doOff (void) _GL_ATTRIBUTE_RETURN_CHECK;
Packit Service 2723c6
static void *doPtr (void) _GL_ATTRIBUTE_RETURN_CHECK;
Packit Service 2723c6
static struct s doStruct (void) _GL_ATTRIBUTE_RETURN_CHECK;
Packit Service 2723c6
Packit Service 2723c6
static char
Packit Service 2723c6
doChar (void)
Packit Service 2723c6
{
Packit Service 2723c6
  return 0;
Packit Service 2723c6
}
Packit Service 2723c6
Packit Service 2723c6
static int
Packit Service 2723c6
doInt (void)
Packit Service 2723c6
{
Packit Service 2723c6
  return 0;
Packit Service 2723c6
}
Packit Service 2723c6
Packit Service 2723c6
static off_t
Packit Service 2723c6
doOff (void)
Packit Service 2723c6
{
Packit Service 2723c6
  return 0;
Packit Service 2723c6
}
Packit Service 2723c6
Packit Service 2723c6
static void *
Packit Service 2723c6
doPtr (void)
Packit Service 2723c6
{
Packit Service 2723c6
  return NULL;
Packit Service 2723c6
}
Packit Service 2723c6
Packit Service 2723c6
static struct s
Packit Service 2723c6
doStruct (void)
Packit Service 2723c6
{
Packit Service 2723c6
  static struct s s1;
Packit Service 2723c6
  return s1;
Packit Service 2723c6
}
Packit Service 2723c6
Packit Service 2723c6
int
Packit Service 2723c6
main (void)
Packit Service 2723c6
{
Packit Service 2723c6
  /* If this test can compile with -Werror and the same warnings as
Packit Service 2723c6
     the rest of the project, then we are properly silencing warnings
Packit Service 2723c6
     about ignored return values.  */
Packit Service 2723c6
  ignore_value (doChar ());
Packit Service 2723c6
  ignore_value (doInt ());
Packit Service 2723c6
  ignore_value (doOff ());
Packit Service 2723c6
  ignore_value (doPtr ());
Packit Service 2723c6
  ignore_value (doStruct ());
Packit Service 2723c6
  return 0;
Packit Service 2723c6
}