#include "analyzer-decls.h"

extern int rand (void);

void test_1 (void)
{
  int   ret = 0;
  while (ret != 42)
    ret = rand() % 1000;

  if (ret != 42)
    __analyzer_dump_path (); /* { dg-bogus "path" } */
}

static void empty_local_fn (void) {}
extern void external_fn (void);

void test_2 (void)
{
  void (*callback) () = empty_local_fn;
  int   ret = 0;
  while (ret != 42)
    ret = rand() % 1000;

  (*callback) ();

  if (ret != 42)
    __analyzer_dump_path (); /* { dg-bogus "path" } */
}

void test_3 (void)
{
  void (*callback) () = external_fn;
  int   ret = 0;
  while (ret != 42)
    ret = rand() % 1000;

  (*callback) ();

  if (ret != 42)
    __analyzer_dump_path (); /* { dg-bogus "path" } */
}