// RUN: %clang_analyze_cc1 -triple i686-pc-linux-gnu -analyzer-checker=security.insecureAPI,security.FloatLoopCounter %s -verify
// expected-no-diagnostics

// This file complements 'security-syntax-checks.m', but tests that we omit
// specific checks on platforms where they don't make sense.

// Omit the 'rand' check since 'arc4random' is not available on Linux.
int      rand(void);
double   drand48(void);
double   erand48(unsigned short[3]);
long     jrand48(unsigned short[3]);
void     lcong48(unsigned short[7]);
long     lrand48(void);
long     mrand48(void);
long     nrand48(unsigned short[3]);
long     random(void);
int      rand_r(unsigned *);

void test_rand()
{
  unsigned short a[7];
  unsigned b;
  
  rand();	// no-warning
  drand48();	// no-warning
  erand48(a);	// no-warning
  jrand48(a);	// no-warning
  lcong48(a);	// no-warning
  lrand48();	// no-warning
  mrand48();	// no-warning
  nrand48(a);	// no-warning
  rand_r(&b);	// no-warning
  random();	// no-warning
}
