KyleFromKitware added a comment.

Basically, anything that extends `HeaderGuardCheck` (or `HeaderGuardBase` from 
D142121 <https://reviews.llvm.org/D142121>) is really just a fancy 
configuration option, rather than a separate check, and should be treated as 
such. My proposal is this:

1. Create a new base class called `HeaderGuardStyle` which controls all 
behavior that happens after a header guard or `#pragma once` is discovered, and 
create associated `llvm::Registry`
2. Modify `HeaderGuardCheck` to select a `HeaderGuardStyle` from the registry 
based on a configuration option
3. Create a class called `MacroHeaderGuardStyle` which extends 
`HeaderGuardStyle` and basically does what D142121 
<https://reviews.llvm.org/D142121> does now
4. Rename `LLVMHeaderGuardCheck` to `LLVMHeaderGuardStyle` and modify it to 
extend `MacroHeaderGuardStyle` and add it to the registry
5. Add `PragmaOnceHeaderGuardStyle` which extends `HeaderGuardStyle` and add it 
to the registry

The refactoring that I've done in D142121 <https://reviews.llvm.org/D142121> is 
most of the way to being able to implement my above proposal. I just need to 
shift a few things around and add the new classes. @aaron.ballman if this 
proposal is good with you I'll get started on it.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D142123/new/

https://reviews.llvm.org/D142123

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to