r374133 - [c++20] Implement most of P1152R4.

David Zarzycki via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 11 03:59:02 PDT 2019


Hi Richard,

This breaks libcxx and libcxxabi my local stage two build bot (Fedora 31 x86_64). Is this expected? Can we revert this?

FAIL: libc++ :: std/utilities/meta/meta.rel/is_invocable.pass.cpp (55505 of 58603)
******************** TEST 'libc++ :: std/utilities/meta/meta.rel/is_invocable.pass.cpp' FAILED ********************
Command: ['/p/tllvm/bin/clang++', '-o', '/tmp/_update_lc/t/projects/libcxx/test/std/utilities/meta/meta.rel/Output/is_invocable.pass.cpp.o', '-x', 'c++', '/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.rel/is_invocable.pass.cpp', '-c', '-v', '-ftemplate-depth=270', '-Werror=thread-safety', '-std=c++2a', '-include', '/home/dave/s/lp/libcxx/test/support/nasty_macros.h', '-nostdinc++', '-I/home/dave/s/lp/libcxx/include', '-I/tmp/_update_lc/t/projects/libcxx/include/c++build', '-D__STDC_FORMAT_MACROS', '-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', '-I/home/dave/s/lp/libcxx/test/support', '-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py"', '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', '-Wall', '-Wextra', '-Werror', '-Wuser-defined-warnings', '-Wshadow', '-Wno-unused-command-line-argument', '-Wno-attributes', '-Wno-pessimizing-move', '-Wno-c++11-extensions', '-Wno-user-defined-literals', '-Wno-noexcept-type', '-Wsign-compare', '-Wunused-variable', '-Wunused-parameter', '-Wunreachable-code', '-c']
Exit Code: 1
Standard Error:
--
clang version 10.0.0 (/home/dave/s/lp/clang 0746aafd89754a2ae9992c4d6394e3b4f3623b1d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /p/tllvm/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
 "/p/tllvm/bin/clang-10" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name is_invocable.pass.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -nostdinc++ -resource-dir /p/tllvm/lib64/clang/10.0.0 -include /home/dave/s/lp/libcxx/test/support/nasty_macros.h -I /home/dave/s/lp/libcxx/include -I /tmp/_update_lc/t/projects/libcxx/include/c++build -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /home/dave/s/lp/libcxx/test/support -D "LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=\"/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=\"/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=\"/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py\"" -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -internal-isystem /usr/local/include -internal-isystem /p/tllvm/lib64/clang/10.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror=thread-safety -Wall -Wextra -Werror -Wuser-defined-warnings -Wshadow -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -std=c++2a -fdeprecated-macro -fdebug-compilation-dir /tmp/_update_lc/t/projects/libcxx/test/std/utilities/meta/meta.rel -ftemplate-depth 270 -ferror-limit 19 -fmessage-length 0 -fno-implicit-modules -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -faddrsig -o /tmp/_update_lc/t/projects/libcxx/test/std/utilities/meta/meta.rel/Output/is_invocable.pass.cpp.o -x c++ /home/dave/s/lp/libcxx/test/std/utilities/meta/meta.rel/is_invocable.pass.cpp
clang -cc1 version 10.0.0 based upon LLVM 10.0.0svn default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/dave/s/lp/libcxx/include
 /tmp/_update_lc/t/projects/libcxx/include/c++build
 /home/dave/s/lp/libcxx/test/support
 /usr/local/include
 /p/tllvm/lib64/clang/10.0.0/include
 /usr/include
End of search list.
In file included from /home/dave/s/lp/libcxx/test/std/utilities/meta/meta.rel/is_invocable.pass.cpp:21:
/home/dave/s/lp/libcxx/include/type_traits:1123:22: error: volatile-qualified return type 'volatile void' is deprecated [-Werror,-Wdeprecated-volatile]
template <class _Tp> _Tp   __declval(long);
                     ^
/home/dave/s/lp/libcxx/include/type_traits:3640:31: note: in instantiation of template class 'std::__1::__invokable_r<void, volatile void>' requested here
    : integral_constant<bool, __invokable<_Fn, _Args...>::value> {};
                              ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.rel/is_invocable.pass.cpp:56:25: note: in instantiation of template class 'std::__1::is_invocable<volatile void>' requested here
    static_assert(!std::is_invocable<volatile void>::value, "");
                        ^
In file included from /home/dave/s/lp/libcxx/test/std/utilities/meta/meta.rel/is_invocable.pass.cpp:21:
/home/dave/s/lp/libcxx/include/type_traits:1123:22: error: volatile-qualified return type 'const volatile void' is deprecated [-Werror,-Wdeprecated-volatile]
template <class _Tp> _Tp   __declval(long);
                     ^
/home/dave/s/lp/libcxx/include/type_traits:3640:31: note: in instantiation of template class 'std::__1::__invokable_r<void, const volatile void>' requested here
    : integral_constant<bool, __invokable<_Fn, _Args...>::value> {};
                              ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.rel/is_invocable.pass.cpp:57:25: note: in instantiation of template class 'std::__1::is_invocable<const volatile void>' requested here
    static_assert(!std::is_invocable<const volatile void>::value, "");
                        ^
2 errors generated.
--

Compilation failed unexpectedly!
********************
FAIL: libc++ :: std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp (55513 of 58603)
******************** TEST 'libc++ :: std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp' FAILED ********************
Command: ['/p/tllvm/bin/clang++', '-o', '/tmp/_update_lc/t/projects/libcxx/test/std/utilities/meta/meta.rel/Output/is_nothrow_invocable.pass.cpp.o', '-x', 'c++', '/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp', '-c', '-v', '-ftemplate-depth=270', '-Werror=thread-safety', '-std=c++2a', '-include', '/home/dave/s/lp/libcxx/test/support/nasty_macros.h', '-nostdinc++', '-I/home/dave/s/lp/libcxx/include', '-I/tmp/_update_lc/t/projects/libcxx/include/c++build', '-D__STDC_FORMAT_MACROS', '-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', '-I/home/dave/s/lp/libcxx/test/support', '-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py"', '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', '-Wall', '-Wextra', '-Werror', '-Wuser-defined-warnings', '-Wshadow', '-Wno-unused-command-line-argument', '-Wno-attributes', '-Wno-pessimizing-move', '-Wno-c++11-extensions', '-Wno-user-defined-literals', '-Wno-noexcept-type', '-Wsign-compare', '-Wunused-variable', '-Wunused-parameter', '-Wunreachable-code', '-c']
Exit Code: 1
Standard Error:
--
clang version 10.0.0 (/home/dave/s/lp/clang 0746aafd89754a2ae9992c4d6394e3b4f3623b1d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /p/tllvm/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
 "/p/tllvm/bin/clang-10" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name is_nothrow_invocable.pass.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -nostdinc++ -resource-dir /p/tllvm/lib64/clang/10.0.0 -include /home/dave/s/lp/libcxx/test/support/nasty_macros.h -I /home/dave/s/lp/libcxx/include -I /tmp/_update_lc/t/projects/libcxx/include/c++build -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /home/dave/s/lp/libcxx/test/support -D "LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=\"/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=\"/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=\"/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py\"" -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -internal-isystem /usr/local/include -internal-isystem /p/tllvm/lib64/clang/10.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror=thread-safety -Wall -Wextra -Werror -Wuser-defined-warnings -Wshadow -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -std=c++2a -fdeprecated-macro -fdebug-compilation-dir /tmp/_update_lc/t/projects/libcxx/test/std/utilities/meta/meta.rel -ftemplate-depth 270 -ferror-limit 19 -fmessage-length 0 -fno-implicit-modules -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -faddrsig -o /tmp/_update_lc/t/projects/libcxx/test/std/utilities/meta/meta.rel/Output/is_nothrow_invocable.pass.cpp.o -x c++ /home/dave/s/lp/libcxx/test/std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp
clang -cc1 version 10.0.0 based upon LLVM 10.0.0svn default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/dave/s/lp/libcxx/include
 /tmp/_update_lc/t/projects/libcxx/include/c++build
 /home/dave/s/lp/libcxx/test/support
 /usr/local/include
 /p/tllvm/lib64/clang/10.0.0/include
 /usr/include
End of search list.
In file included from /home/dave/s/lp/libcxx/test/std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp:15:
/home/dave/s/lp/libcxx/include/type_traits:1123:22: error: volatile-qualified return type 'volatile void' is deprecated [-Werror,-Wdeprecated-volatile]
template <class _Tp> _Tp   __declval(long);
                     ^
/home/dave/s/lp/libcxx/include/type_traits:3599:13: note: in instantiation of template class 'std::__1::__invokable_r<void, volatile void>' requested here
            __invokable<_Fp, _Args...>::value,
            ^
/home/dave/s/lp/libcxx/include/type_traits:3658:31: note: in instantiation of template type alias '__nothrow_invokable' requested here
    : integral_constant<bool, __nothrow_invokable<_Fn, _Args...>::value> {};
                              ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp:89:25: note: in instantiation of template class 'std::__1::is_nothrow_invocable<volatile void>' requested here
    static_assert(!std::is_nothrow_invocable<volatile void>::value, "");
                        ^
In file included from /home/dave/s/lp/libcxx/test/std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp:15:
/home/dave/s/lp/libcxx/include/type_traits:1123:22: error: volatile-qualified return type 'const volatile void' is deprecated [-Werror,-Wdeprecated-volatile]
template <class _Tp> _Tp   __declval(long);
                     ^
/home/dave/s/lp/libcxx/include/type_traits:3599:13: note: in instantiation of template class 'std::__1::__invokable_r<void, const volatile void>' requested here
            __invokable<_Fp, _Args...>::value,
            ^
/home/dave/s/lp/libcxx/include/type_traits:3658:31: note: in instantiation of template type alias '__nothrow_invokable' requested here
    : integral_constant<bool, __nothrow_invokable<_Fn, _Args...>::value> {};
                              ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp:90:25: note: in instantiation of template class 'std::__1::is_nothrow_invocable<const volatile void>' requested here
    static_assert(!std::is_nothrow_invocable<const volatile void>::value, "");
                        ^
2 errors generated.
--

Compilation failed unexpectedly!
********************
FAIL: libc++ :: std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp (55556 of 58603)
******************** TEST 'libc++ :: std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp' FAILED ********************
Command: ['/p/tllvm/bin/clang++', '-o', '/tmp/_update_lc/t/projects/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/Output/result_of11.pass.cpp.o', '-x', 'c++', '/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp', '-c', '-v', '-ftemplate-depth=270', '-Werror=thread-safety', '-std=c++2a', '-include', '/home/dave/s/lp/libcxx/test/support/nasty_macros.h', '-nostdinc++', '-I/home/dave/s/lp/libcxx/include', '-I/tmp/_update_lc/t/projects/libcxx/include/c++build', '-D__STDC_FORMAT_MACROS', '-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', '-I/home/dave/s/lp/libcxx/test/support', '-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py"', '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', '-Wall', '-Wextra', '-Werror', '-Wuser-defined-warnings', '-Wshadow', '-Wno-unused-command-line-argument', '-Wno-attributes', '-Wno-pessimizing-move', '-Wno-c++11-extensions', '-Wno-user-defined-literals', '-Wno-noexcept-type', '-Wsign-compare', '-Wunused-variable', '-Wunused-parameter', '-Wunreachable-code', '-c']
Exit Code: 1
Standard Error:
--
clang version 10.0.0 (/home/dave/s/lp/clang 0746aafd89754a2ae9992c4d6394e3b4f3623b1d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /p/tllvm/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
 "/p/tllvm/bin/clang-10" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name result_of11.pass.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -nostdinc++ -resource-dir /p/tllvm/lib64/clang/10.0.0 -include /home/dave/s/lp/libcxx/test/support/nasty_macros.h -I /home/dave/s/lp/libcxx/include -I /tmp/_update_lc/t/projects/libcxx/include/c++build -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /home/dave/s/lp/libcxx/test/support -D "LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=\"/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=\"/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=\"/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py\"" -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -internal-isystem /usr/local/include -internal-isystem /p/tllvm/lib64/clang/10.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror=thread-safety -Wall -Wextra -Werror -Wuser-defined-warnings -Wshadow -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -std=c++2a -fdeprecated-macro -fdebug-compilation-dir /tmp/_update_lc/t/projects/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other -ftemplate-depth 270 -ferror-limit 19 -fmessage-length 0 -fno-implicit-modules -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -faddrsig -o /tmp/_update_lc/t/projects/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/Output/result_of11.pass.cpp.o -x c++ /home/dave/s/lp/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp
clang -cc1 version 10.0.0 based upon LLVM 10.0.0svn default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/dave/s/lp/libcxx/include
 /tmp/_update_lc/t/projects/libcxx/include/c++build
 /home/dave/s/lp/libcxx/test/support
 /usr/local/include
 /p/tllvm/lib64/clang/10.0.0/include
 /usr/include
End of search list.
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp:74:45: error: volatile-qualified parameter type 'volatile F' is deprecated [-Werror,-Wdeprecated-volatile]
    test_result_of_imp<PMD(F volatile       ), char &&>();
                                            ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp:75:45: error: volatile-qualified parameter type 'const volatile F' is deprecated [-Werror,-Wdeprecated-volatile]
    test_result_of_imp<PMD(F const volatile ), char &&>();
                                            ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp:89:46: error: volatile-qualified parameter type 'volatile FD' is deprecated [-Werror,-Wdeprecated-volatile]
    test_result_of_imp<PMD(FD volatile       ), char &&>();
                                             ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp:90:46: error: volatile-qualified parameter type 'const volatile FD' is deprecated [-Werror,-Wdeprecated-volatile]
    test_result_of_imp<PMD(FD const volatile ), char &&>();
                                             ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp:129:46: error: volatile-qualified parameter type 'volatile F' is deprecated [-Werror,-Wdeprecated-volatile]
    test_result_of_imp<int (F::* (F volatile )) () volatile       &&, int> ();
                                             ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp:130:46: error: volatile-qualified parameter type 'volatile F' is deprecated [-Werror,-Wdeprecated-volatile]
    test_result_of_imp<int (F::* (F volatile )) () const volatile &&, int> ();
                                             ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp:131:52: error: volatile-qualified parameter type 'const volatile F' is deprecated [-Werror,-Wdeprecated-volatile]
    test_result_of_imp<int (F::* (F const volatile )) () const volatile &&, int> ();
                                                   ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp:160:47: error: volatile-qualified parameter type 'volatile FD' is deprecated [-Werror,-Wdeprecated-volatile]
    test_result_of_imp<int (F::* (FD volatile )) () volatile       &&, int> ();
                                              ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp:161:47: error: volatile-qualified parameter type 'volatile FD' is deprecated [-Werror,-Wdeprecated-volatile]
    test_result_of_imp<int (F::* (FD volatile )) () const volatile &&, int> ();
                                              ^
/home/dave/s/lp/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp:162:53: error: volatile-qualified parameter type 'const volatile FD' is deprecated [-Werror,-Wdeprecated-volatile]
    test_result_of_imp<int (F::* (FD const volatile )) () const volatile &&, int> ();
                                                    ^
10 errors generated.
--

Compilation failed unexpectedly!
********************
FAIL: libc++ :: std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp (56277 of 58603)
******************** TEST 'libc++ :: std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp' FAILED ********************
Command: ['/p/tllvm/bin/clang++', '-o', '/tmp/_update_lc/t/projects/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/Output/in_place_type_args.pass.cpp.o', '-x', 'c++', '/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp', '-c', '-v', '-ftemplate-depth=270', '-Werror=thread-safety', '-std=c++2a', '-include', '/home/dave/s/lp/libcxx/test/support/nasty_macros.h', '-nostdinc++', '-I/home/dave/s/lp/libcxx/include', '-I/tmp/_update_lc/t/projects/libcxx/include/c++build', '-D__STDC_FORMAT_MACROS', '-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', '-I/home/dave/s/lp/libcxx/test/support', '-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py"', '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', '-Wall', '-Wextra', '-Werror', '-Wuser-defined-warnings', '-Wshadow', '-Wno-unused-command-line-argument', '-Wno-attributes', '-Wno-pessimizing-move', '-Wno-c++11-extensions', '-Wno-user-defined-literals', '-Wno-noexcept-type', '-Wsign-compare', '-Wunused-variable', '-Wunused-parameter', '-Wunreachable-code', '-c']
Exit Code: 1
Standard Error:
--
clang version 10.0.0 (/home/dave/s/lp/clang 0746aafd89754a2ae9992c4d6394e3b4f3623b1d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /p/tllvm/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
 "/p/tllvm/bin/clang-10" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name in_place_type_args.pass.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -nostdinc++ -resource-dir /p/tllvm/lib64/clang/10.0.0 -include /home/dave/s/lp/libcxx/test/support/nasty_macros.h -I /home/dave/s/lp/libcxx/include -I /tmp/_update_lc/t/projects/libcxx/include/c++build -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /home/dave/s/lp/libcxx/test/support -D "LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=\"/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=\"/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=\"/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py\"" -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -internal-isystem /usr/local/include -internal-isystem /p/tllvm/lib64/clang/10.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror=thread-safety -Wall -Wextra -Werror -Wuser-defined-warnings -Wshadow -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -std=c++2a -fdeprecated-macro -fdebug-compilation-dir /tmp/_update_lc/t/projects/libcxx/test/std/utilities/variant/variant.variant/variant.ctor -ftemplate-depth 270 -ferror-limit 19 -fmessage-length 0 -fno-implicit-modules -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -faddrsig -o /tmp/_update_lc/t/projects/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/Output/in_place_type_args.pass.cpp.o -x c++ /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp
clang -cc1 version 10.0.0 based upon LLVM 10.0.0svn default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/dave/s/lp/libcxx/include
 /tmp/_update_lc/t/projects/libcxx/include/c++build
 /home/dave/s/lp/libcxx/test/support
 /usr/local/include
 /p/tllvm/lib64/clang/10.0.0/include
 /usr/include
End of search list.
In file included from /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp:22:
/home/dave/s/lp/libcxx/include/type_traits:2957:66: error: use of result of assignment to object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
    : integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)>
                                                                 ^
/home/dave/s/lp/libcxx/include/type_traits:2994:14: note: in instantiation of template class 'std::__1::is_trivially_assignable<volatile int &, const volatile int &>' requested here
    : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type,
             ^
/home/dave/s/lp/libcxx/include/variant:358:5: note: in instantiation of template class 'std::__1::is_trivially_copy_assignable<volatile int>' requested here
    _IsTriviallyAvailable<_Tp>::value
    ^
/home/dave/s/lp/libcxx/include/variant:387:8: note: in instantiation of variable template specialization 'std::__1::__variant_detail::__trait<volatile int, is_trivially_copy_assignable, is_copy_assignable>' requested here
       __trait<_Types, is_trivially_copy_assignable, is_copy_assignable>...});
       ^
/home/dave/s/lp/libcxx/include/variant:990:44: note: in instantiation of static data member 'std::__1::__variant_detail::__traits<const int, volatile int, int>::__copy_assignable_trait' requested here
template <class _Traits, _Trait = _Traits::__copy_assignable_trait>
                                           ^
/home/dave/s/lp/libcxx/include/variant:1031:14: note: in instantiation of default argument for '__copy_assignment<std::__1::__variant_detail::__traits<const int, volatile int, int> >' required here
    : public __copy_assignment<__traits<_Types...>> {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/include/variant:1357:39: note: in instantiation of template class 'std::__1::__variant_detail::__impl<const int, volatile int, int>' requested here
  __variant_detail::__impl<_Types...> __impl;
                                      ^
/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp:91:7: note: in instantiation of template class 'std::__1::variant<const int, volatile int, int>' requested here
    V v(std::in_place_type<const int>, x);
      ^
In file included from /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp:22:
/home/dave/s/lp/libcxx/include/type_traits:2957:66: error: use of result of assignment to object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
    : integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)>
                                                                 ^
/home/dave/s/lp/libcxx/include/type_traits:3006:14: note: in instantiation of template class 'std::__1::is_trivially_assignable<volatile int &, volatile int &&>' requested here
    : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type,
             ^
/home/dave/s/lp/libcxx/include/variant:358:5: note: in instantiation of template class 'std::__1::is_trivially_move_assignable<volatile int>' requested here
    _IsTriviallyAvailable<_Tp>::value
    ^
/home/dave/s/lp/libcxx/include/variant:391:8: note: in instantiation of variable template specialization 'std::__1::__variant_detail::__trait<volatile int, is_trivially_move_assignable, is_move_assignable>' requested here
       __trait<_Types, is_trivially_move_assignable, is_move_assignable>...});
       ^
