[PATCH] CodeGen: Refactor RTTI emission
David Majnemer
david.majnemer at gmail.com
Mon Jun 23 15:18:09 PDT 2014
================
Comment at: include/clang/AST/Type.h:1458
@@ +1457,3 @@
+ /// an incomplete class type.
+ /// is an indirect or direct pointer to an incomplete class type.
+ bool containsIncompleteClassType() const;
----------------
Reid Kleckner wrote:
> Stray comment?
Fixed.
================
Comment at: lib/CodeGen/ItaniumCXXABI.cpp:1950
@@ +1949,3 @@
+
+namespace {
+class ItaniumRTTIBuilder {
----------------
Reid Kleckner wrote:
> Looks like the Itanium code paths weigh in at ~900 lines and the MS ones at ~500. That's kind of my internal threshold for "this deserves it's own file". IIRC you considered but rejected ItaniumRTTI.cpp. Why? I don't see any problem with a lib/CodeGen/ItaniumRTTI.h that exposes some free functions that ItaniumCXXABI calls to.
As an example:
`ItaniumCXXABI::getAddrOfRTTIDescriptor` refers to `ItaniumRTTIBuilder`. Either we somehow expose a `CXXABIRTTIBuilder` base class for both of them (as well as factory functions to create them) or we just merge them into their respective ABI implementations.
I can do either but it made more sense, to me, to avoid creating another interface.
================
Comment at: lib/CodeGen/MicrosoftCXXABI.cpp:2783
@@ +2782,3 @@
+
+/// \brief Gets or a creats a Microsoft CompleteObjectLocator.
+llvm::GlobalVariable *
----------------
Reid Kleckner wrote:
> "creats"
Fixed.
http://reviews.llvm.org/D4261
More information about the cfe-commits
mailing list