| // RUN: %clang_cc1 -triple i686-pc-linux-gnu -analyze -analyzer-checker=experimental.security.SecuritySyntactic %s -verify |
| |
| // 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 |
| } |