(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
analyzer/
errno-___errno.c
       1  #include "analyzer-decls.h"
       2  
       3  /* According to PR 107807 comment #2, Solaris implements "errno"
       4     like this:  */
       5  
       6  extern int *___errno(void) __attribute__((__const__));
       7  #define errno (*(___errno()))
       8  
       9  
      10  extern void external_fn (void);
      11  
      12  int test_reading_errno (void)
      13  {
      14    return errno;
      15  }
      16  
      17  void test_setting_errno (int val)
      18  {
      19    errno = val;
      20  }
      21  
      22  void test_storing_to_errno (int val)
      23  {
      24    __analyzer_eval (errno == val); /* { dg-warning "UNKNOWN" } */
      25    errno = val;
      26    __analyzer_eval (errno == val); /* { dg-warning "TRUE" } */
      27    external_fn ();
      28    __analyzer_eval (errno == val); /* { dg-warning "UNKNOWN" } */
      29  }