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?