azabaznov added inline comments.
================ Comment at: clang/include/clang/Basic/OpenCLOptions.h:179 + static bool isOpenCLOptionCoreIn(const LangOptions &LO, Args &&... args) { + return OpenCLOptionInfo(std::forward<Args>(args)...).isCoreIn(LO); + } ---------------- Anastasia wrote: > Do you think we could avoid constructing the temporary objects somehow? > > I.e. could we just check the condition `CLVer >= Avail` that is used in the > non-static member function directly? > > We could then use these helpers in the non-static members perhaps to avoid > duplication. In future I would like to have a file scope variable to to something like: ``` extern llvm::StringMap<OpenCLOptionInfo> OpenCLOptionsKV = { #include "OpenCLExtensions.inc" }; ``` where `OpenCLExtensions.inc` will be generated from TableGen file. This file-scope variable will be initialized once and contain all the information about OpenCL options. As for now I think using variadics and creating a temporary variable is much more simple than obtaining a full list of arguments and choosing the proper one to call `CLVer >= Avail` and even for checking core :) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101087/new/ https://reviews.llvm.org/D101087 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits