From 5c8973517f66158ef553d3e2be18f029cb0443d4 Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Wed, 15 Feb 2017 07:50:11 +0000 Subject: [PATCH] Add a definition for __STRUCT_PARM_ALIGN__ for elfv2 and 64-bit darwin platforms to match what other compilers produce. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@295156 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Basic/Targets.cpp | 5 +++++ test/Preprocessor/init.c | 1 + 2 files changed, 6 insertions(+) diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 2ccb45902e..647b14e16d 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -1232,6 +1232,11 @@ void PPCTargetInfo::getTargetDefines(const LangOptions &Opts, if (LongDoubleWidth == 128) Builder.defineMacro("__LONG_DOUBLE_128__"); + // Define this for elfv2 (64-bit only) or 64-bit darwin. + if (ABI == "elfv2" || + (getTriple().getOS() == llvm::Triple::Darwin && PointerWidth == 64)) + Builder.defineMacro("__STRUCT_PARM_ALIGN__", "16"); + if (Opts.AltiVec) { Builder.defineMacro("__VEC__", "10206"); Builder.defineMacro("__ALTIVEC__"); diff --git a/test/Preprocessor/init.c b/test/Preprocessor/init.c index 6ab86de2ff..a7726e3111 100644 --- a/test/Preprocessor/init.c +++ b/test/Preprocessor/init.c @@ -5635,6 +5635,7 @@ // PPC64LE:#define __SIZE_MAX__ 18446744073709551615UL // PPC64LE:#define __SIZE_TYPE__ long unsigned int // PPC64LE:#define __SIZE_WIDTH__ 64 +// PPC64LE:#define __STRUCT_PARM_ALIGN__ 16 // PPC64LE:#define __UINT16_C_SUFFIX__ // PPC64LE:#define __UINT16_MAX__ 65535 // PPC64LE:#define __UINT16_TYPE__ unsigned short -- 2.40.0