• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
test_rand()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