================ @@ -127,6 +127,33 @@ class AccessSpecDecl : public Decl { static bool classofKind(Kind K) { return K == AccessSpec; } }; +enum class RelocatableOrReplaceableClassSpecifierKind { + Relocatable, + Replaceable +}; + +template <RelocatableOrReplaceableClassSpecifierKind MK> +class BasicRelocatableOrReplaceableClassSpecifier { +public: + BasicRelocatableOrReplaceableClassSpecifier() = default; + BasicRelocatableOrReplaceableClassSpecifier(SourceLocation Begin) + : Loc(Begin) {} + void Set(SourceLocation Begin) { Loc = Begin; } + + bool isSet() const { return !Loc.isInvalid(); } + + SourceLocation getLocation() const { return Loc; } + +private: + SourceLocation Loc; ---------------- erichkeane wrote:
It seems like a lot of 'overhead' mentally to have a type here that all it does is contain a single thing? But I guess I don't feel super strongly. https://github.com/llvm/llvm-project/pull/127636 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits