[PATCH] D65562: Move LangStandard*, InputKind::Language to Basic
Reid Kleckner via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 2 14:29:25 PDT 2019
rnk accepted this revision.
rnk added a comment.
This revision is now accepted and ready to land.
Looks good either way.
================
Comment at: include/clang/Basic/LangStandard.h:19
+/// standard and possible actions.
+enum Language {
+ Unknown,
----------------
ro wrote:
> rnk wrote:
> > Is it feasible to make this an `enum class`? I'm worried about namespace clashes on these otherwise very short names, like C, CXX, HIP, etc. It should be straightforward and mechanical to replace most existing instances of `InputKind::` with `Language::`. It would also remove the need to make an exception for `LF_OpenCL`.
> That works perfectly indeed, and is way clearer than my hack
> with LF_OpenCL.
>
> There's only one downside: I had to change InputKind.Lang
> from a 4-bit bitfield to Language, otherwise neither assignment
> nor comparison would work. No idea if that's really a problem.
I don't think it matters, but I would like to keep InputKind 32-bits or less. The easy way would be to use `enum class Language : uint8_t` here. The other way would be to keep the bitfield and add a static cast in the constructor. I see getLanguage() already performs one, so most of the uses shouldn't need a change.
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D65562/new/
https://reviews.llvm.org/D65562
More information about the cfe-commits
mailing list