On Sat, Oct 15, 2022 at 07:21:35PM +0000, Taylor R Campbell wrote: > [bcc tech-userlevel tech-toolchain, followups on tech-kern] > > Traditionally to avoid problems with repeated inclusion of a header > file, you put #include guards around it, say in sys/dev/foo.h: > > #ifndef _SYS_DEV_FOO_H_ > #define _SYS_DEV_FOO_H_ > > ... > > #endif /* _SYS_DEV_FOO_H_ */ > > With newer compilers this can be replaced by a single line in the > header file: > > #pragma once > > It's nonstandard, but using #pragma once is maybe a bit less > error-prone -- don't have to have to pollute the namespace with > have-I-been-included macros, and I've made mistakes with copying & > pasting the per-file have-I-been-included macro into the wrong file.
I don't see any benefit given that it's maybe 5-10 minutes with sed to write a script to detect wrong include guards. Furthermore since we still don't have a clear separation between internal and user-facing kernel headers, there's no significant place we can safely/correctly use the pragma that will help much. -- David A. Holland dholl...@netbsd.org