1436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
2436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov/* The bug that gave rise to this is
3436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov   https://bugs.kde.org/show_bug.cgi?id=307103
4436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov*/
5436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov
6436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#define _GNU_SOURCE
7436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include <fcntl.h>
8436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov#include <unistd.h>
9436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanovint main (void)
10436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov{
11436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  int dfd = open ("/tmp", O_RDONLY);
12436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  __attribute__((unused)) int fd1 = openat (dfd, "abc", O_RDONLY);
13436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  /* This is fine, absolute path. */
14436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  __attribute__((unused)) int fd2 = openat (0x12345678, "/tmp/abc", O_RDONLY);
15436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  __attribute__((unused)) int fd3 = openat (AT_FDCWD, "abc", O_RDONLY);
16436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  /* This is the only one that should warn. */
17436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  __attribute__((unused)) int fd4 = openat (0x12345678, "abc", O_RDONLY);
18436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov  return 0;
19436e89c602e787e7a27dd6624b09beed41a0da8aDmitriy Ivanov}
20