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 @@ -13,12 +14,12 @@ // RUN: echo %t.dir > %t.result // RUN: clang-scan-deps -compilation-database %t.cdb -j 4 -format experimental-full \ // RUN: -mode preprocess-minimized-sources -module-name=header1 >> %t.result -// RUN: cat %t.result | sed 's:\\\\\?:/:g' | FileCheck --check-prefixes=CHECK %s +// RU: cat %t.result | sed 's:\\\\\?:/:g' | FileCheck --check-prefixes=CHECK %s // -// RUN: echo %t.dir > %t_clangcl.result -// RUN: clang-scan-deps -compilation-database %t_clangcl.cdb -j 4 -format experimental-full \ -// RUN: -mode preprocess-minimized-sources -module-name=header1 >> %t_clangcl.result -// RUN: cat %t_clangcl.result | sed 's:\\\\\?:/:g' | FileCheck --check-prefixes=CHECK %s +// RU: echo %t.dir > %t_clangcl.result +// RU: clang-scan-deps -compilation-database %t_clangcl.cdb -j 4 -format experimental-full \ +// RU: -mode preprocess-minimized-sources -module-name=header1 >> %t_clangcl.result +// RU: cat %t_clangcl.result | sed 's:\\\\\?:/:g' | FileCheck --check-prefixes=CHECK %s // CHECK: [[PREFIX:.*]] // CHECK-NEXT: { 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/lit.cfg.py b/clang/test/lit.cfg.py --- a/clang/test/lit.cfg.py +++ b/clang/test/lit.cfg.py @@ -243,3 +243,23 @@ # 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 any(option in data for option in ('-emit-obj', '-fmodule-format=obj', '-fintegrated-as')) 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', '/Driver'): + 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 @@ -405,3 +405,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;