/home/dave/s/lp/libcxx/include/variant:949:44: note: in instantiation of static data member 'std::__1::__variant_detail::__traits<const int, volatile int, int>::__move_assignable_trait' requested here
template <class _Traits, _Trait = _Traits::__move_assignable_trait>
                                           ^
/home/dave/s/lp/libcxx/include/variant:1023:1: note: in instantiation of default argument for '__move_assignment<std::__1::__variant_detail::__traits<const int, volatile int, int> >' required here
_LIBCPP_VARIANT_COPY_ASSIGNMENT(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/include/variant:998:16: note: expanded from macro '_LIBCPP_VARIANT_COPY_ASSIGNMENT'
      : public __move_assignment<__traits<_Types...>> {                        \
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/include/variant:1031:14: note: in instantiation of template class 'std::__1::__variant_detail::__copy_assignment<std::__1::__variant_detail::__traits<const int, volatile int, int>, std::__1::__variant_detail::_Trait::_Unavailable>' requested here
    : public __copy_assignment<__traits<_Types...>> {
             ^
/home/dave/s/lp/libcxx/include/variant:1357:39: note: in instantiation of template class 'std::__1::__variant_detail::__impl<const int, volatile int, int>' requested here
  __variant_detail::__impl<_Types...> __impl;
                                      ^
/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp:91:7: note: in instantiation of template class 'std::__1::variant<const int, volatile int, int>' requested here
    V v(std::in_place_type<const int>, x);
      ^
2 errors generated.
--

Compilation failed unexpectedly!
********************
FAIL: libc++ :: std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp (56314 of 58603)
******************** TEST 'libc++ :: std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp' FAILED ********************
Command: ['/p/tllvm/bin/clang++', '-o', '/tmp/_update_lc/t/projects/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/Output/in_place_index_args.pass.cpp.o', '-x', 'c++', '/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp', '-c', '-v', '-ftemplate-depth=270', '-Werror=thread-safety', '-std=c++2a', '-include', '/home/dave/s/lp/libcxx/test/support/nasty_macros.h', '-nostdinc++', '-I/home/dave/s/lp/libcxx/include', '-I/tmp/_update_lc/t/projects/libcxx/include/c++build', '-D__STDC_FORMAT_MACROS', '-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', '-I/home/dave/s/lp/libcxx/test/support', '-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py"', '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', '-Wall', '-Wextra', '-Werror', '-Wuser-defined-warnings', '-Wshadow', '-Wno-unused-command-line-argument', '-Wno-attributes', '-Wno-pessimizing-move', '-Wno-c++11-extensions', '-Wno-user-defined-literals', '-Wno-noexcept-type', '-Wsign-compare', '-Wunused-variable', '-Wunused-parameter', '-Wunreachable-code', '-c']
Exit Code: 1
Standard Error:
--
clang version 10.0.0 (/home/dave/s/lp/clang 0746aafd89754a2ae9992c4d6394e3b4f3623b1d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /p/tllvm/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
 "/p/tllvm/bin/clang-10" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name in_place_index_args.pass.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -nostdinc++ -resource-dir /p/tllvm/lib64/clang/10.0.0 -include /home/dave/s/lp/libcxx/test/support/nasty_macros.h -I /home/dave/s/lp/libcxx/include -I /tmp/_update_lc/t/projects/libcxx/include/c++build -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /home/dave/s/lp/libcxx/test/support -D "LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=\"/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=\"/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=\"/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py\"" -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -internal-isystem /usr/local/include -internal-isystem /p/tllvm/lib64/clang/10.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror=thread-safety -Wall -Wextra -Werror -Wuser-defined-warnings -Wshadow -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -std=c++2a -fdeprecated-macro -fdebug-compilation-dir /tmp/_update_lc/t/projects/libcxx/test/std/utilities/variant/variant.variant/variant.ctor -ftemplate-depth 270 -ferror-limit 19 -fmessage-length 0 -fno-implicit-modules -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -faddrsig -o /tmp/_update_lc/t/projects/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/Output/in_place_index_args.pass.cpp.o -x c++ /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp
clang -cc1 version 10.0.0 based upon LLVM 10.0.0svn default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/dave/s/lp/libcxx/include
 /tmp/_update_lc/t/projects/libcxx/include/c++build
 /home/dave/s/lp/libcxx/test/support
 /usr/local/include
 /p/tllvm/lib64/clang/10.0.0/include
 /usr/include
End of search list.
In file included from /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp:22:
In file included from /home/dave/s/lp/libcxx/include/string:504:
In file included from /home/dave/s/lp/libcxx/include/string_view:175:
In file included from /home/dave/s/lp/libcxx/include/__string:56:
In file included from /home/dave/s/lp/libcxx/include/algorithm:639:
In file included from /home/dave/s/lp/libcxx/include/initializer_list:46:
In file included from /home/dave/s/lp/libcxx/include/cstddef:110:
/home/dave/s/lp/libcxx/include/type_traits:2957:66: error: use of result of assignment to object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
    : integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)>
                                                                 ^
/home/dave/s/lp/libcxx/include/type_traits:2994:14: note: in instantiation of template class 'std::__1::is_trivially_assignable<volatile int &, const volatile int &>' requested here
    : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type,
             ^
/home/dave/s/lp/libcxx/include/variant:358:5: note: in instantiation of template class 'std::__1::is_trivially_copy_assignable<volatile int>' requested here
    _IsTriviallyAvailable<_Tp>::value
    ^
/home/dave/s/lp/libcxx/include/variant:387:8: note: in instantiation of variable template specialization 'std::__1::__variant_detail::__trait<volatile int, is_trivially_copy_assignable, is_copy_assignable>' requested here
       __trait<_Types, is_trivially_copy_assignable, is_copy_assignable>...});
       ^
/home/dave/s/lp/libcxx/include/variant:990:44: note: in instantiation of static data member 'std::__1::__variant_detail::__traits<const int, volatile int, int>::__copy_assignable_trait' requested here
template <class _Traits, _Trait = _Traits::__copy_assignable_trait>
                                           ^
/home/dave/s/lp/libcxx/include/variant:1031:14: note: in instantiation of default argument for '__copy_assignment<std::__1::__variant_detail::__traits<const int, volatile int, int> >' required here
    : public __copy_assignment<__traits<_Types...>> {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/include/variant:1357:39: note: in instantiation of template class 'std::__1::__variant_detail::__impl<const int, volatile int, int>' requested here
  __variant_detail::__impl<_Types...> __impl;
                                      ^
/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp:81:7: note: in instantiation of template class 'std::__1::variant<const int, volatile int, int>' requested here
    V v(std::in_place_index<0>, x);
      ^
In file included from /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp:22:
In file included from /home/dave/s/lp/libcxx/include/string:504:
In file included from /home/dave/s/lp/libcxx/include/string_view:175:
In file included from /home/dave/s/lp/libcxx/include/__string:56:
In file included from /home/dave/s/lp/libcxx/include/algorithm:639:
In file included from /home/dave/s/lp/libcxx/include/initializer_list:46:
In file included from /home/dave/s/lp/libcxx/include/cstddef:110:
/home/dave/s/lp/libcxx/include/type_traits:2957:66: error: use of result of assignment to object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
    : integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)>
                                                                 ^
/home/dave/s/lp/libcxx/include/type_traits:3006:14: note: in instantiation of template class 'std::__1::is_trivially_assignable<volatile int &, volatile int &&>' requested here
    : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type,
             ^
/home/dave/s/lp/libcxx/include/variant:358:5: note: in instantiation of template class 'std::__1::is_trivially_move_assignable<volatile int>' requested here
    _IsTriviallyAvailable<_Tp>::value
    ^
/home/dave/s/lp/libcxx/include/variant:391:8: note: in instantiation of variable template specialization 'std::__1::__variant_detail::__trait<volatile int, is_trivially_move_assignable, is_move_assignable>' requested here
       __trait<_Types, is_trivially_move_assignable, is_move_assignable>...});
       ^
