[Mesa-dev] Mesa include guard style. (Was: [PATCH] i965/cfg: Remove redundant #pragma once.)

Iago Toral itoral at igalia.com
Thu Mar 10 07:40:48 UTC 2016


On Wed, 2016-03-09 at 19:04 -0800, Francisco Jerez wrote:
> Matt Turner <mattst88 at gmail.com> writes:
> 
> > On Wed, Mar 9, 2016 at 1:37 PM, Francisco Jerez <currojerez at riseup.net> wrote:
> >> Iago Toral <itoral at igalia.com> writes:
> >>
> >>> On Tue, 2016-03-08 at 17:42 -0800, Francisco Jerez wrote:
> >>>> brw_cfg.h already has include guards, remove the "#pragma once" which
> >>>> is redundant and non-standard.
> >>>
> >>> FWIW, I think using both #pragma once and include guards is a way to
> >>> keep portability while still getting the performance advantage of
> >>> #pragma once where it is supported.
> >>>
> >> It's highly unlikely to make any significant difference on any
> >> reasonably modern compiler.  I cannot measure any change in compilation
> >> time locally from my cleanup.
> >>
> >>> Also it seems that we do the same thing in many other files...
> >>>
> >> Really?  I'm not aware of any other file where we use both.
> >
> > There are quite a few in glsl/
> 
> Heh, apparently you're right.  Anyway it seems rather pointless to use
> '#pragma once' in a bunch of scattered header files with the expectation
> to gain some speed, the improvement from a single header file is so
> minuscule (if it will make any difference at all on a modern compiler
> and compilation workload, which I doubt) that we would have to use it
> universally in order to have the chance to measure any improvement.
> 
> Can we please just decide for one of the include guard styles and use it
> consistently?  Given that the majority of header files in the Mesa
> codebase use old-school define guards, that it's the only standard
> option, that it has well-defined semantics in presence of file copies
> and hardlinks, and that the performance argument against it is rather
> dubious (although I definitely find '#pragma once' prettier and more
> concise), I'd vote for using preprocessor define guards universally.
> 
> What do other people think?

I think we have to use define guards necessarily since #pragma once is
not standard even it it has wide support. So the question is whether we
want to use only define guards or define guards plus #pragma once. I am
fine with doing only define guards as you propose.

Iago



More information about the mesa-dev mailing list