Let's not expose ABI specific minutia inside of CodeGenModule and
instead abstract it through CXXABI.  This gets rid of
CodeGenModule::getCompleteObjectLocator,
CodeGenModule::EmitFundamentalTypeDescriptor{s,},
CodeGenModule::getMSTypeDescriptor,
CodeGenModule::getMSCompleteObjectLocator.
Details
Diff Detail
Event Timeline
| include/clang/AST/Type.h | ||
|---|---|---|
| 1458 | Stray comment? | |
| lib/CodeGen/CodeGenModule.cpp | ||
| 3390–3391 | Not part of this change, but note this linkage is incorrect for dllimport classes: http://llvm.org/PR20106 | |
| lib/CodeGen/ItaniumCXXABI.cpp | ||
| 1950 | 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. | |
| lib/CodeGen/MicrosoftCXXABI.cpp | ||
| 2783 | "creats" | |
- Address review feedback.
| include/clang/AST/Type.h | ||
|---|---|---|
| 1458 | Fixed. | |
| lib/CodeGen/ItaniumCXXABI.cpp | ||
| 1950 | As an example: I can do either but it made more sense, to me, to avoid creating another interface. | |
| lib/CodeGen/MicrosoftCXXABI.cpp | ||
| 2783 | Fixed. | |
lgtm
| lib/CodeGen/ItaniumCXXABI.cpp | ||
|---|---|---|
| 1950 | OK, sgtm. We don't want a base class. The interface won't be the same. In Itanium, the type info object has all the relevant data, whereas in MS the other data points to the type_info struct. | |
Stray comment?