/home/dave/s/lp/libcxx/include/variant:949:44: note: in instantiation of static data member 'std::__1::__variant_detail::__traits<const int, volatile int, int>::__move_assignable_trait' requested here
template <class _Traits, _Trait = _Traits::__move_assignable_trait>
                                           ^
/home/dave/s/lp/libcxx/include/variant:1023:1: note: in instantiation of default argument for '__move_assignment<std::__1::__variant_detail::__traits<const int, volatile int, int> >' required here
_LIBCPP_VARIANT_COPY_ASSIGNMENT(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/include/variant:998:16: note: expanded from macro '_LIBCPP_VARIANT_COPY_ASSIGNMENT'
      : public __move_assignment<__traits<_Types...>> {                        \
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/include/variant:1031:14: note: in instantiation of template class 'std::__1::__variant_detail::__copy_assignment<std::__1::__variant_detail::__traits<const int, volatile int, int>, std::__1::__variant_detail::_Trait::_Unavailable>' requested here
    : public __copy_assignment<__traits<_Types...>> {
             ^
/home/dave/s/lp/libcxx/include/variant:1357:39: note: in instantiation of template class 'std::__1::__variant_detail::__impl<const int, volatile int, int>' requested here
  __variant_detail::__impl<_Types...> __impl;
                                      ^
/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp:81:7: note: in instantiation of template class 'std::__1::variant<const int, volatile int, int>' requested here
    V v(std::in_place_index<0>, x);
      ^
2 errors generated.
--

Compilation failed unexpectedly!
********************
FAIL: libc++abi :: unwind_06.pass.cpp (56319 of 58603)
******************** TEST 'libc++abi :: unwind_06.pass.cpp' FAILED ********************
Command: ['/p/tllvm/bin/clang++', '-o', '/tmp/_update_lc/t/projects/libcxxabi/test/Output/unwind_06.pass.cpp.o', '-x', 'c++', '/home/dave/s/lp/libcxxabi/test/unwind_06.pass.cpp', '-c', '-v', '-ftemplate-depth=270', '-Werror=thread-safety', '-DLIBCXXABI_NO_TIMER', '-D_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS', '-funwind-tables', '-std=c++2a', '-nostdinc++', '-I/home/dave/s/lp/libcxx/include', '-I/home/dave/s/lp/libcxxabi/include', '-D__STDC_FORMAT_MACROS', '-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', '-I/home/dave/s/lp/libcxx/test/support', '-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/tmp/_update_lc/t/projects/libcxxabi/test/filesystem/Output/dynamic_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py"', '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', '-Wall', '-Wextra', '-Werror', '-Wuser-defined-warnings', '-Wshadow', '-Wno-unused-command-line-argument', '-Wno-attributes', '-Wno-pessimizing-move', '-Wno-c++11-extensions', '-Wno-user-defined-literals', '-Wno-noexcept-type', '-Wsign-compare', '-Wunused-variable', '-Wunused-parameter', '-Wunreachable-code', '-c']
Exit Code: 1
Standard Error:
--
clang version 10.0.0 (/home/dave/s/lp/clang 0746aafd89754a2ae9992c4d6394e3b4f3623b1d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /p/tllvm/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
 "/p/tllvm/bin/clang-10" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name unwind_06.pass.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -nostdinc++ -resource-dir /p/tllvm/lib64/clang/10.0.0 -D LIBCXXABI_NO_TIMER -D _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS -I /home/dave/s/lp/libcxx/include -I /home/dave/s/lp/libcxxabi/include -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /home/dave/s/lp/libcxx/test/support -D "LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=\"/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=\"/tmp/_update_lc/t/projects/libcxxabi/test/filesystem/Output/dynamic_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=\"/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py\"" -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -internal-isystem /usr/local/include -internal-isystem /p/tllvm/lib64/clang/10.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror=thread-safety -Wall -Wextra -Werror -Wuser-defined-warnings -Wshadow -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -std=c++2a -fdeprecated-macro -fdebug-compilation-dir /tmp/_update_lc/t/projects/libcxxabi/test -ftemplate-depth 270 -ferror-limit 19 -fmessage-length 0 -fno-implicit-modules -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -faddrsig -o /tmp/_update_lc/t/projects/libcxxabi/test/Output/unwind_06.pass.cpp.o -x c++ /home/dave/s/lp/libcxxabi/test/unwind_06.pass.cpp
clang -cc1 version 10.0.0 based upon LLVM 10.0.0svn default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/dave/s/lp/libcxx/include
 /home/dave/s/lp/libcxxabi/include
 /home/dave/s/lp/libcxx/test/support
 /usr/local/include
 /p/tllvm/lib64/clang/10.0.0/include
 /usr/include
End of search list.
/home/dave/s/lp/libcxxabi/test/unwind_06.pass.cpp:27:32: error: decrement of object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
  for (counter = 100; counter; --counter)
                               ^
/home/dave/s/lp/libcxxabi/test/unwind_06.pass.cpp:37:32: error: decrement of object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
  for (counter = 100; counter; --counter)
                               ^
/home/dave/s/lp/libcxxabi/test/unwind_06.pass.cpp:48:32: error: decrement of object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
  for (counter = 100; counter; --counter)
                               ^
/home/dave/s/lp/libcxxabi/test/unwind_06.pass.cpp:60:32: error: decrement of object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
  for (counter = 100; counter; --counter)
                               ^
/home/dave/s/lp/libcxxabi/test/unwind_06.pass.cpp:73:32: error: decrement of object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
  for (counter = 100; counter; --counter)
                               ^
/home/dave/s/lp/libcxxabi/test/unwind_06.pass.cpp:87:32: error: decrement of object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
  for (counter = 100; counter; --counter)
                               ^
/home/dave/s/lp/libcxxabi/test/unwind_06.pass.cpp:102:32: error: decrement of object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
  for (counter = 100; counter; --counter)
                               ^
/home/dave/s/lp/libcxxabi/test/unwind_06.pass.cpp:118:32: error: decrement of object of volatile-qualified type 'volatile int' is deprecated [-Werror,-Wdeprecated-volatile]
  for (counter = 100; counter; --counter)
                               ^
8 errors generated.
--

Compilation failed unexpectedly!
********************
FAIL: libc++ :: std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp (56354 of 58603)
******************** TEST 'libc++ :: std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp' FAILED ********************
Command: ['/p/tllvm/bin/clang++', '-o', '/tmp/_update_lc/t/projects/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/Output/T.pass.cpp.o', '-x', 'c++', '/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp', '-c', '-v', '-ftemplate-depth=270', '-Werror=thread-safety', '-std=c++2a', '-include', '/home/dave/s/lp/libcxx/test/support/nasty_macros.h', '-nostdinc++', '-I/home/dave/s/lp/libcxx/include', '-I/tmp/_update_lc/t/projects/libcxx/include/c++build', '-D__STDC_FORMAT_MACROS', '-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', '-I/home/dave/s/lp/libcxx/test/support', '-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py"', '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', '-Wall', '-Wextra', '-Werror', '-Wuser-defined-warnings', '-Wshadow', '-Wno-unused-command-line-argument', '-Wno-attributes', '-Wno-pessimizing-move', '-Wno-c++11-extensions', '-Wno-user-defined-literals', '-Wno-noexcept-type', '-Wsign-compare', '-Wunused-variable', '-Wunused-parameter', '-Wunreachable-code', '-c']
Exit Code: 1
Standard Error:
--
clang version 10.0.0 (/home/dave/s/lp/clang 0746aafd89754a2ae9992c4d6394e3b4f3623b1d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /p/tllvm/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
 "/p/tllvm/bin/clang-10" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name T.pass.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -nostdinc++ -resource-dir /p/tllvm/lib64/clang/10.0.0 -include /home/dave/s/lp/libcxx/test/support/nasty_macros.h -I /home/dave/s/lp/libcxx/include -I /tmp/_update_lc/t/projects/libcxx/include/c++build -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /home/dave/s/lp/libcxx/test/support -D "LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=\"/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=\"/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=\"/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py\"" -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -internal-isystem /usr/local/include -internal-isystem /p/tllvm/lib64/clang/10.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror=thread-safety -Wall -Wextra -Werror -Wuser-defined-warnings -Wshadow -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -std=c++2a -fdeprecated-macro -fdebug-compilation-dir /tmp/_update_lc/t/projects/libcxx/test/std/utilities/variant/variant.variant/variant.ctor -ftemplate-depth 270 -ferror-limit 19 -fmessage-length 0 -fno-implicit-modules -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -faddrsig -o /tmp/_update_lc/t/projects/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/Output/T.pass.cpp.o -x c++ /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp
clang -cc1 version 10.0.0 based upon LLVM 10.0.0svn default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/dave/s/lp/libcxx/include
 /tmp/_update_lc/t/projects/libcxx/include/c++build
 /home/dave/s/lp/libcxx/test/support
 /usr/local/include
 /p/tllvm/lib64/clang/10.0.0/include
 /usr/include
End of search list.
In file included from /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp:20:
In file included from /home/dave/s/lp/libcxx/include/string:504:
In file included from /home/dave/s/lp/libcxx/include/string_view:175:
In file included from /home/dave/s/lp/libcxx/include/__string:56:
In file included from /home/dave/s/lp/libcxx/include/algorithm:639:
In file included from /home/dave/s/lp/libcxx/include/initializer_list:46:
In file included from /home/dave/s/lp/libcxx/include/cstddef:110:
/home/dave/s/lp/libcxx/include/type_traits:2957:66: error: use of result of assignment to object of volatile-qualified type 'volatile bool' is deprecated [-Werror,-Wdeprecated-volatile]
    : integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)>
                                                                 ^
/home/dave/s/lp/libcxx/include/type_traits:2994:14: note: in instantiation of template class 'std::__1::is_trivially_assignable<volatile bool &, const volatile bool &>' requested here
    : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type,
             ^
/home/dave/s/lp/libcxx/include/variant:358:5: note: in instantiation of template class 'std::__1::is_trivially_copy_assignable<volatile bool>' requested here
    _IsTriviallyAvailable<_Tp>::value
    ^
/home/dave/s/lp/libcxx/include/variant:387:8: note: in instantiation of variable template specialization 'std::__1::__variant_detail::__trait<volatile bool, is_trivially_copy_assignable, is_copy_assignable>' requested here
       __trait<_Types, is_trivially_copy_assignable, is_copy_assignable>...});
       ^
/home/dave/s/lp/libcxx/include/variant:990:44: note: in instantiation of static data member 'std::__1::__variant_detail::__traits<volatile bool, std::__1::unique_ptr<int, std::__1::default_delete<int> > >::__copy_assignable_trait' requested here
template <class _Traits, _Trait = _Traits::__copy_assignable_trait>
                                           ^
/home/dave/s/lp/libcxx/include/variant:1031:14: note: in instantiation of default argument for '__copy_assignment<std::__1::__variant_detail::__traits<volatile bool, std::__1::unique_ptr<int, std::__1::default_delete<int> > > >' required here
    : public __copy_assignment<__traits<_Types...>> {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/include/variant:1357:39: note: in instantiation of template class 'std::__1::__variant_detail::__impl<volatile bool, std::__1::unique_ptr<int, std::__1::default_delete<int> > >' requested here
  __variant_detail::__impl<_Types...> __impl;
                                      ^
/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp:143:55: note: in instantiation of template class 'std::__1::variant<volatile bool, std::__1::unique_ptr<int, std::__1::default_delete<int> > >' requested here
    std::variant<bool volatile, std::unique_ptr<int>> v = nullptr;
                                                      ^
In file included from /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp:20:
In file included from /home/dave/s/lp/libcxx/include/string:504:
In file included from /home/dave/s/lp/libcxx/include/string_view:175:
In file included from /home/dave/s/lp/libcxx/include/__string:56:
In file included from /home/dave/s/lp/libcxx/include/algorithm:639:
In file included from /home/dave/s/lp/libcxx/include/initializer_list:46:
In file included from /home/dave/s/lp/libcxx/include/cstddef:110:
/home/dave/s/lp/libcxx/include/type_traits:2957:66: error: use of result of assignment to object of volatile-qualified type 'volatile bool' is deprecated [-Werror,-Wdeprecated-volatile]
    : integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)>
                                                                 ^
/home/dave/s/lp/libcxx/include/type_traits:3006:14: note: in instantiation of template class 'std::__1::is_trivially_assignable<volatile bool &, volatile bool &&>' requested here
    : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type,
             ^
/home/dave/s/lp/libcxx/include/variant:358:5: note: in instantiation of template class 'std::__1::is_trivially_move_assignable<volatile bool>' requested here
    _IsTriviallyAvailable<_Tp>::value
    ^
/home/dave/s/lp/libcxx/include/variant:391:8: note: in instantiation of variable template specialization 'std::__1::__variant_detail::__trait<volatile bool, is_trivially_move_assignable, is_move_assignable>' requested here
       __trait<_Types, is_trivially_move_assignable, is_move_assignable>...});
       ^
