security-syntax-checks-no-emit.c revision 76a54246dbbe6cc3c74186e64f8ea0deb4a64ea2
176a54246dbbe6cc3c74186e64f8ea0deb4a64ea2Ted Kremenek// RUN: %clang_cc1 -triple i686-pc-linux-gnu -analyze -analyzer-checker=security.insecureAPI,security.FloatLoopCounter %s -verify 288c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek 388c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek// This file complements 'security-syntax-checks.m', but tests that we omit 488c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek// specific checks on platforms where they don't make sense. 588c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek 688c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek// Omit the 'rand' check since 'arc4random' is not available on Linux. 788c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenekint rand(void); 888c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenekdouble drand48(void); 988c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenekdouble erand48(unsigned short[3]); 1088c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremeneklong jrand48(unsigned short[3]); 1188c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenekvoid lcong48(unsigned short[7]); 1288c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremeneklong lrand48(void); 1388c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremeneklong mrand48(void); 1488c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremeneklong nrand48(unsigned short[3]); 1588c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremeneklong random(void); 1688c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenekint rand_r(unsigned *); 1788c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek 1888c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenekvoid test_rand() 1988c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek{ 2088c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek unsigned short a[7]; 2188c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek unsigned b; 2288c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek 2388c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek rand(); // no-warning 2488c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek drand48(); // no-warning 2588c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek erand48(a); // no-warning 2688c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek jrand48(a); // no-warning 2788c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek lcong48(a); // no-warning 2888c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek lrand48(); // no-warning 2988c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek mrand48(); // no-warning 3088c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek nrand48(a); // no-warning 3188c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek rand_r(&b); // no-warning 3288c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek random(); // no-warning 3388c8bc83808588fdb97924144ca9fb5f27dfc9a6Ted Kremenek} 34