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 Livoid 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