diff --git a/clang/lib/Basic/Targets/PPC.cpp b/clang/lib/Basic/Targets/PPC.cpp --- a/clang/lib/Basic/Targets/PPC.cpp +++ b/clang/lib/Basic/Targets/PPC.cpp @@ -264,6 +264,9 @@ } 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. diff --git a/clang/test/Preprocessor/init-ppc.c b/clang/test/Preprocessor/init-ppc.c --- a/clang/test/Preprocessor/init-ppc.c +++ b/clang/test/Preprocessor/init-ppc.c @@ -517,6 +517,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 @@ -584,6 +585,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