Line data Source code
1 : /* Test the "ignore-value" module.
2 :
3 : Copyright (C) 2011-2020 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 1 : doChar (void)
37 : {
38 1 : return 0;
39 : }
40 :
41 : static int
42 1 : doInt (void)
43 : {
44 1 : return 0;
45 : }
46 :
47 : static off_t
48 1 : doOff (void)
49 : {
50 1 : return 0;
51 : }
52 :
53 : static void *
54 1 : doPtr (void)
55 : {
56 1 : return NULL;
57 : }
58 :
59 : static struct s
60 1 : doStruct (void)
61 : {
62 : static struct s s1;
63 1 : return s1;
64 : }
65 :
66 : int
67 1 : 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 1 : ignore_value (doChar ());
73 1 : ignore_value (doInt ());
74 1 : ignore_value (doOff ());
75 1 : ignore_value (doPtr ());
76 1 : ignore_value (doStruct ());
77 1 : return 0;
78 : }
|