(root)/
gettext-0.22.4/
gettext-tools/
gnulib-tests/
test-ignore-value.c
       1  /* Test the "ignore-value" module.
       2  
       3     Copyright (C) 2011-2023 Free Software Foundation, Inc.
       4  
       5     This program is free software: you can redistribute it and/or modify
       6     it under the terms of the GNU General Public License as published by
       7     the Free Software Foundation, either version 3 of the License, or
       8     (at your option) any later version.
       9  
      10     This program is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13     GNU General Public License for more details.
      14  
      15     You should have received a copy of the GNU General Public License
      16     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      17  
      18  /* Written by Eric Blake.  */
      19  
      20  #include <config.h>
      21  
      22  #include "ignore-value.h"
      23  
      24  #include <stdio.h>
      25  
      26  #include "attribute.h"
      27  
      28  struct s { int i; };
      29  NODISCARD static char doChar (void);
      30  NODISCARD static int doInt (void);
      31  NODISCARD static off_t doOff (void);
      32  NODISCARD static void *doPtr (void);
      33  NODISCARD static struct s doStruct (void);
      34  
      35  static char
      36  doChar (void)
      37  {
      38    return 0;
      39  }
      40  
      41  static int
      42  doInt (void)
      43  {
      44    return 0;
      45  }
      46  
      47  static off_t
      48  doOff (void)
      49  {
      50    return 0;
      51  }
      52  
      53  static void *
      54  doPtr (void)
      55  {
      56    return NULL;
      57  }
      58  
      59  static struct s
      60  doStruct (void)
      61  {
      62    static struct s s1;
      63    return s1;
      64  }
      65  
      66  int
      67  main (void)
      68  {
      69    /* If this test can compile with -Werror and the same warnings as
      70       the rest of the project, then we are properly silencing warnings
      71       about ignored return values.  */
      72    ignore_value (doChar ());
      73    ignore_value (doInt ());
      74    ignore_value (doOff ());
      75    ignore_value (doPtr ());
      76    ignore_value (doStruct ());
      77    return 0;
      78  }