================ @@ -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; ---------------- cor3ntin wrote:
It used to have more. But I kept it because I felt a string type was cleaner than a bunch of lone SourceLocations. I'd rather keep it, unless you feel strongly about it 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