diff --git a/clang/test/ASTMerge/anonymous-fields/test.cpp b/clang/test/ASTMerge/anonymous-fields/test.cpp --- a/clang/test/ASTMerge/anonymous-fields/test.cpp +++ b/clang/test/ASTMerge/anonymous-fields/test.cpp @@ -1,3 +1,4 @@ +// UNSUPPORTED: powerpc64-ibm-aix // RUN: %clang_cc1 -emit-pch -o %t.1.ast %S/Inputs/anonymous-fields1.cpp // RUN: %clang_cc1 -emit-pch -o %t.2.ast %S/Inputs/anonymous-fields2.cpp // RUN: %clang_cc1 -emit-obj -o /dev/null -ast-merge %t.1.ast -ast-merge %t.2.ast %s diff --git a/clang/test/ASTMerge/codegen-body/test.c b/clang/test/ASTMerge/codegen-body/test.c --- a/clang/test/ASTMerge/codegen-body/test.c +++ b/clang/test/ASTMerge/codegen-body/test.c @@ -1,5 +1,5 @@ +// UNSUPPORTED: powerpc64-ibm-aix // RUN: %clang_cc1 -emit-pch -o %t.1.ast %S/Inputs/body1.c // RUN: %clang_cc1 -emit-pch -o %t.2.ast %S/Inputs/body2.c // RUN: %clang_cc1 -emit-obj -o /dev/null -ast-merge %t.1.ast -ast-merge %t.2.ast %s // expected-no-diagnostics - diff --git a/clang/test/ASTMerge/injected-class-name-decl/test.cpp b/clang/test/ASTMerge/injected-class-name-decl/test.cpp --- a/clang/test/ASTMerge/injected-class-name-decl/test.cpp +++ b/clang/test/ASTMerge/injected-class-name-decl/test.cpp @@ -1,3 +1,4 @@ +// UNSUPPORTED: powerpc64-ibm-aix // RUN: %clang_cc1 -std=c++1z -emit-pch -o %t.ast %S/Inputs/inject1.cpp // RUN: %clang_cc1 -std=c++1z -emit-obj -o /dev/null -ast-merge %t.ast %S/Inputs/inject2.cpp // expected-no-diagnostics diff --git a/clang/test/ClangScanDeps/modules-full-by-mod-name.cpp b/clang/test/ClangScanDeps/modules-full-by-mod-name.cpp --- a/clang/test/ClangScanDeps/modules-full-by-mod-name.cpp +++ b/clang/test/ClangScanDeps/modules-full-by-mod-name.cpp @@ -1,3 +1,4 @@ +// UNSUPPORTED: powerpc64-ibm-aix // RUN: rm -rf %t.dir // RUN: rm -rf %t.cdb // RUN: mkdir -p %t.dir diff --git a/clang/test/ClangScanDeps/resource_directory.c b/clang/test/ClangScanDeps/resource_directory.c --- a/clang/test/ClangScanDeps/resource_directory.c +++ b/clang/test/ClangScanDeps/resource_directory.c @@ -1,3 +1,4 @@ +// UNSUPPORTED: powerpc64-ibm-aix // REQUIRES: shell // RUN: rm -rf %t && mkdir %t diff --git a/clang/test/Driver/as-version.s b/clang/test/Driver/as-version.s --- a/clang/test/Driver/as-version.s +++ b/clang/test/Driver/as-version.s @@ -1,6 +1,6 @@ // Test version information. -// UNSUPPORTED: -zos +// UNSUPPORTED: -zos, powerpc64-ibm-aix // RUN: %clang -Wa,--version -c -fintegrated-as %s -o /dev/null \ // RUN: | FileCheck --check-prefix=IAS %s // IAS: clang version diff --git a/clang/test/Driver/cc-print-proc-stat.c b/clang/test/Driver/cc-print-proc-stat.c --- a/clang/test/Driver/cc-print-proc-stat.c +++ b/clang/test/Driver/cc-print-proc-stat.c @@ -1,3 +1,4 @@ +// UNSUPPORTED: powerpc64-ibm-aix // RUN: env CC_PRINT_PROC_STAT=1 \ // RUN: CC_PRINT_PROC_STAT_FILE=%t.csv \ // RUN: %clang -no-canonical-prefixes -S -o %t.s %s diff --git a/clang/test/Driver/compilation_database.c b/clang/test/Driver/compilation_database.c --- a/clang/test/Driver/compilation_database.c +++ b/clang/test/Driver/compilation_database.c @@ -1,3 +1,4 @@ +// UNSUPPORTED: powerpc64-ibm-aix // RUN: mkdir -p %t.workdir && cd %t.workdir // RUN: %clang -fintegrated-as -MD -MP --sysroot=somewhere -c -x c %s -xc++ %s -Wall -MJ - -no-canonical-prefixes 2>&1 | FileCheck %s // RUN: not %clang -c -x c %s -MJ %s/non-existant -no-canonical-prefixes 2>&1 | FileCheck --check-prefix=ERROR %s diff --git a/clang/test/Driver/modules-ts.cpp b/clang/test/Driver/modules-ts.cpp --- a/clang/test/Driver/modules-ts.cpp +++ b/clang/test/Driver/modules-ts.cpp @@ -1,3 +1,4 @@ +// UNSUPPORTED: powerpc64-ibm-aix // Check compiling a module interface to a .pcm file. // // RUN: %clang -fmodules-ts -x c++-module --precompile %s -o %t.pcm -v 2>&1 | FileCheck %s --check-prefix=CHECK-PRECOMPILE diff --git a/clang/test/Driver/report-stat.c b/clang/test/Driver/report-stat.c --- a/clang/test/Driver/report-stat.c +++ b/clang/test/Driver/report-stat.c @@ -1,3 +1,4 @@ +// UNSUPPORTED: powerpc64-ibm-aix // RUN: %clang -c -fproc-stat-report -fintegrated-as %s | FileCheck %s // CHECK: clang{{.*}}: output={{.*}}.o, total={{[0-9.]+}} ms, user={{[0-9.]+}} ms, mem={{[0-9]+}} Kb diff --git a/clang/test/lit.cfg.py b/clang/test/lit.cfg.py --- a/clang/test/lit.cfg.py +++ b/clang/test/lit.cfg.py @@ -240,3 +240,22 @@ # Add a vendor-specific feature. if config.clang_vendor_uti: config.available_features.add('clang-vendor=' + config.clang_vendor_uti) + +def exclude_unsupported_files_for_aix(dirname): + for filename in os.listdir(dirname): + source_path = os.path.join( dirname, filename) + if os.path.isdir(source_path): + continue + f = open(source_path, 'r', encoding='ISO-8859-1') + try: + data = f.read() + # 64-bit object files are not supported on AIX, so exclude the tests. + if ('-emit-obj' in data or '-fmodule-format=obj' in data) and '64' in config.target_triple: + config.excludes += [ filename ] + finally: + f.close() + +if 'aix' in config.target_triple: + for directory in ('/CodeGenCXX', '/Misc', '/Modules', '/PCH'): + exclude_unsupported_files_for_aix(config.test_source_root + directory) + diff --git a/llvm/test/LTO/X86/remangle_intrinsics.ll b/llvm/test/LTO/X86/remangle_intrinsics.ll --- a/llvm/test/LTO/X86/remangle_intrinsics.ll +++ b/llvm/test/LTO/X86/remangle_intrinsics.ll @@ -1,3 +1,4 @@ +; UNSUPPORTED: powerpc64-ibm-aix ; RUN: llvm-as < %s > %t1 ; RUN: llvm-as < %p/Inputs/remangle_intrinsics.ll > %t2 ; RUN: llvm-lto %t1 %t2 | FileCheck %s diff --git a/llvm/test/lit.cfg.py b/llvm/test/lit.cfg.py --- a/llvm/test/lit.cfg.py +++ b/llvm/test/lit.cfg.py @@ -402,3 +402,22 @@ if "MemoryWithOrigins" in config.llvm_use_sanitizer: config.available_features.add('use_msan_with_origins') + +def exclude_unsupported_files_for_aix(dirname): + for filename in os.listdir(dirname): + source_path = os.path.join( dirname, filename) + if os.path.isdir(source_path): + continue + f = open(source_path, 'r') + try: + data = f.read() + # 64-bit object files are not supported on AIX, so exclude the tests. + if ('-emit-obj' in data or '-filetype=obj' in data) and '64' in config.target_triple: + config.excludes += [ filename ] + finally: + f.close() + +if 'aix' in config.target_triple: + for directory in ('/CodeGen/X86', '/DebugInfo', '/DebugInfo/X86', '/DebugInfo/Generic', '/LTO/X86', '/Linker'): + exclude_unsupported_files_for_aix(config.test_source_root + directory) + diff --git a/llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp b/llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp --- a/llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp +++ b/llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp @@ -1131,7 +1131,11 @@ EXPECT_STREQ(String1, *Extracted3); } +#if defined(_AIX) && defined(__64BIT__) +TEST(DWARFDebugInfo, DISABLED_TestEmptyStringOffsets) { +#else TEST(DWARFDebugInfo, TestEmptyStringOffsets) { +#endif Triple Triple = getNormalizedDefaultTargetTriple(); if (!isObjectEmissionSupported(Triple)) return; @@ -1160,7 +1164,11 @@ DwarfContext->getDWARFObj().getStrOffsetsSection().Data.empty()); } +#if defined(_AIX) && defined(__64BIT__) +TEST(DWARFDebugInfo, DISABLED_TestRelations) { +#else TEST(DWARFDebugInfo, TestRelations) { +#endif Triple Triple = getNormalizedDefaultTargetTriple(); if (!isObjectEmissionSupported(Triple)) return; @@ -1347,7 +1355,11 @@ EXPECT_FALSE(DefaultDie.getSibling().isValid()); } +#if defined(_AIX) && defined(__64BIT__) +TEST(DWARFDebugInfo, DISABLED_TestChildIterators) { +#else TEST(DWARFDebugInfo, TestChildIterators) { +#endif Triple Triple = getNormalizedDefaultTargetTriple(); if (!isObjectEmissionSupported(Triple)) return; @@ -1456,7 +1468,11 @@ EXPECT_EQ(CUDie.begin(), CUDie.end()); } +#if defined(_AIX) && defined(__64BIT__) +TEST(DWARFDebugInfo, DISABLED_TestAttributeIterators) { +#else TEST(DWARFDebugInfo, TestAttributeIterators) { +#endif Triple Triple = getNormalizedDefaultTargetTriple(); if (!isObjectEmissionSupported(Triple)) return; @@ -1518,7 +1534,11 @@ EXPECT_EQ(E, ++I); } +#if defined(_AIX) && defined(__64BIT__) +TEST(DWARFDebugInfo, DISABLED_TestFindRecurse) { +#else TEST(DWARFDebugInfo, TestFindRecurse) { +#endif Triple Triple = getNormalizedDefaultTargetTriple(); if (!isObjectEmissionSupported(Triple)) return; @@ -1732,7 +1752,11 @@ // Test } +#if defined(_AIX) && defined(__64BIT__) +TEST(DWARFDebugInfo, DISABLED_TestFindAttrs) { +#else TEST(DWARFDebugInfo, TestFindAttrs) { +#endif Triple Triple = getNormalizedDefaultTargetTriple(); if (!isObjectEmissionSupported(Triple)) return; @@ -1795,7 +1819,11 @@ EXPECT_EQ(DieMangled, toString(NameOpt, "")); } +#if defined(_AIX) && defined(__64BIT__) +TEST(DWARFDebugInfo, DISABLED_TestImplicitConstAbbrevs) { +#else TEST(DWARFDebugInfo, TestImplicitConstAbbrevs) { +#endif Triple Triple = getNormalizedDefaultTargetTriple(); if (!isObjectEmissionSupported(Triple)) return;