/home/dave/s/lp/libcxx/include/variant:949:44: note: in instantiation of static data member 'std::__1::__variant_detail::__traits<volatile bool, std::__1::unique_ptr<int, std::__1::default_delete<int> > >::__move_assignable_trait' requested here
template <class _Traits, _Trait = _Traits::__move_assignable_trait>
                                           ^
/home/dave/s/lp/libcxx/include/variant:1023:1: note: in instantiation of default argument for '__move_assignment<std::__1::__variant_detail::__traits<volatile bool, std::__1::unique_ptr<int, std::__1::default_delete<int> > > >' required here
_LIBCPP_VARIANT_COPY_ASSIGNMENT(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/include/variant:998:16: note: expanded from macro '_LIBCPP_VARIANT_COPY_ASSIGNMENT'
      : public __move_assignment<__traits<_Types...>> {                        \
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/include/variant:1031:14: note: in instantiation of template class 'std::__1::__variant_detail::__copy_assignment<std::__1::__variant_detail::__traits<volatile bool, std::__1::unique_ptr<int, std::__1::default_delete<int> > >, std::__1::__variant_detail::_Trait::_Unavailable>' requested here
    : public __copy_assignment<__traits<_Types...>> {
             ^
/home/dave/s/lp/libcxx/include/variant:1357:39: note: in instantiation of template class 'std::__1::__variant_detail::__impl<volatile bool, std::__1::unique_ptr<int, std::__1::default_delete<int> > >' requested here
  __variant_detail::__impl<_Types...> __impl;
                                      ^
/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp:143:55: note: in instantiation of template class 'std::__1::variant<volatile bool, std::__1::unique_ptr<int, std::__1::default_delete<int> > >' requested here
    std::variant<bool volatile, std::unique_ptr<int>> v = nullptr;
                                                      ^
2 errors generated.
--

Compilation failed unexpectedly!
********************
FAIL: libc++ :: std/utilities/variant/variant.variant/variant.assign/T.pass.cpp (56408 of 58603)
******************** TEST 'libc++ :: std/utilities/variant/variant.variant/variant.assign/T.pass.cpp' FAILED ********************
Command: ['/p/tllvm/bin/clang++', '-o', '/tmp/_update_lc/t/projects/libcxx/test/std/utilities/variant/variant.variant/variant.assign/Output/T.pass.cpp.o', '-x', 'c++', '/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp', '-c', '-v', '-ftemplate-depth=270', '-Werror=thread-safety', '-std=c++2a', '-include', '/home/dave/s/lp/libcxx/test/support/nasty_macros.h', '-nostdinc++', '-I/home/dave/s/lp/libcxx/include', '-I/tmp/_update_lc/t/projects/libcxx/include/c++build', '-D__STDC_FORMAT_MACROS', '-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', '-I/home/dave/s/lp/libcxx/test/support', '-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py"', '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', '-Wall', '-Wextra', '-Werror', '-Wuser-defined-warnings', '-Wshadow', '-Wno-unused-command-line-argument', '-Wno-attributes', '-Wno-pessimizing-move', '-Wno-c++11-extensions', '-Wno-user-defined-literals', '-Wno-noexcept-type', '-Wsign-compare', '-Wunused-variable', '-Wunused-parameter', '-Wunreachable-code', '-c']
Exit Code: 1
Standard Error:
--
clang version 10.0.0 (/home/dave/s/lp/clang 0746aafd89754a2ae9992c4d6394e3b4f3623b1d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /p/tllvm/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
 "/p/tllvm/bin/clang-10" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name T.pass.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -nostdinc++ -resource-dir /p/tllvm/lib64/clang/10.0.0 -include /home/dave/s/lp/libcxx/test/support/nasty_macros.h -I /home/dave/s/lp/libcxx/include -I /tmp/_update_lc/t/projects/libcxx/include/c++build -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /home/dave/s/lp/libcxx/test/support -D "LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=\"/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=\"/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=\"/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py\"" -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -internal-isystem /usr/local/include -internal-isystem /p/tllvm/lib64/clang/10.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror=thread-safety -Wall -Wextra -Werror -Wuser-defined-warnings -Wshadow -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -std=c++2a -fdeprecated-macro -fdebug-compilation-dir /tmp/_update_lc/t/projects/libcxx/test/std/utilities/variant/variant.variant/variant.assign -ftemplate-depth 270 -ferror-limit 19 -fmessage-length 0 -fno-implicit-modules -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -faddrsig -o /tmp/_update_lc/t/projects/libcxx/test/std/utilities/variant/variant.variant/variant.assign/Output/T.pass.cpp.o -x c++ /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp
clang -cc1 version 10.0.0 based upon LLVM 10.0.0svn default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/dave/s/lp/libcxx/include
 /tmp/_update_lc/t/projects/libcxx/include/c++build
 /home/dave/s/lp/libcxx/test/support
 /usr/local/include
 /p/tllvm/lib64/clang/10.0.0/include
 /usr/include
End of search list.
In file included from /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp:22:
In file included from /home/dave/s/lp/libcxx/include/string:504:
In file included from /home/dave/s/lp/libcxx/include/string_view:175:
In file included from /home/dave/s/lp/libcxx/include/__string:56:
In file included from /home/dave/s/lp/libcxx/include/algorithm:639:
In file included from /home/dave/s/lp/libcxx/include/initializer_list:46:
In file included from /home/dave/s/lp/libcxx/include/cstddef:110:
/home/dave/s/lp/libcxx/include/type_traits:2957:66: error: use of result of assignment to object of volatile-qualified type 'volatile bool' is deprecated [-Werror,-Wdeprecated-volatile]
    : integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)>
                                                                 ^
/home/dave/s/lp/libcxx/include/type_traits:2994:14: note: in instantiation of template class 'std::__1::is_trivially_assignable<volatile bool &, const volatile bool &>' requested here
    : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type,
             ^
/home/dave/s/lp/libcxx/include/variant:358:5: note: in instantiation of template class 'std::__1::is_trivially_copy_assignable<volatile bool>' requested here
    _IsTriviallyAvailable<_Tp>::value
    ^
/home/dave/s/lp/libcxx/include/variant:387:8: note: in instantiation of variable template specialization 'std::__1::__variant_detail::__trait<volatile bool, is_trivially_copy_assignable, is_copy_assignable>' requested here
       __trait<_Types, is_trivially_copy_assignable, is_copy_assignable>...});
       ^
/home/dave/s/lp/libcxx/include/variant:990:44: note: in instantiation of static data member 'std::__1::__variant_detail::__traits<volatile bool, int>::__copy_assignable_trait' requested here
template <class _Traits, _Trait = _Traits::__copy_assignable_trait>
                                           ^
/home/dave/s/lp/libcxx/include/variant:1031:14: note: in instantiation of default argument for '__copy_assignment<std::__1::__variant_detail::__traits<volatile bool, int> >' required here
    : public __copy_assignment<__traits<_Types...>> {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/include/variant:1357:39: note: in instantiation of template class 'std::__1::__variant_detail::__impl<volatile bool, int>' requested here
  __variant_detail::__impl<_Types...> __impl;
                                      ^
/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp:215:38: note: in instantiation of template class 'std::__1::variant<volatile bool, int>' requested here
    std::variant<bool volatile, int> v = 42;
                                     ^
In file included from /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp:22:
In file included from /home/dave/s/lp/libcxx/include/string:504:
In file included from /home/dave/s/lp/libcxx/include/string_view:175:
In file included from /home/dave/s/lp/libcxx/include/__string:56:
In file included from /home/dave/s/lp/libcxx/include/algorithm:639:
In file included from /home/dave/s/lp/libcxx/include/initializer_list:46:
In file included from /home/dave/s/lp/libcxx/include/cstddef:110:
/home/dave/s/lp/libcxx/include/type_traits:2957:66: error: use of result of assignment to object of volatile-qualified type 'volatile bool' is deprecated [-Werror,-Wdeprecated-volatile]
    : integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)>
                                                                 ^
/home/dave/s/lp/libcxx/include/type_traits:3006:14: note: in instantiation of template class 'std::__1::is_trivially_assignable<volatile bool &, volatile bool &&>' requested here
    : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type,
             ^
/home/dave/s/lp/libcxx/include/variant:358:5: note: in instantiation of template class 'std::__1::is_trivially_move_assignable<volatile bool>' requested here
    _IsTriviallyAvailable<_Tp>::value
    ^
/home/dave/s/lp/libcxx/include/variant:391:8: note: in instantiation of variable template specialization 'std::__1::__variant_detail::__trait<volatile bool, is_trivially_move_assignable, is_move_assignable>' requested here
       __trait<_Types, is_trivially_move_assignable, is_move_assignable>...});
       ^
