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 : }