Index: cfe/trunk/docs/doxygen.cfg.in =================================================================== --- cfe/trunk/docs/doxygen.cfg.in +++ cfe/trunk/docs/doxygen.cfg.in @@ -1925,7 +1925,7 @@ # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -PREDEFINED = LLVM_ALIGNAS(x)= +PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The Index: clang-tools-extra/trunk/docs/doxygen.cfg.in =================================================================== --- clang-tools-extra/trunk/docs/doxygen.cfg.in +++ clang-tools-extra/trunk/docs/doxygen.cfg.in @@ -1937,7 +1937,7 @@ # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -PREDEFINED = LLVM_ALIGNAS(x)= +PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The Index: llvm/trunk/cmake/modules/HandleLLVMOptions.cmake =================================================================== --- llvm/trunk/cmake/modules/HandleLLVMOptions.cmake +++ llvm/trunk/cmake/modules/HandleLLVMOptions.cmake @@ -530,14 +530,6 @@ # is fixed. -wd4709 # Suppress comma operator within array index expression - # Ideally, we'd like this warning to be enabled, but MSVC 2013 doesn't - # support the 'aligned' attribute in the way that clang sources requires (for - # any code that uses the LLVM_ALIGNAS macro), so this is must be disabled to - # avoid unwanted alignment warnings. - # When we switch to requiring a version of MSVC that supports the 'alignas' - # specifier (MSVC 2015?) this warning can be re-enabled. - -wd4324 # Suppress 'structure was padded due to __declspec(align())' - # Promoted warnings. -w14062 # Promote 'enumerator in switch of enum is not handled' to level 1 warning. Index: llvm/trunk/docs/doxygen.cfg.in =================================================================== --- llvm/trunk/docs/doxygen.cfg.in +++ llvm/trunk/docs/doxygen.cfg.in @@ -1926,7 +1926,7 @@ # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -PREDEFINED = LLVM_ALIGNAS(x)= +PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The Index: llvm/trunk/include/llvm/Support/Compiler.h =================================================================== --- llvm/trunk/include/llvm/Support/Compiler.h +++ llvm/trunk/include/llvm/Support/Compiler.h @@ -338,14 +338,6 @@ # define LLVM_ASSUME_ALIGNED(p, a) (p) #endif -/// \macro LLVM_ALIGNAS -/// Used to specify a minimum alignment for a structure or variable. -#if __GNUC__ && !__has_feature(cxx_alignas) && !LLVM_GNUC_PREREQ(4, 8, 1) -# define LLVM_ALIGNAS(x) __attribute__((aligned(x))) -#else -# define LLVM_ALIGNAS(x) alignas(x) -#endif - /// \macro LLVM_PACKED /// Used to specify a packed structure. /// LLVM_PACKED( @@ -376,8 +368,8 @@ /// \macro LLVM_PTR_SIZE /// A constant integer equivalent to the value of sizeof(void*). -/// Generally used in combination with LLVM_ALIGNAS or when doing computation in -/// the preprocessor. +/// Generally used in combination with alignas or when doing computation in the +/// preprocessor. #ifdef __SIZEOF_POINTER__ # define LLVM_PTR_SIZE __SIZEOF_POINTER__ #elif defined(_WIN64) Index: llvm/trunk/unittests/Support/AlignOfTest.cpp =================================================================== --- llvm/trunk/unittests/Support/AlignOfTest.cpp +++ llvm/trunk/unittests/Support/AlignOfTest.cpp @@ -38,10 +38,10 @@ #endif // Define some fixed alignment types to use in these tests. -struct LLVM_ALIGNAS(1) A1 {}; -struct LLVM_ALIGNAS(2) A2 {}; -struct LLVM_ALIGNAS(4) A4 {}; -struct LLVM_ALIGNAS(8) A8 {}; +struct alignas(1) A1 {}; +struct alignas(2) A2 {}; +struct alignas(4) A4 {}; +struct alignas(8) A8 {}; struct S1 {}; struct S2 { char a; };