Add an LLVM_PTR_SIZE macro to make LLVM_ALIGNAS more useful
authorReid Kleckner <reid@kleckner.net>
Thu, 2 Apr 2015 17:43:35 +0000 (17:43 +0000)
committerReid Kleckner <reid@kleckner.net>
Thu, 2 Apr 2015 17:43:35 +0000 (17:43 +0000)
commit2647380f59e9ca91822d56ca2091004435e09655
tree6431e51c302182bf814e846f2b4981b80b8506ce
parent5e66a2ab596b650aa136a449e22158ad117a4d5e
Add an LLVM_PTR_SIZE macro to make LLVM_ALIGNAS more useful

MSVC 2013 requires the argument to __declspec(align()) to be an integer
constant expression that doesn't involve any identifiers like sizeof.

For GCC and Clang, LLVM_PTR_SIZE is equivalent to __SIZEOF_POINTER__,
which dates back to GCC 4.6 and Clang 2010. If that's not available, we
get sizeof(void*), which works with alignas() and
__attribute__((aligned())).

For MSVC, LLVM_PTR_SIZE is 4 or 8 depending on _WIN64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233929 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Support/Compiler.h