[PATCH] D142992: [include-mapping] Implement language separation in stdlib recognizer library

Viktoriia Bakalova via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 1 03:04:56 PST 2023


VitaNuo added a comment.

Thanks for the comments!



================
Comment at: clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp:31
+
+static llvm::DenseMap<Lang, SymbolHeaderMapping *> LanguageMappings;
+
----------------
hokein wrote:
> using a map here seems like an overkill, we have just 2 elements, I'd just use two separate variables (`CMapping`, and `CXXMapping`)
what about the design idea that we might potentially want to extend this to multiple standards etc.? The idea is that it's extensible to `ObjC`, `OpenCL`... and so on and so forth, as has been discussed offline.


================
Comment at: clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp:100
+static int initialize() {
+  for (Lang Language : AllLangs)
+    initialize(Language);
----------------
hokein wrote:
> nit: just `for (Lang Language: {Lang::C, Lang::CXX})` or two statements `initilize(Lang::C);` and `initialize(Lang::CXX);`. 
yes, same argument as above. I remember extensive discussions about the idea that we might want to extend this to multiple language versions etc. in the future.


================
Comment at: clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp:164
 
+  ensureInitialized();
+  SymbolHeaderMapping *Mapping = GetMapping(Language);
----------------
hokein wrote:
> Do we need the `ensureInitialized()` here? looks like no needed, we have called it in the Recognizer constructor,
you're right, not needed.


================
Comment at: clang/lib/Tooling/Inclusions/Stdlib/StandardLibrary.cpp:188
+  Lang RecognizerLang = Lang::CXX;
+  if (Language == clang::Language::C) {
+    RecognizerLang = Lang::C;
----------------
hokein wrote:
> nit: just use `LangOpts.CPlusPlus` to check the language.
There's `LangStandard::isCPlusPlus` method that I've just discovered. That's probably even better.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D142992



More information about the cfe-commits mailing list