(root)/
glibc-2.38/
libio/
tst-wmemstream5.c
       1  /* Copyright (C) 2021-2023 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
      31  do_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"