================
@@ -222,6 +230,41 @@ struct ModuleAttributes {
NoUndeclaredIncludes(false) {}
};
+/// A reference to either a fully materialized Module object, or
+/// a yet-to-be-deserialized submodule in an AST file.
+class ModuleRef {
+ mutable Module *Existing = nullptr;
+ mutable ExternalSubmoduleSource *ExternalSource = nullptr;
+ mutable uint64_t SubmoduleID = 0;
+
+public:
+ ModuleRef() = default;
+ ModuleRef(Module *M) : Existing(M) {}
+ ModuleRef(ExternalSubmoduleSource *ExtSrc, uint64_t SubmoduleID)
+ : ExternalSource(ExtSrc), SubmoduleID(SubmoduleID) {}
+
+ Module *getExisting() const { return Existing; }
+ void setExisting(Module *E) { Existing = E; }
----------------
jansvoboda11 wrote:
No, see https://github.com/llvm/llvm-project/pull/194968#discussion_r3197432750.
https://github.com/llvm/llvm-project/pull/194968
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits