Index: include/clang/Basic/TargetCXXABI.h |
diff --git a/include/clang/Basic/TargetCXXABI.h b/include/clang/Basic/TargetCXXABI.h |
index 42a976b3afdeb420d92cd700c504cada36c3ce85..c0a72cd413385f9bf073ac6e7a51ce4037eeee25 100644 |
--- a/include/clang/Basic/TargetCXXABI.h |
+++ b/include/clang/Basic/TargetCXXABI.h |
@@ -146,6 +146,24 @@ public: |
llvm_unreachable("bad ABI kind"); |
} |
+ /// \brief Are pointers to member functions differently aligned? |
+ bool arePointersToMemberFunctionsAligned() const { |
+ switch (getKind()) { |
+ case GenericARM: |
+ case GenericAArch64: |
+ // TODO: ARM-style pointers to member functions put the discriminator in |
+ // the this adjustment, so they don't require functions to have any |
+ // special alignment and could therefore also return false. |
+ case GenericItanium: |
+ case GenericMIPS: |
+ case iOS: |
+ case iOS64: |
+ case Microsoft: |
+ return true; |
+ } |
+ llvm_unreachable("bad ABI kind"); |
+ } |
+ |
/// \brief Is the default C++ member function calling convention |
/// the same as the default calling convention? |
bool isMemberFunctionCCDefault() const { |