In file included from unsafe_buffers_unchecked.cpp:14: ./unsafe_buffers_not_clean_dir/clean_header.h:11:10: warning: unsafe buffer access [-Wunsafe-buffer-usage] return i[s]; // This is in a "clean" file, so it should make a warning. ^ ./unsafe_buffers_not_clean_dir/clean_header.h:11:10: note: See //docs/unsafe_buffers.md for help. ./unsafe_buffers_not_clean_dir/clean_header.h:21:3: warning: function introduces unsafe buffer manipulation [-Wunsafe-buffer-usage] in_a_dir_unsafe_fn(); // Unannotated call causes error. ^~~~~~~~~~~~~~~~~~~~ ./unsafe_buffers_not_clean_dir/clean_header.h:21:3: note: See //docs/unsafe_buffers.md for help. ./unsafe_buffers_not_clean_dir/clean_header.h:22:3: warning: function introduces unsafe buffer manipulation [-Wunsafe-buffer-usage] in_a_dir_unsafe_fn(); // Second one uses caching and still makes an error. ^~~~~~~~~~~~~~~~~~~~ ./unsafe_buffers_not_clean_dir/clean_header.h:22:3: note: See //docs/unsafe_buffers.md for help. ./unsafe_buffers_not_clean_dir/clean_header.h:42:1: warning: unsafe pointer arithmetic [-Wunsafe-buffer-usage] INSIDE_MACRO_CHECKED(FooChecked, ptr, int*); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ./unsafe_buffers_not_clean_dir/clean_header.h:33:12: note: expanded from macro 'INSIDE_MACRO_CHECKED' return FIELD##s_ + index; / ^~~~~~~~~ :12:1: note: expanded from here ptrs_ ^~~~~ ./unsafe_buffers_not_clean_dir/clean_header.h:42:1: note: See //docs/unsafe_buffers.md for help. ./unsafe_buffers_not_clean_dir/clean_header.h:33:12: note: expanded from macro 'INSIDE_MACRO_CHECKED' return FIELD##s_ + index; / ^ :12:1: note: expanded from here ptrs_ ^ 4 warnings generated.