rsmith added inline comments.

================
Comment at: include/clang/AST/DeclCXX.h:522
@@ -545,7 +521,3 @@
 
-  typedef LazyDefinitionDataPtr<CXXRecordDecl, struct DefinitionData>
-      DefinitionDataPtr;
-  friend class LazyDefinitionDataPtr<CXXRecordDecl, struct DefinitionData>;
-
-  mutable DefinitionDataPtr DefinitionData;
+  mutable DefinitionData* DefinitionData;
 
----------------
Does this still need to be `mutable`?

Also, you need to use `struct DefinitionData *DefinitionData;` here or this is 
ill-formed (no diagnostic required) by [basic.scope.class]p1 rule 2.

================
Comment at: include/clang/AST/DeclCXX.h:672
@@ -698,3 +671,3 @@
   CXXRecordDecl *getDefinition() const {
-    auto *DD = DefinitionData.get();
+    auto *DD = DefinitionData;
     return DD ? DD->Definition : nullptr;
----------------
This also needs to perform an update. Maybe factor out a function for this and 
`data()` to call?

================
Comment at: include/clang/AST/DeclCXX.h:676
@@ -702,3 +675,3 @@
 
-  bool hasDefinition() const { return DefinitionData.get(); }
+  bool hasDefinition() const { return DefinitionData; }
 
----------------
Likewise, we need an update here if `DefinitionData` is null.


Repository:
  rL LLVM

http://reviews.llvm.org/D20302



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to