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