diff options
Diffstat (limited to 'clang/include')
-rw-r--r-- | clang/include/clang/Basic/TargetCXXABI.h | 12 | ||||
-rw-r--r-- | clang/include/clang/Basic/TargetInfo.h | 4 |
2 files changed, 16 insertions, 0 deletions
diff --git a/clang/include/clang/Basic/TargetCXXABI.h b/clang/include/clang/Basic/TargetCXXABI.h index 3c6677c78a3..c9d28f8774b 100644 --- a/clang/include/clang/Basic/TargetCXXABI.h +++ b/clang/include/clang/Basic/TargetCXXABI.h @@ -63,6 +63,14 @@ public: /// - constructor/destructor signatures. iOS, + /// The generic AArch64 ABI is also a modified version of the Itanium ABI, + /// but it has fewer divergences than the 32-bit ARM ABI. + /// + /// The relevant changes from the generic ABI in this case are: + /// - representation of member function pointers adjusted as in ARM. + /// - guard variables are smaller. + GenericAArch64, + /// The Microsoft ABI is the ABI used by Microsoft Visual Studio (and /// compatible compilers). /// @@ -93,6 +101,7 @@ public: /// \brief Does this ABI generally fall into the Itanium family of ABIs? bool isItaniumFamily() const { switch (getKind()) { + case GenericAArch64: case GenericItanium: case GenericARM: case iOS: @@ -107,6 +116,7 @@ public: /// \brief Is this ABI an MSVC-compatible ABI? bool isMicrosoft() const { switch (getKind()) { + case GenericAArch64: case GenericItanium: case GenericARM: case iOS: @@ -175,6 +185,7 @@ public: case GenericARM: return false; + case GenericAArch64: case GenericItanium: case iOS: // old iOS compilers did not follow this rule case Microsoft: @@ -220,6 +231,7 @@ public: // permanently locked the definition of POD to the rules of C++ TR1, // and that trickles down to all the derived ABIs. case GenericItanium: + case GenericAArch64: case GenericARM: case iOS: return UseTailPaddingUnlessPOD03; diff --git a/clang/include/clang/Basic/TargetInfo.h b/clang/include/clang/Basic/TargetInfo.h index 716d776df6e..deaa3eeb772 100644 --- a/clang/include/clang/Basic/TargetInfo.h +++ b/clang/include/clang/Basic/TargetInfo.h @@ -136,6 +136,10 @@ public: /// typedef void* __builtin_va_list; VoidPtrBuiltinVaList, + /// __builtin_va_list as defind by the AArch64 ABI + /// http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055a/IHI0055A_aapcs64.pdf + AArch64ABIBuiltinVaList, + /// __builtin_va_list as defined by the PNaCl ABI: /// http://www.chromium.org/nativeclient/pnacl/bitcode-abi#TOC-Machine-Types PNaClABIBuiltinVaList, |