maint: update copyright
[gnulib.git] / tests / test-ignore-value.c
1 /* Test the "ignore-value" module.
2
3    Copyright (C) 2011-2014 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 <http://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 #ifndef _GL_ATTRIBUTE_RETURN_CHECK
27 # if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
28 #  define _GL_ATTRIBUTE_RETURN_CHECK
29 # else
30 #  define _GL_ATTRIBUTE_RETURN_CHECK __attribute__((__warn_unused_result__))
31 # endif
32 #endif
33
34 struct s { int i; };
35 static char doChar (void) _GL_ATTRIBUTE_RETURN_CHECK;
36 static int doInt (void) _GL_ATTRIBUTE_RETURN_CHECK;
37 static off_t doOff (void) _GL_ATTRIBUTE_RETURN_CHECK;
38 static void *doPtr (void) _GL_ATTRIBUTE_RETURN_CHECK;
39 static struct s doStruct (void) _GL_ATTRIBUTE_RETURN_CHECK;
40
41 static char
42 doChar (void)
43 {
44   return 0;
45 }
46
47 static int
48 doInt (void)
49 {
50   return 0;
51 }
52
53 static off_t
54 doOff (void)
55 {
56   return 0;
57 }
58
59 static void *
60 doPtr (void)
61 {
62   return NULL;
63 }
64
65 static struct s
66 doStruct (void)
67 {
68   static struct s s1;
69   return s1;
70 }
71
72 int
73 main (void)
74 {
75   /* If this test can compile with -Werror and the same warnings as
76      the rest of the project, then we are properly silencing warnings
77      about ignored return values.  */
78   ignore_value (doChar ());
79   ignore_value (doInt ());
80   ignore_value (doOff ());
81   ignore_value (doPtr ());
82   ignore_value (doStruct ());
83   return 0;
84 }