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