[PATCH] D140896: [WIP] Move from llvm::makeArrayRef to ArrayRef deduction guides

2023-01-03 Thread serge via Phabricator via cfe-commits
This revision was not accepted when it landed; it landed in state "Needs 
Review".
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG3677ee65d192: Move from llvm::makeArrayRef to ArrayRef 
deduction guides (authored by serge-sans-paille).

Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D140896

Files:
  llvm/include/llvm/ADT/ArrayRef.h


Index: llvm/include/llvm/ADT/ArrayRef.h
===
--- llvm/include/llvm/ADT/ArrayRef.h
+++ llvm/include/llvm/ADT/ArrayRef.h
@@ -466,9 +466,44 @@
 ~OwningArrayRef() { delete[] this->data(); }
   };
 
-  /// @name ArrayRef Convenience constructors
+  /// @name ArrayRef Deduction guides
   /// @{
+  /// Deduction guide to construct an ArrayRef from a single element.
+  template  ArrayRef(const T ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a pointer and length
+  template  ArrayRef(const T *data, size_t length) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a range
+  template  ArrayRef(const T *data, const T *end) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a SmallVector
+  template  ArrayRef(const SmallVectorImpl ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a SmallVector
+  template 
+  ArrayRef(const SmallVector ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a std::vector
+  template  ArrayRef(const std::vector ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a std::array
+  template 
+  ArrayRef(const std::array ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from an ArrayRef (no-op) (const)
+  template  ArrayRef(const ArrayRef ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from an ArrayRef (no-op)
+  template  ArrayRef(ArrayRef ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a C array.
+  template  ArrayRef(const T ()[N]) -> ArrayRef;
 
+  /// @}
+
+  /// @name ArrayRef Convenience constructors
+  /// @{
   /// Construct an ArrayRef from a single element.
   template
   ArrayRef makeArrayRef(const T ) {


Index: llvm/include/llvm/ADT/ArrayRef.h
===
--- llvm/include/llvm/ADT/ArrayRef.h
+++ llvm/include/llvm/ADT/ArrayRef.h
@@ -466,9 +466,44 @@
 ~OwningArrayRef() { delete[] this->data(); }
   };
 
-  /// @name ArrayRef Convenience constructors
+  /// @name ArrayRef Deduction guides
   /// @{
+  /// Deduction guide to construct an ArrayRef from a single element.
+  template  ArrayRef(const T ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a pointer and length
+  template  ArrayRef(const T *data, size_t length) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a range
+  template  ArrayRef(const T *data, const T *end) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a SmallVector
+  template  ArrayRef(const SmallVectorImpl ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a SmallVector
+  template 
+  ArrayRef(const SmallVector ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a std::vector
+  template  ArrayRef(const std::vector ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a std::array
+  template 
+  ArrayRef(const std::array ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from an ArrayRef (no-op) (const)
+  template  ArrayRef(const ArrayRef ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from an ArrayRef (no-op)
+  template  ArrayRef(ArrayRef ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a C array.
+  template  ArrayRef(const T ()[N]) -> ArrayRef;
 
+  /// @}
+
+  /// @name ArrayRef Convenience constructors
+  /// @{
   /// Construct an ArrayRef from a single element.
   template
   ArrayRef makeArrayRef(const T ) {
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D140896: [WIP] Move from llvm::makeArrayRef to ArrayRef deduction guides

2023-01-03 Thread serge via Phabricator via cfe-commits
serge-sans-paille updated this revision to Diff 486172.
serge-sans-paille added a comment.

Split the original patch in pieces: first just introduce the deduction guide.


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

https://reviews.llvm.org/D140896

Files:
  llvm/include/llvm/ADT/ArrayRef.h


Index: llvm/include/llvm/ADT/ArrayRef.h
===
--- llvm/include/llvm/ADT/ArrayRef.h
+++ llvm/include/llvm/ADT/ArrayRef.h
@@ -466,9 +466,44 @@
 ~OwningArrayRef() { delete[] this->data(); }
   };
 
-  /// @name ArrayRef Convenience constructors
+  /// @name ArrayRef Deduction guides
   /// @{
+  /// Deduction guide to construct an ArrayRef from a single element.
+  template  ArrayRef(const T ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a pointer and length
+  template  ArrayRef(const T *data, size_t length) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a range
+  template  ArrayRef(const T *data, const T *end) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a SmallVector
+  template  ArrayRef(const SmallVectorImpl ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a SmallVector
+  template 
+  ArrayRef(const SmallVector ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a std::vector
+  template  ArrayRef(const std::vector ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a std::array
+  template 
+  ArrayRef(const std::array ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from an ArrayRef (no-op) (const)
+  template  ArrayRef(const ArrayRef ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from an ArrayRef (no-op)
+  template  ArrayRef(ArrayRef ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a C array.
+  template  ArrayRef(const T ()[N]) -> ArrayRef;
 
+  /// @}
+
+  /// @name ArrayRef Convenience constructors
+  /// @{
   /// Construct an ArrayRef from a single element.
   template
   ArrayRef makeArrayRef(const T ) {


Index: llvm/include/llvm/ADT/ArrayRef.h
===
--- llvm/include/llvm/ADT/ArrayRef.h
+++ llvm/include/llvm/ADT/ArrayRef.h
@@ -466,9 +466,44 @@
 ~OwningArrayRef() { delete[] this->data(); }
   };
 
-  /// @name ArrayRef Convenience constructors
+  /// @name ArrayRef Deduction guides
   /// @{
+  /// Deduction guide to construct an ArrayRef from a single element.
+  template  ArrayRef(const T ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a pointer and length
+  template  ArrayRef(const T *data, size_t length) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a range
+  template  ArrayRef(const T *data, const T *end) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a SmallVector
+  template  ArrayRef(const SmallVectorImpl ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a SmallVector
+  template 
+  ArrayRef(const SmallVector ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a std::vector
+  template  ArrayRef(const std::vector ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a std::array
+  template 
+  ArrayRef(const std::array ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from an ArrayRef (no-op) (const)
+  template  ArrayRef(const ArrayRef ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from an ArrayRef (no-op)
+  template  ArrayRef(ArrayRef ) -> ArrayRef;
+
+  /// Deduction guide to construct an ArrayRef from a C array.
+  template  ArrayRef(const T ()[N]) -> ArrayRef;
 
+  /// @}
+
+  /// @name ArrayRef Convenience constructors
+  /// @{
   /// Construct an ArrayRef from a single element.
   template
   ArrayRef makeArrayRef(const T ) {
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D140896: [WIP] Move from llvm::makeArrayRef to ArrayRef deduction guides

2023-01-03 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay accepted this revision.
MaskRay added a comment.

LGTM if `makeArrayRef` is kept in this patch. Do we foresee compiler bugs (for 
supported compilers) in this area? If there may be a risk, consider migrate a 
part of the code base first.


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

https://reviews.llvm.org/D140896

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


[PATCH] D140896: [WIP] Move from llvm::makeArrayRef to ArrayRef deduction guides

2023-01-03 Thread serge via Phabricator via cfe-commits
serge-sans-paille updated this revision to Diff 486049.
serge-sans-paille added a comment.

+ keep deprecated version, flagged appropriately


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

https://reviews.llvm.org/D140896

Files:
  bolt/tools/bat-dump/bat-dump.cpp
  bolt/tools/driver/llvm-bolt.cpp
  bolt/tools/heatmap/heatmap.cpp
  clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp
  clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
  clang-tools-extra/clang-tidy/bugprone/SignalHandlerCheck.cpp
  clang-tools-extra/clang-tidy/concurrency/MtUnsafeCheck.cpp
  clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp
  clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
  clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
  clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
  clang-tools-extra/clangd/ClangdLSPServer.cpp
  clang-tools-extra/clangd/CompileCommands.cpp
  clang-tools-extra/clangd/FindSymbols.cpp
  clang-tools-extra/clangd/Preamble.cpp
  clang-tools-extra/clangd/Selection.cpp
  clang-tools-extra/clangd/XRefs.cpp
  clang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp
  clang-tools-extra/clangd/tool/Check.cpp
  clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp
  clang-tools-extra/include-cleaner/lib/HTMLReport.cpp
  clang-tools-extra/pseudo/include/clang-pseudo/Forest.h
  clang-tools-extra/pseudo/include/clang-pseudo/GLR.h
  clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h
  clang-tools-extra/pseudo/lib/Forest.cpp
  clang-tools-extra/pseudo/lib/GLR.cpp
  clang-tools-extra/pseudo/lib/grammar/Grammar.cpp
  clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp
  clang/include/clang/AST/Decl.h
  clang/include/clang/AST/DeclCXX.h
  clang/include/clang/AST/DeclObjC.h
  clang/include/clang/AST/DeclOpenMP.h
  clang/include/clang/AST/DeclTemplate.h
  clang/include/clang/AST/Expr.h
  clang/include/clang/AST/ExprCXX.h
  clang/include/clang/AST/ExprObjC.h
  clang/include/clang/AST/ExprOpenMP.h
  clang/include/clang/AST/OpenMPClause.h
  clang/include/clang/AST/PropertiesBase.td
  clang/include/clang/AST/Stmt.h
  clang/include/clang/AST/StmtOpenMP.h
  clang/include/clang/AST/TemplateBase.h
  clang/include/clang/AST/TemplateName.h
  clang/include/clang/AST/Type.h
  clang/include/clang/AST/TypeLoc.h
  clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h
  clang/include/clang/Basic/Diagnostic.h
  clang/include/clang/Basic/SyncScope.h
  clang/include/clang/CodeGen/CGFunctionInfo.h
  clang/include/clang/Lex/MacroInfo.h
  clang/include/clang/Parse/Parser.h
  clang/include/clang/Sema/DeclSpec.h
  clang/include/clang/Sema/DelayedDiagnostic.h
  clang/include/clang/Sema/Sema.h
  clang/include/clang/Serialization/ASTRecordReader.h
  clang/include/clang/Tooling/Refactoring/Rename/SymbolOccurrences.h
  clang/include/clang/Tooling/Transformer/RewriteRule.h
  clang/lib/AST/APValue.cpp
  clang/lib/AST/ASTContext.cpp
  clang/lib/AST/ASTDiagnostic.cpp
  clang/lib/AST/ASTImporter.cpp
  clang/lib/AST/CommentParser.cpp
  clang/lib/AST/CommentSema.cpp
  clang/lib/AST/ComputeDependence.cpp
  clang/lib/AST/Decl.cpp
  clang/lib/AST/DeclCXX.cpp
  clang/lib/AST/DeclTemplate.cpp
  clang/lib/AST/ExprCXX.cpp
  clang/lib/AST/ExprConstant.cpp
  clang/lib/AST/OpenMPClause.cpp
  clang/lib/AST/ParentMapContext.cpp
  clang/lib/AST/TemplateName.cpp
  clang/lib/AST/Type.cpp
  clang/lib/ASTMatchers/Dynamic/Marshallers.cpp
  clang/lib/Analysis/CFG.cpp
  clang/lib/Analysis/CalledOnceCheck.cpp
  clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
  clang/lib/Basic/Module.cpp
  clang/lib/Basic/Targets/AArch64.cpp
  clang/lib/Basic/Targets/AMDGPU.cpp
  clang/lib/Basic/Targets/ARC.h
  clang/lib/Basic/Targets/ARM.cpp
  clang/lib/Basic/Targets/AVR.h
  clang/lib/Basic/Targets/BPF.cpp
  clang/lib/Basic/Targets/CSKY.cpp
  clang/lib/Basic/Targets/Hexagon.cpp
  clang/lib/Basic/Targets/Lanai.cpp
  clang/lib/Basic/Targets/LoongArch.cpp
  clang/lib/Basic/Targets/M68k.cpp
  clang/lib/Basic/Targets/MSP430.cpp
  clang/lib/Basic/Targets/MSP430.h
  clang/lib/Basic/Targets/Mips.cpp
  clang/lib/Basic/Targets/Mips.h
  clang/lib/Basic/Targets/NVPTX.cpp
  clang/lib/Basic/Targets/PPC.cpp
  clang/lib/Basic/Targets/RISCV.cpp
  clang/lib/Basic/Targets/Sparc.cpp
  clang/lib/Basic/Targets/SystemZ.cpp
  clang/lib/Basic/Targets/VE.cpp
  clang/lib/Basic/Targets/VE.h
  clang/lib/Basic/Targets/WebAssembly.cpp
  clang/lib/Basic/Targets/X86.cpp
  clang/lib/Basic/Targets/XCore.cpp
  clang/lib/Basic/Targets/XCore.h
  clang/lib/CodeGen/CGBuiltin.cpp
  clang/lib/CodeGen/CGExprConstant.cpp
  clang/lib/CodeGen/CGExprScalar.cpp
  clang/lib/CodeGen/CGObjCGNU.cpp
  clang/lib/CodeGen/CGOpenMPRuntime.cpp
  clang/lib/CodeGen/CGStmtOpenMP.cpp
  clang/lib/CodeGen/CodeGenFunction.cpp
  clang/lib/CodeGen/CodeGenModule.cpp
  clang/lib/CodeGen/CodeGenPGO.cpp
  clang/lib/CodeGen/CodeGenTypes.cpp
  clang/lib/CodeGen/ConstantInitBuilder.cpp
  

[PATCH] D140896: [WIP] Move from llvm::makeArrayRef to ArrayRef deduction guides

2023-01-03 Thread Jacques Pienaar via Phabricator via cfe-commits
jpienaar added inline comments.



Comment at: llvm/include/llvm/ADT/ArrayRef.h:502
+  /// Deduction guide to construct an ArrayRef from a C array.
+  template  ArrayRef(const T ()[N]) -> ArrayRef;
 

mehdi_amini wrote:
> Can we keep the makeArrayRef functions for now and mark them deprecated?
+1 that would also allow for this change to broken up so that the deduction 
guides land first and then the updates (potentially even 3 hops, 1) add guides, 
2) update, 3) mark deprecated - 1 & 2 could be combined but it'll greatly 
simplify review/enable sharding it)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D140896

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


[PATCH] D140896: [WIP] Move from llvm::makeArrayRef to ArrayRef deduction guides

2023-01-03 Thread Mehdi AMINI via Phabricator via cfe-commits
mehdi_amini added inline comments.
Herald added a subscriber: Michael137.



Comment at: llvm/include/llvm/ADT/ArrayRef.h:502
+  /// Deduction guide to construct an ArrayRef from a C array.
+  template  ArrayRef(const T ()[N]) -> ArrayRef;
 

Can we keep the makeArrayRef functions for now and mark them deprecated?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D140896

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


[PATCH] D140896: [WIP] Move from llvm::makeArrayRef to ArrayRef deduction guides

2023-01-03 Thread serge via Phabricator via cfe-commits
serge-sans-paille created this revision.
Herald added subscribers: libc-commits, hanchung, kadircet, Moerafaat, 
kmitropoulou, zero9178, Enna1, bzcheeseman, kosarev, mattd, gchakrabarti, 
ThomasRaoux, pmatos, asb, ayermolo, awarzynski, arjunp, sdasgup3, asavonic, 
carlosgalvezp, Groverkss, wenzhicui, wrengr, armkevincheng, ormris, foad, 
jsetoain, jsmolens, sjarus, eric-k256, cota, mravishankar, teijeong, 
frasercrmck, rdzhabarov, ecnelises, tatianashp, wenlei, mehdi_amini, jdoerfert, 
msifontes, jurahul, Kayjukh, grosul1, Joonsoo, kerbowa, liufengdb, aartbik, 
mgester, arpith-jacob, csigg, antiagainst, shauheen, rriddle, luismarques, 
apazos, sameer.abuasal, pengfei, s.egerton, Jim, jocewei, PkmX, arphaman, 
the_o, brucehoult, MartinMosbeck, rogfer01, steven_wu, atanasyan, edward-jones, 
zzheng, jrtc27, martong, niosHD, sabuasal, simoncook, johnrusso, rbar, 
fedor.sergeev, kbarton, hiraditya, jgravelle-google, arichardson, sbc100, 
jvesely, nemanjai, sdardis, emaste, dylanmckay, jyknight, dschuff, arsenm, 
qcolombet, MatzeB.
Herald added a reviewer: JDevlieghere.
Herald added a reviewer: alexander-shaposhnikov.
Herald added a reviewer: shafik.
Herald added a reviewer: jhenderson.
Herald added a reviewer: antiagainst.
Herald added a reviewer: rriddle.
Herald added a reviewer: antiagainst.
Herald added a reviewer: aartbik.
Herald added a reviewer: MaskRay.
Herald added a reviewer: jpienaar.
Herald added a reviewer: ftynse.
Herald added a reviewer: awarzynski.
Herald added a reviewer: bondhugula.
Herald added a reviewer: rafauler.
Herald added a reviewer: Amir.
Herald added a reviewer: maksfb.
Herald added a reviewer: ThomasRaoux.
Herald added a reviewer: NoQ.
Herald added a reviewer: njames93.
Herald added projects: libc-project, Flang, All.
serge-sans-paille requested review of this revision.
Herald added subscribers: cfe-commits, llvm-commits, lldb-commits, 
pcwang-thead, yota9, StephenFan, stephenneuendorffer, nicolasvasilache, 
aheejin, jholewinski.
Herald added a reviewer: nicolasvasilache.
Herald added a reviewer: herhut.
Herald added a reviewer: dcaballe.
Herald added projects: clang, LLDB, MLIR, LLVM, clang-tools-extra.

Since we're now requiring C++17, Let's get rid of `makeXXX` functions like 
`makeArrayRef`, and use deduction guides instead.

Apart from codebase modernization, there isn't much benefit from that
move, but I can still mention that it would slightly (probably
negligibly) decrease the number of symbols / debug info, as deduction
guides don't generate new code.

The only non-automatic changes have been:

1. Write the deduction guides
2. `ArrayRef(some_uint8_pointer, 0)` needs to be changed into 
`ArrayRef(some_uint8_pointer, (size_t)0)` to avoid an ambiguous call with 
`ArrayRef((uint8_t*), (uint8_t*))`
3. `CVSymbol sym(makeArrayRef(symStorage));` needed to be rewritten as 
`CVSymbol sym{ArrayRef(symStorage)};` otherwise the compiler is confused and 
thinks we have a (bad) function prototype. There was a few similar situation 
across the codebase.
4. ADL doesn't seem to work the same for deductio-guides and functions, so at 
some point the `llvm` namespace must be explicitly stated.
5. The "reference mode" of `makeArrayRef(ArrayRef &)` that acts as no-op is 
not supported (a constructor cannot achieve that).


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D140896

Files:
  bolt/tools/bat-dump/bat-dump.cpp
  bolt/tools/driver/llvm-bolt.cpp
  bolt/tools/heatmap/heatmap.cpp
  clang-tools-extra/clang-apply-replacements/tool/ClangApplyReplacementsMain.cpp
  clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
  clang-tools-extra/clang-tidy/bugprone/SignalHandlerCheck.cpp
  clang-tools-extra/clang-tidy/concurrency/MtUnsafeCheck.cpp
  clang-tools-extra/clang-tidy/modernize/AvoidBindCheck.cpp
  clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp
  clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
  clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
  clang-tools-extra/clangd/ClangdLSPServer.cpp
  clang-tools-extra/clangd/CompileCommands.cpp
  clang-tools-extra/clangd/FindSymbols.cpp
  clang-tools-extra/clangd/Preamble.cpp
  clang-tools-extra/clangd/Selection.cpp
  clang-tools-extra/clangd/XRefs.cpp
  clang-tools-extra/clangd/refactor/tweaks/DefineOutline.cpp
  clang-tools-extra/clangd/tool/Check.cpp
  clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp
  clang-tools-extra/include-cleaner/lib/HTMLReport.cpp
  clang-tools-extra/pseudo/include/clang-pseudo/Forest.h
  clang-tools-extra/pseudo/include/clang-pseudo/GLR.h
  clang-tools-extra/pseudo/include/clang-pseudo/grammar/LRTable.h
  clang-tools-extra/pseudo/lib/Forest.cpp
  clang-tools-extra/pseudo/lib/GLR.cpp
  clang-tools-extra/pseudo/lib/grammar/Grammar.cpp
  clang-tools-extra/unittests/clang-tidy/ClangTidyOptionsTest.cpp
  clang/include/clang/AST/Decl.h
  clang/include/clang/AST/DeclCXX.h
  clang/include/clang/AST/DeclObjC.h
  clang/include/clang/AST/DeclOpenMP.h