| // RUN: echo "abcde" > %t-testdata |
| // RUN: echo "12345" >> %t-testdata |
| // RUN: %clangxx_msan -O0 %s -o %t && %run %t %t-testdata |
| // RUN: %clangxx_msan -O2 %s -o %t && %run %t %t-testdata |
| // RUN: %clang_msan -O0 -xc %s -o %t && %run %t %t-testdata |
| // RUN: %clang_msan -O2 -xc %s -o %t && %run %t %t-testdata |
| // RUN: %clang_msan -O0 -xc -D_GNU_SOURCE=1 %s -o %t && %run %t %t-testdata |
| // RUN: %clang_msan -O2 -xc -D_GNU_SOURCE=1 %s -o %t && %run %t %t-testdata |
| |
| #if defined(__FreeBSD__) |
| #define _WITH_GETLINE // To declare getline(). |
| #endif |
| |
| #include <assert.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| |
| int main(int argc, char **argv) { |
| assert(argc == 2); |
| printf("%s\n", argv[1]); |
| |
| FILE *fp = fopen(argv[1], "r"); |
| assert(fp); |
| |
| char *line = 0; |
| size_t len = 0; |
| int n = getline(&line, &len, fp); |
| assert(n == 6); |
| assert(strcmp(line, "abcde\n") == 0); |
| |
| n = getline(&line, &len, fp); |
| assert(n == 6); |
| assert(strcmp(line, "12345\n") == 0); |
| |
| free(line); |
| fclose(fp); |
| |
| return 0; |
| } |