(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
analyzer/
feasibility-pr107582-1.c
       1  /* { dg-require-effective-target pthread }  */
       2  
       3  #include <stdio.h>
       4  #include <stdlib.h>
       5  #include <pthread.h>
       6  #include <errno.h>
       7  #include <unistd.h>
       8  
       9  #include "analyzer-decls.h"
      10  
      11  int z;
      12  
      13  static void func(void * o)
      14  {
      15    (void) o;
      16  }
      17  
      18  int main(int    argc,
      19           int ** argv)
      20  {
      21    struct timespec now;
      22  
      23    int * x;
      24    int   ret = 0;
      25  
      26    pthread_cleanup_push(func, NULL);
      27  
      28    while (ret != ETIMEDOUT)
      29      ret = rand() % 1000;
      30  
      31    if (ret != ETIMEDOUT)
      32      x = &z;
      33  
      34    pthread_cleanup_pop(1);
      35  
      36    if (ret == ETIMEDOUT)
      37      return 0;
      38  
      39    __analyzer_dump_path (); /* { dg-bogus "path" } */
      40    printf("x = %d\n", *x); /* { dg-bogus "use of uninitialized value 'x'" } */
      41  
      42    return 0;
      43  }