diff options
| author | Mingming Liu <mingmingl@google.com> | 2025-09-10 15:25:31 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-10 15:25:31 -0700 |
| commit | 1417dafa1db9cb1b2b09438aa9f53ea5ab6e36e2 (patch) | |
| tree | 57f4b1f313c8cf74eed8819870f39c36ea263c68 /libcxx/test/extensions | |
| parent | 898b813bc8a6d0276bf0f4769f5f2f64b34e632d (diff) | |
| parent | b8cefcb601ddaa18482555c4ff363c01a270c2fe (diff) | |
Merge branch 'main' into users/mingmingl-llvm/samplefdo-profile-formatusers/mingmingl-llvm/samplefdo-profile-format
Diffstat (limited to 'libcxx/test/extensions')
4 files changed, 85 insertions, 69 deletions
diff --git a/libcxx/test/extensions/clang/clang_modules_include.gen.py b/libcxx/test/extensions/clang/clang_modules_include.gen.py index 379ac22c8f47..28661049d6e8 100644 --- a/libcxx/test/extensions/clang/clang_modules_include.gen.py +++ b/libcxx/test/extensions/clang/clang_modules_include.gen.py @@ -10,9 +10,32 @@ # This is important notably because the LLDB data formatters use # libc++ headers with modules enabled. -# RUN: %{python} %s %{libcxx-dir}/utils +# Older macOS SDKs were not properly modularized, which causes issues with localization. +# This feature should instead be based on the SDK version. +# UNSUPPORTED: stdlib=system && target={{.+}}-apple-macosx13{{.*}} + +# GCC doesn't support -fcxx-modules +# UNSUPPORTED: gcc + +# The Windows headers don't appear to be compatible with modules +# UNSUPPORTED: windows +# UNSUPPORTED: buildhost=windows + +# The Android headers don't appear to be compatible with modules yet +# UNSUPPORTED: LIBCXX-ANDROID-FIXME + +# TODO: Investigate this failure +# UNSUPPORTED: LIBCXX-FREEBSD-FIXME + +# TODO: Investigate why this doesn't work on Picolibc once the locale base API is refactored +# UNSUPPORTED: LIBCXX-PICOLIBC-FIXME + +# TODO: Fix seemingly circular inclusion or <wchar.h> on AIX +# UNSUPPORTED: LIBCXX-AIX-FIXME -# block Lit from interpreting a RUN/XFAIL/etc inside the generation script +# UNSUPPORTED: FROZEN-CXX03-HEADERS-FIXME + +# RUN: %{python} %s %{libcxx-dir}/utils # END. import sys @@ -29,31 +52,6 @@ for header in public_headers: //--- {header}.compile.pass.cpp // RUN: %{{cxx}} %s %{{flags}} %{{compile_flags}} -fmodules -fcxx-modules -fmodules-cache-path=%t -fsyntax-only -// Older macOS SDKs were not properly modularized, which causes issues with localization. -// This feature should instead be based on the SDK version. -// UNSUPPORTED: stdlib=system && target={{{{.+}}}}-apple-macosx13{{{{.*}}}} - -// GCC doesn't support -fcxx-modules -// UNSUPPORTED: gcc - -// The Windows headers don't appear to be compatible with modules -// UNSUPPORTED: windows -// UNSUPPORTED: buildhost=windows - -// The Android headers don't appear to be compatible with modules yet -// UNSUPPORTED: LIBCXX-ANDROID-FIXME - -// TODO: Investigate this failure -// UNSUPPORTED: LIBCXX-FREEBSD-FIXME - -// TODO: Investigate why this doesn't work on Picolibc once the locale base API is refactored -// UNSUPPORTED: LIBCXX-PICOLIBC-FIXME - -// TODO: Fix seemingly circular inclusion or <wchar.h> on AIX -// UNSUPPORTED: LIBCXX-AIX-FIXME - -// UNSUPPORTED: FROZEN-CXX03-HEADERS-FIXME - {lit_header_restrictions.get(header, '')} {lit_header_undeprecations.get(header, '')} @@ -68,30 +66,6 @@ print( // REQUIRES: clang-modules-build -// Older macOS SDKs were not properly modularized, which causes issues with localization. -// This feature should instead be based on the SDK version. -// UNSUPPORTED: stdlib=system && target={{{{.+}}}}-apple-macosx13{{{{.*}}}} - -// GCC doesn't support -fcxx-modules -// UNSUPPORTED: gcc - -// The Windows headers don't appear to be compatible with modules -// UNSUPPORTED: windows -// UNSUPPORTED: buildhost=windows - -// The Android headers don't appear to be compatible with modules yet -// UNSUPPORTED: LIBCXX-ANDROID-FIXME - -// TODO: Investigate this failure -// UNSUPPORTED: LIBCXX-FREEBSD-FIXME - -// TODO: Investigate why this doesn't work on Picolibc once the locale base API is refactored -// UNSUPPORTED: LIBCXX-PICOLIBC-FIXME - -// TODO: Fix seemingly circular inclusion or <wchar.h> on AIX -// UNSUPPORTED: LIBCXX-AIX-FIXME - @import std; - """ ) diff --git a/libcxx/test/extensions/clang/thread/thread.mutex/lock.verify.cpp b/libcxx/test/extensions/clang/thread/thread.mutex/lock.verify.cpp new file mode 100644 index 000000000000..51ffa6962ac8 --- /dev/null +++ b/libcxx/test/extensions/clang/thread/thread.mutex/lock.verify.cpp @@ -0,0 +1,47 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// UNSUPPORTED: no-threads + +// <mutex> + +// GCC doesn't have thread safety attributes +// UNSUPPORTED: gcc + +// ADDITIONAL_COMPILE_FLAGS: -Wthread-safety -Wno-comment + +// XFAIL: FROZEN-CXX03-HEADERS-FIXME + +#include <mutex> + +#include "test_macros.h" + +std::mutex m0; +std::mutex m1; +std::mutex m2; +std::mutex m3; + +void f1() { + std::lock(m0, m1); +} // expected-warning {{mutex 'm0' is still held at the end of function}} \ + expected-warning {{mutex 'm1' is still held at the end of function}} + +#if TEST_STD_VER >= 11 && defined(TEST_CLANG_VER) && TEST_CLANG_VER >= 2101 +void f2() { + std::lock(m0, m1, m2); +} // expected-warning {{mutex 'm0' is still held at the end of function}} \ + expected-warning {{mutex 'm1' is still held at the end of function}} \ + expected-warning {{mutex 'm2' is still held at the end of function}} + +void f3() { + std::lock(m0, m1, m2, m3); +} // expected-warning {{mutex 'm0' is still held at the end of function}} \ + expected-warning {{mutex 'm1' is still held at the end of function}} \ + expected-warning {{mutex 'm2' is still held at the end of function}} \ + expected-warning {{mutex 'm3' is still held at the end of function}} +#endif diff --git a/libcxx/test/extensions/libcxx/depr/depr.c.headers/extern_c.pass.cpp b/libcxx/test/extensions/libcxx/depr/depr.c.headers/extern_c.pass.cpp index f756aacbc1cd..33b55c4bb195 100644 --- a/libcxx/test/extensions/libcxx/depr/depr.c.headers/extern_c.pass.cpp +++ b/libcxx/test/extensions/libcxx/depr/depr.c.headers/extern_c.pass.cpp @@ -10,14 +10,10 @@ // that we don't want to support and can't support with LSV enabled. // UNSUPPORTED: clang-modules-build -// XFAIL: FROZEN-CXX03-HEADERS-FIXME - // Sometimes C++'s <foo.h> headers get included within extern "C" contexts. This // is ill-formed (no diagnostic required), per [using.headers]p3, but we permit // it as an extension. -#include <__config> - extern "C" { #include <assert.h> // complex.h is not supported in extern "C". diff --git a/libcxx/test/extensions/posix/xopen_source.gen.py b/libcxx/test/extensions/posix/xopen_source.gen.py index d4a3651181ca..ec0d981d67b2 100644 --- a/libcxx/test/extensions/posix/xopen_source.gen.py +++ b/libcxx/test/extensions/posix/xopen_source.gen.py @@ -10,7 +10,19 @@ # We may not want to guarantee this forever, but since this works today and # it's something that users rely on, it makes sense to put a test on it. # -# https://github.com/llvm/llvm-project/issues/117630 +# https://llvm.org/PR117630 + +# Some parts of the code like <fstream> use non-standard functions in their implementation, +# and these functions are not provided when _XOPEN_SOURCE is set to older values. This +# breaks when building with modules even when we don't use the offending headers directly. +# UNSUPPORTED: clang-modules-build + +# The AIX localization support uses some functions as part of their headers that require a +# recent value of _XOPEN_SOURCE. +# UNSUPPORTED: LIBCXX-AIX-FIXME + +# This test fails on FreeBSD for an unknown reason. +# UNSUPPORTED: LIBCXX-FREEBSD-FIXME # RUN: %{python} %s %{libcxx-dir}/utils # END. @@ -33,19 +45,6 @@ for header in public_headers: print( f"""\ //--- {header}.xopen_source_{version}.compile.pass.cpp - -// Some parts of the code like <fstream> use non-standard functions in their implementation, -// and these functions are not provided when _XOPEN_SOURCE is set to older values. This -// breaks when building with modules even when we don't use the offending headers directly. -// UNSUPPORTED: clang-modules-build - -// The AIX localization support uses some functions as part of their headers that require a -// recent value of _XOPEN_SOURCE. -// UNSUPPORTED: LIBCXX-AIX-FIXME - -// This test fails on FreeBSD for an unknown reason. -// UNSUPPORTED: LIBCXX-FREEBSD-FIXME - {lit_header_restrictions.get(header, '')} {lit_header_undeprecations.get(header, '')} |
