1d5f92e34SVitaly Buka // RUN: %clangxx -O0 -g %s -o %t -lcrypt && %run %t
22e2c9347SEvgeniy Stepanov 
3d5f92e34SVitaly Buka // crypt() is missing from Android and -lcrypt from darwin.
4d5f92e34SVitaly Buka // UNSUPPORTED: android, darwin
5d8245e7aSVitaly Buka 
62e2c9347SEvgeniy Stepanov #include <assert.h>
72e2c9347SEvgeniy Stepanov #include <unistd.h>
82e2c9347SEvgeniy Stepanov #include <cstring>
9*39d25064SAlex Richardson #if __has_include(<crypt.h>)
1053a53e63SEvgeniy Stepanov #include <crypt.h>
11*39d25064SAlex Richardson #endif
122e2c9347SEvgeniy Stepanov 
132e2c9347SEvgeniy Stepanov int
main(int argc,char ** argv)142e2c9347SEvgeniy Stepanov main (int argc, char** argv)
152e2c9347SEvgeniy Stepanov {
162e2c9347SEvgeniy Stepanov   {
172e2c9347SEvgeniy Stepanov     char *p = crypt("abcdef", "xz");
182e2c9347SEvgeniy Stepanov     volatile size_t z = strlen(p);
192e2c9347SEvgeniy Stepanov   }
202e2c9347SEvgeniy Stepanov   {
212e2c9347SEvgeniy Stepanov     char *p = crypt("abcdef", "$1$");
222e2c9347SEvgeniy Stepanov     volatile size_t z = strlen(p);
232e2c9347SEvgeniy Stepanov   }
242e2c9347SEvgeniy Stepanov   {
252e2c9347SEvgeniy Stepanov     char *p = crypt("abcdef", "$5$");
262e2c9347SEvgeniy Stepanov     volatile size_t z = strlen(p);
272e2c9347SEvgeniy Stepanov   }
282e2c9347SEvgeniy Stepanov   {
292e2c9347SEvgeniy Stepanov     char *p = crypt("abcdef", "$6$");
302e2c9347SEvgeniy Stepanov     volatile size_t z = strlen(p);
312e2c9347SEvgeniy Stepanov   }
322e2c9347SEvgeniy Stepanov }
33