[AIX][PowerPC] Define __powerpc and __PPC macros

%%%
This patch defines the macros __powerpc and __PPC on AIX to be consistent with XL for AIX. See: https://www.ibm.com/docs/en/xl-c-and-cpp-aix/13.1.0?topic=macros-related-platform

Note: GCC does not currently define __powerpc and __PPC so users should prefer the __powerpc__ and __PPC__ forms.
%%%

Reviewed By: cebowleratibm

Differential Revision: https://reviews.llvm.org/D108917
This commit is contained in:
Jake Egan 2021-09-02 13:29:26 -04:00
parent 803141c7a7
commit 37f23ea97f
2 changed files with 7 additions and 0 deletions

View File

@ -264,6 +264,9 @@ void PPCTargetInfo::getTargetDefines(const LangOptions &Opts,
}
if (getTriple().isOSAIX()) {
Builder.defineMacro("__THW_PPC__");
// Define __PPC and __powerpc for AIX XL C/C++ compatibility
Builder.defineMacro("__PPC");
Builder.defineMacro("__powerpc");
}
// Target properties.

View File

@ -322,6 +322,7 @@
// PPC:#define __NATURAL_ALIGNMENT__ 1
// PPC:#define __POINTER_WIDTH__ 32
// PPC:#define __POWERPC__ 1
// PPC-NOT:#define __PPC 1
// PPC:#define __PPC__ 1
// PPC:#define __PTRDIFF_TYPE__ long int
// PPC:#define __PTRDIFF_WIDTH__ 32
@ -386,6 +387,7 @@
// PPC:#define __WCHAR_WIDTH__ 32
// PPC:#define __WINT_TYPE__ int
// PPC:#define __WINT_WIDTH__ 32
// PPC-NOT:#define __powerpc 1
// PPC:#define __ppc__ 1
// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-ibm-aix7.1.0.0 -fno-signed-char < /dev/null | FileCheck -match-full-lines -check-prefix PPC-AIX %s
@ -520,6 +522,7 @@
// PPC-AIX-NOT:#define __NATURAL_ALIGNMENT__ 1
// PPC-AIX:#define __POINTER_WIDTH__ 32
// PPC-AIX:#define __POWERPC__ 1
// PPC-AIX:#define __PPC 1
// PPC-AIX:#define __PPC__ 1
// PPC-AIX:#define __PTRDIFF_TYPE__ long int
// PPC-AIX:#define __PTRDIFF_WIDTH__ 32
@ -587,6 +590,7 @@
// PPC-AIX:#define __WCHAR_WIDTH__ 16
// PPC-AIX:#define __WINT_TYPE__ int
// PPC-AIX:#define __WINT_WIDTH__ 32
// PPC-AIX:#define __powerpc 1
// PPC-AIX:#define __powerpc__ 1
// PPC-AIX:#define __ppc__ 1