Home | History | Annotate | Download | only in Analysis
      1 // RUN: %clang_cc1 -triple i686-pc-linux-gnu -analyze -analyzer-checker=security.insecureAPI,security.FloatLoopCounter %s -verify
      2 
      3 // This file complements 'security-syntax-checks.m', but tests that we omit
      4 // specific checks on platforms where they don't make sense.
      5 
      6 // Omit the 'rand' check since 'arc4random' is not available on Linux.
      7 int      rand(void);
      8 double   drand48(void);
      9 double   erand48(unsigned short[3]);
     10 long     jrand48(unsigned short[3]);
     11 void     lcong48(unsigned short[7]);
     12 long     lrand48(void);
     13 long     mrand48(void);
     14 long     nrand48(unsigned short[3]);
     15 long     random(void);
     16 int      rand_r(unsigned *);
     17 
     18 void test_rand()
     19 {
     20   unsigned short a[7];
     21   unsigned b;
     22 
     23   rand();	// no-warning
     24   drand48();	// no-warning
     25   erand48(a);	// no-warning
     26   jrand48(a);	// no-warning
     27   lcong48(a);	// no-warning
     28   lrand48();	// no-warning
     29   mrand48();	// no-warning
     30   nrand48(a);	// no-warning
     31   rand_r(&b);	// no-warning
     32   random();	// no-warning
     33 }
     34