1 /* Copyright (C) 2021-2022 Free Software Foundation, Inc. 2 This file is part of the GNU C Library. 3 4 The GNU C Library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Lesser General Public 6 License as published by the Free Software Foundation; either 7 version 2.1 of the License, or (at your option) any later version. 8 9 The GNU C Library is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 Lesser General Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public 15 License along with the GNU C Library; if not, see 16 <https://www.gnu.org/licenses/>. */ 17 18 #include <wchar.h> 19 20 extern int fclose (FILE*); 21 22 #if defined __GNUC__ && __GNUC__ >= 11 23 /* Verify that calling fclose on the result of open_wmemstream doesn't 24 trigger GCC -Wmismatched-dealloc with fclose forward-declared and 25 without <stdio.h> included in the same translation unit. */ 26 #pragma GCC diagnostic push 27 #pragma GCC diagnostic error "-Wmismatched-dealloc" 28 #endif 29 30 static int do_test(void)31do_test (void) 32 { 33 { 34 wchar_t *buf; 35 size_t size; 36 FILE *f = open_wmemstream (&buf, &size); 37 fclose (f); 38 } 39 40 { 41 FILE* (*pf)(wchar_t**, size_t*) = open_wmemstream; 42 wchar_t *buf; 43 size_t size; 44 FILE *f = pf (&buf, &size); 45 fclose (f); 46 } 47 48 return 0; 49 } 50 51 #if defined __GNUC__ && __GNUC__ >= 11 52 /* Restore -Wmismatched-dealloc setting. */ 53 # pragma GCC diagnostic pop 54 #endif 55 56 #define TEST_FUNCTION do_test () 57 #include "../test-skeleton.c" 58