/home/dave/s/lp/libcxx/include/variant:949:44: note: in instantiation of static data member 'std::__1::__variant_detail::__traits<volatile bool, int>::__move_assignable_trait' requested here
template <class _Traits, _Trait = _Traits::__move_assignable_trait>
                                           ^
/home/dave/s/lp/libcxx/include/variant:1012:1: note: in instantiation of default argument for '__move_assignment<std::__1::__variant_detail::__traits<volatile bool, int> >' required here
_LIBCPP_VARIANT_COPY_ASSIGNMENT(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/include/variant:998:16: note: expanded from macro '_LIBCPP_VARIANT_COPY_ASSIGNMENT'
      : public __move_assignment<__traits<_Types...>> {                        \
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/include/variant:1031:14: note: in instantiation of template class 'std::__1::__variant_detail::__copy_assignment<std::__1::__variant_detail::__traits<volatile bool, int>, std::__1::__variant_detail::_Trait::_TriviallyAvailable>' requested here
    : public __copy_assignment<__traits<_Types...>> {
             ^
/home/dave/s/lp/libcxx/include/variant:1357:39: note: in instantiation of template class 'std::__1::__variant_detail::__impl<volatile bool, int>' requested here
  __variant_detail::__impl<_Types...> __impl;
                                      ^
/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp:215:38: note: in instantiation of template class 'std::__1::variant<volatile bool, int>' requested here
    std::variant<bool volatile, int> v = 42;
                                     ^
In file included from /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp:22:
In file included from /home/dave/s/lp/libcxx/include/string:504:
In file included from /home/dave/s/lp/libcxx/include/string_view:175:
In file included from /home/dave/s/lp/libcxx/include/__string:56:
In file included from /home/dave/s/lp/libcxx/include/algorithm:639:
In file included from /home/dave/s/lp/libcxx/include/initializer_list:46:
In file included from /home/dave/s/lp/libcxx/include/cstddef:110:
/home/dave/s/lp/libcxx/include/type_traits:3144:71: error: use of result of assignment to object of volatile-qualified type 'volatile bool' is deprecated [-Werror,-Wdeprecated-volatile]
    : public integral_constant<bool, __is_nothrow_assignable(_Tp, _Arg)> {};
                                                                      ^
/home/dave/s/lp/libcxx/include/type_traits:3173:7: note: in instantiation of template class 'std::__1::is_nothrow_assignable<volatile bool &, bool>' requested here
    = is_nothrow_assignable<_Tp, _Arg>::value;
      ^
/home/dave/s/lp/libcxx/include/variant:1280:7: note: in instantiation of variable template specialization 'std::__1::is_nothrow_assignable_v<volatile bool &, bool>' requested here
      is_nothrow_assignable_v<_Tp&, _Arg> &&
      ^
/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp:216:7: note: in instantiation of exception specification for 'operator=<bool, 0, volatile bool, 0, 0>' requested here
    v = false;
      ^
In file included from /home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp:22:
In file included from /home/dave/s/lp/libcxx/include/string:504:
In file included from /home/dave/s/lp/libcxx/include/string_view:175:
In file included from /home/dave/s/lp/libcxx/include/__string:56:
In file included from /home/dave/s/lp/libcxx/include/algorithm:639:
In file included from /home/dave/s/lp/libcxx/include/initializer_list:46:
In file included from /home/dave/s/lp/libcxx/include/cstddef:110:
/home/dave/s/lp/libcxx/include/type_traits:3144:71: error: use of result of assignment to object of volatile-qualified type 'volatile bool' is deprecated [-Werror,-Wdeprecated-volatile]
    : public integral_constant<bool, __is_nothrow_assignable(_Tp, _Arg)> {};
                                                                      ^
/home/dave/s/lp/libcxx/include/type_traits:3173:7: note: in instantiation of template class 'std::__1::is_nothrow_assignable<volatile bool &, bool &>' requested here
    = is_nothrow_assignable<_Tp, _Arg>::value;
      ^
/home/dave/s/lp/libcxx/include/variant:1280:7: note: in instantiation of variable template specialization 'std::__1::is_nothrow_assignable_v<volatile bool &, bool &>' requested here
      is_nothrow_assignable_v<_Tp&, _Arg> &&
      ^
/home/dave/s/lp/libcxx/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp:220:7: note: in instantiation of exception specification for 'operator=<bool &, 0, volatile bool, 0, 0>' requested here
    v = lvt;
      ^
4 errors generated.
--

Compilation failed unexpectedly!
********************
Testing Time: 110.93s
********************
Failing Tests (8):
    libc++ :: std/utilities/meta/meta.rel/is_invocable.pass.cpp
    libc++ :: std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp
    libc++ :: std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp
    libc++ :: std/utilities/variant/variant.variant/variant.assign/T.pass.cpp
    libc++ :: std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp
    libc++ :: std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp
    libc++ :: std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp
    libc++abi :: unwind_06.pass.cpp

  Expected Passes    : 43008
  Expected Failures  : 101
  Unsupported Tests  : 15486
  Unexpected Failures: 8

10 warning(s) in tests.
FAILED: CMakeFiles/check-all 

> On Oct 9, 2019, at 3:49 AM, Richard Smith via cfe-commits <cfe-commits at lists.llvm.org> wrote:
> 
> Author: rsmith
> Date: Tue Oct  8 17:49:40 2019
> New Revision: 374133
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=374133&view=rev
> Log:
> [c++20] Implement most of P1152R4.
> 
> Diagnose some now-deprecated uses of volatile types:
> * as function parameter types and return types
> * as the type of a structured binding declaration
> * as the type of the lvalue operand of an increment / decrement /
>   compound assignment operator
> 
> This does not implement a check for the deprecation of simple
> assignments whose results are used; that check requires somewhat
> more complexity and will be addressed separately.
> 
> Modified:
>    cfe/trunk/include/clang/Basic/DiagnosticGroups.td
>    cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
>    cfe/trunk/lib/Sema/SemaDeclCXX.cpp
>    cfe/trunk/lib/Sema/SemaExpr.cpp
>    cfe/trunk/lib/Sema/SemaType.cpp
>    cfe/trunk/test/SemaCXX/deprecated.cpp
>    cfe/trunk/www/cxx_status.html
> 
> Modified: cfe/trunk/include/clang/Basic/DiagnosticGroups.td
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticGroups.td?rev=374133&r1=374132&r2=374133&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Basic/DiagnosticGroups.td (original)
> +++ cfe/trunk/include/clang/Basic/DiagnosticGroups.td Tue Oct  8 17:49:40 2019
> @@ -140,6 +140,7 @@ def DeprecatedImplementations :DiagGroup
> def DeprecatedIncrementBool : DiagGroup<"deprecated-increment-bool">;
> def DeprecatedRegister : DiagGroup<"deprecated-register">;
> def DeprecatedThisCapture : DiagGroup<"deprecated-this-capture">;
> +def DeprecatedVolatile : DiagGroup<"deprecated-volatile">;
> def DeprecatedWritableStr : DiagGroup<"deprecated-writable-strings",
>                                       [CXX11CompatDeprecatedWritableStr]>;
> // FIXME: Why is DeprecatedImplementations not in this group?
> @@ -150,6 +151,7 @@ def Deprecated : DiagGroup<"deprecated",
>                                           DeprecatedIncrementBool,
>                                           DeprecatedRegister,
>                                           DeprecatedThisCapture,
> +                                          DeprecatedVolatile,
>                                           DeprecatedWritableStr]>,
>                  DiagCategory<"Deprecations">;
> 
> 
> Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=374133&r1=374132&r2=374133&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original)
> +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Tue Oct  8 17:49:40 2019
> @@ -6650,6 +6650,23 @@ def ext_increment_bool : ExtWarn<
>   DefaultError, InGroup<IncrementBool>;
> def err_increment_decrement_enum : Error<
>   "cannot %select{decrement|increment}0 expression of enum type %1">;
> +
> +def warn_deprecated_increment_decrement_volatile : Warning<
> +  "%select{decrement|increment}0 of object of volatile-qualified type %1 "
> +  "is deprecated">, InGroup<DeprecatedVolatile>;
> +def warn_deprecated_compound_assign_volatile : Warning<
> +  "compound assignment to object of volatile-qualified type %0 is deprecated">,
> +  InGroup<DeprecatedVolatile>;
> +def warn_deprecated_volatile_return : Warning<
> +  "volatile-qualified return type %0 is deprecated">,
> +  InGroup<DeprecatedVolatile>;
> +def warn_deprecated_volatile_param : Warning<
> +  "volatile-qualified parameter type %0 is deprecated">,
> +  InGroup<DeprecatedVolatile>;
> +def warn_deprecated_volatile_structured_binding : Warning<
> +  "volatile qualifier in structured binding declaration is deprecated">,
> +  InGroup<DeprecatedVolatile>;
> +
> def err_catch_incomplete_ptr : Error<
>   "cannot catch pointer to incomplete type %0">;
> def err_catch_incomplete_ref : Error<
> 
> Modified: cfe/trunk/lib/Sema/SemaDeclCXX.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclCXX.cpp?rev=374133&r1=374132&r2=374133&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaDeclCXX.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaDeclCXX.cpp Tue Oct  8 17:49:40 2019
> @@ -775,6 +775,13 @@ Sema::ActOnDecompositionDeclarator(Scope
>       return nullptr;
>   }
> 
> +  // C++2a [dcl.struct.bind]p1:
> +  //   A cv that includes volatile is deprecated
> +  if ((DS.getTypeQualifiers() & DeclSpec::TQ_volatile) &&
> +      getLangOpts().CPlusPlus2a)
> +    Diag(DS.getVolatileSpecLoc(),
> +         diag::warn_deprecated_volatile_structured_binding);
> +
>   TypeSourceInfo *TInfo = GetTypeForDeclarator(D, S);
>   QualType R = TInfo->getType();
> 
> 
> Modified: cfe/trunk/lib/Sema/SemaExpr.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=374133&r1=374132&r2=374133&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaExpr.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaExpr.cpp Tue Oct  8 17:49:40 2019
> @@ -11938,6 +11938,21 @@ QualType Sema::CheckAssignmentOperands(E
> 
>   CheckForNullPointerDereference(*this, LHSExpr);
> 
> +  if (getLangOpts().CPlusPlus2a && LHSType.isVolatileQualified()) {
> +    if (CompoundType.isNull()) {
> +      // C++2a [expr.ass]p5:
> +      //   A simple-assignment whose left operand is of a volatile-qualified
> +      //   type is deprecated unless the assignment is either a discarded-value
> +      //   expression or an unevaluated operand
> +      // FIXME: Implement checks for this.
> +    } else {
> +      // C++2a [expr.ass]p6:
> +      //   [Compound-assignment] expressions are deprecated if E1 has
> +      //   volatile-qualified type
> +      Diag(Loc, diag::warn_deprecated_compound_assign_volatile) << LHSType;
> +    }
> +  }
> +
>   // C99 6.5.16p3: The type of an assignment expression is the type of the
>   // left operand unless the left operand has qualified type, in which case
>   // it is the unqualified version of the type of the left operand.
> @@ -12126,6 +12141,12 @@ static QualType CheckIncrementDecrementO
>   // Now make sure the operand is a modifiable lvalue.
>   if (CheckForModifiableLvalue(Op, OpLoc, S))
>     return QualType();
> +  if (S.getLangOpts().CPlusPlus2a && ResType.isVolatileQualified()) {
> +    // C++2a [expr.pre.inc]p1, [expr.post.inc]p1:
> +    //   An operand with volatile-qualified type is deprecated
> +    S.Diag(OpLoc, diag::warn_deprecated_increment_decrement_volatile)
> +        << IsInc << ResType;
> +  }
>   // In C++, a prefix increment is the same type as the operand. Otherwise
>   // (in C or with postfix), the increment is the unqualified type of the
>   // operand.
> 
> Modified: cfe/trunk/lib/Sema/SemaType.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaType.cpp?rev=374133&r1=374132&r2=374133&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaType.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaType.cpp Tue Oct  8 17:49:40 2019
> @@ -2475,6 +2475,11 @@ bool Sema::CheckFunctionReturnType(QualT
>     checkNonTrivialCUnion(T, Loc, NTCUC_FunctionReturn,
>                           NTCUK_Destruct|NTCUK_Copy);
> 
> +  // C++2a [dcl.fct]p12:
> +  //   A volatile-qualified return type is deprecated
> +  if (T.isVolatileQualified() && getLangOpts().CPlusPlus2a)
> +    Diag(Loc, diag::warn_deprecated_volatile_return) << T;
> +
>   return false;
> }
> 
> @@ -2555,6 +2560,11 @@ QualType Sema::BuildFunctionType(QualTyp
>       Invalid = true;
>     }
> 
> +    // C++2a [dcl.fct]p4:
> +    //   A parameter with volatile-qualified type is deprecated
> +    if (ParamType.isVolatileQualified() && getLangOpts().CPlusPlus2a)
> +      Diag(Loc, diag::warn_deprecated_volatile_param) << ParamType;
> +
>     ParamTypes[Idx] = ParamType;
>   }
> 
> @@ -4685,6 +4695,11 @@ static TypeSourceInfo *GetFullTypeForDec
>           S.Diag(DeclType.Loc, diag::err_func_returning_qualified_void) << T;
>         } else
>           diagnoseRedundantReturnTypeQualifiers(S, T, D, chunkIndex);
> +
> +        // C++2a [dcl.fct]p12:
> +        //   A volatile-qualified return type is deprecated
> +        if (T.isVolatileQualified() && S.getLangOpts().CPlusPlus2a)
> +          S.Diag(DeclType.Loc, diag::warn_deprecated_volatile_return) << T;
>       }
> 
>       // Objective-C ARC ownership qualifiers are ignored on the function
> @@ -5168,6 +5183,13 @@ static TypeSourceInfo *GetFullTypeForDec
>       T->isObjectType())
>     T.addConst();
> 
> +  // C++2a [dcl.fct]p4:
> +  //   A parameter with volatile-qualified type is deprecated
> +  if (T.isVolatileQualified() && S.getLangOpts().CPlusPlus2a &&
> +      (D.getContext() == DeclaratorContext::PrototypeContext ||
> +       D.getContext() == DeclaratorContext::LambdaExprParameterContext))
> +    S.Diag(D.getIdentifierLoc(), diag::warn_deprecated_volatile_param) << T;
> +
>   // If there was an ellipsis in the declarator, the declaration declares a
>   // parameter pack whose type may be a pack expansion type.
>   if (D.hasEllipsis()) {
> 
> Modified: cfe/trunk/test/SemaCXX/deprecated.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/deprecated.cpp?rev=374133&r1=374132&r2=374133&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaCXX/deprecated.cpp (original)
> +++ cfe/trunk/test/SemaCXX/deprecated.cpp Tue Oct  8 17:49:40 2019
> @@ -2,7 +2,7 @@
> // RUN: %clang_cc1 -std=c++11 %s -Wdeprecated -verify -triple x86_64-linux-gnu
> // RUN: %clang_cc1 -std=c++14 %s -Wdeprecated -verify -triple x86_64-linux-gnu
> // RUN: %clang_cc1 -std=c++17 %s -Wdeprecated -verify -triple x86_64-linux-gnu
> -// RUN: %clang_cc1 -std=c++2a %s -Wdeprecated -verify -triple x86_64-linux-gnu
> +// RUN: %clang_cc1 -std=c++2a %s -Wdeprecated -verify=expected,cxx20 -triple x86_64-linux-gnu
> 
> // RUN: %clang_cc1 -std=c++14 %s -Wdeprecated -verify -triple x86_64-linux-gnu -Wno-deprecated-register -DNO_DEPRECATED_FLAGS
> 
> @@ -125,5 +125,72 @@ void array_index_comma() {
>   X()[(X(), X())];
> }
> 
> +namespace DeprecatedVolatile {
> +  volatile int n = 1;
> +  void use(int);
> +  void f() {
> +    // simple assignments are deprecated only if their value is used
> +    n = 5; // ok
> +#if __cplusplus >= 201103L
> +    decltype(n = 5) m = n; // ok expected-warning {{side effects}}
> +    m = sizeof(n = 5); // ok expected-warning {{side effects}}
> +#endif
> +    (n = 5, 0); // ok
> +    use(n = 5); // FIXME: deprecated
> +    (n = 5); // FIXME: deprecated
> +    int q = n = 5; // FIXME: deprecated
> +    q = n = 5; // FIXME: deprecated
> +#if __cplusplus >= 201103L
> +    decltype(q = n = 5) m2 = q; // FIXME: deprecated expected-warning {{side effects}}
> +#endif
> +    q = sizeof(q = n = 5); // FIXME: deprecated expected-warning {{side effects}}
> +
> +    // inc / dec / compound assignments are always deprecated
> +    ++n; // cxx20-warning {{increment of object of volatile-qualified type 'volatile int' is deprecated}}
> +    --n; // cxx20-warning {{decrement of object of volatile-qualified type 'volatile int' is deprecated}}
> +    n++; // cxx20-warning {{increment of object of volatile-qualified type 'volatile int' is deprecated}}
> +    n--; // cxx20-warning {{decrement of object of volatile-qualified type 'volatile int' is deprecated}}
> +    n += 5; // cxx20-warning {{compound assignment to object of volatile-qualified type 'volatile int' is deprecated}}
> +    n *= 3; // cxx20-warning {{compound assignment to object of volatile-qualified type 'volatile int' is deprecated}}
> +    n /= 2; // cxx20-warning {{compound assignment to object of volatile-qualified type 'volatile int' is deprecated}}
> +    n %= 42; // cxx20-warning {{compound assignment to object of volatile-qualified type 'volatile int' is deprecated}}
> +
> +#if __cplusplus >= 201703L
> +    struct X { int a, b; };
> +    volatile auto [x, y] = X{1, 2}; // cxx20-warning {{volatile qualifier in structured binding declaration is deprecated}}
> +
> +    struct Y { volatile int a, b; };
> +    auto [x2, y2] = Y{1, 2}; // ok
> +#endif
> +  }
> +  volatile int g( // cxx20-warning {{volatile-qualified return type 'volatile int' is deprecated}}
> +      volatile int n, // cxx20-warning {{volatile-qualified parameter type 'volatile int' is deprecated}}
> +      volatile int (*p)( // cxx20-warning {{volatile-qualified return type 'volatile int' is deprecated}}
> +        volatile int m) // cxx20-warning {{volatile-qualified parameter type 'volatile int' is deprecated}}
> +      );
> +#if __cplusplus >= 201103L
> +  auto lambda = []( // cxx20-warning{{volatile-qualified return type 'volatile int' is deprecated}}
> +      volatile int n) // cxx20-warning{{volatile-qualified parameter type 'volatile int' is deprecated}}
> +    -> volatile int { return n; };
> +#endif
> +
> +  template<typename T> T f(T v); // cxx20-warning 2{{deprecated}}
> +  int use_f = f<volatile int>(0); // FIXME: Missing "in instantiation of" note.
> +
> +  // OK, only the built-in operators are deprecated.
> +  struct UDT {
> +    UDT(volatile const UDT&);
> +    UDT &operator=(const UDT&);
> +    UDT &operator=(const UDT&) volatile;
> +    UDT operator+=(const UDT&) volatile;
> +  };
> +  void h(UDT a) {
> +    volatile UDT b = a;
> +    volatile UDT c = b;
> +    a = c = a;
> +    b += a;
> +  }
> +}
> +
> # 1 "/usr/include/system-header.h" 1 3
> void system_header_function(void) throw();
> 
> Modified: cfe/trunk/www/cxx_status.html
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/www/cxx_status.html?rev=374133&r1=374132&r2=374133&view=diff
> ==============================================================================
> --- cfe/trunk/www/cxx_status.html (original)
> +++ cfe/trunk/www/cxx_status.html Tue Oct  8 17:49:40 2019
> @@ -1103,7 +1103,7 @@ as the draft C++2a standard evolves.
>     <tr>
>       <td>Deprecate some problematic uses of <tt>volatile</tt></td>
>       <td><a href="http://wg21.link/p1152r4">P1152R4</a></td>
> -      <td class="none" align="center">No</td>
> +      <td class="partial" align="center">Partial</td>
>     </tr>
>     <tr>
>       <td><tt>[[nodiscard("with reason")]]</tt></td>
> 
> 
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits



More information about the cfe-commits mailing list