diff options
Diffstat (limited to 'compiler-rt/test/msan/readdir64.cpp')
-rw-r--r-- | compiler-rt/test/msan/readdir64.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/compiler-rt/test/msan/readdir64.cpp b/compiler-rt/test/msan/readdir64.cpp new file mode 100644 index 00000000000..e77ada6ac8f --- /dev/null +++ b/compiler-rt/test/msan/readdir64.cpp @@ -0,0 +1,27 @@ +// RUN: %clangxx_msan -O0 %s -o %t && %run %t +// RUN: %clangxx_msan -O1 %s -o %t && %run %t +// RUN: %clangxx_msan -O2 %s -o %t && %run %t +// RUN: %clangxx_msan -O3 %s -o %t && %run %t + +// RUN: %clangxx_msan -O0 -D_FILE_OFFSET_BITS=64 %s -o %t && %run %t +// RUN: %clangxx_msan -O1 -D_FILE_OFFSET_BITS=64 %s -o %t && %run %t +// RUN: %clangxx_msan -O2 -D_FILE_OFFSET_BITS=64 %s -o %t && %run %t +// RUN: %clangxx_msan -O3 -D_FILE_OFFSET_BITS=64 %s -o %t && %run %t + +// Test that readdir64 is intercepted as well as readdir. + +#include <sys/types.h> +#include <dirent.h> +#include <stdlib.h> + + +int main(void) { + DIR *dir = opendir("."); + struct dirent *d = readdir(dir); + if (d->d_name[0]) { + closedir(dir); + exit(0); + } + closedir(dir); + return 0; +} |