Bump to m4 1.4.19
[platform/upstream/m4.git] / tests / test-ignore-value.c
1 /* Test the "ignore-value" module.
2
3    Copyright (C) 2011-2021 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 static char doChar (void) NODISCARD;
30 static int doInt (void) NODISCARD;
31 static off_t doOff (void) NODISCARD;
32 static void *doPtr (void) NODISCARD;
33 static struct s doStruct (void) NODISCARD;
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 }