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

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 11 13:27:47 PDT 2019


https://reviews.llvm.org/D68879

On Fri, 11 Oct 2019 at 10:01, Richard Smith <richard at metafoo.co.uk> wrote:

> On Fri, 11 Oct 2019 at 03:59, David Zarzycki via cfe-commits <
> cfe-commits at lists.llvm.org> wrote:
>
>> Hi Richard,
>>
>> This breaks libcxx and libcxxabi my local stage two build bot (Fedora 31
>> x86_64). Is this expected? Can we revert this?
>>
>
> We should turn off -Wdeprecated-volatile for those libraries, at least for
> now. Working on a patch...
>
>
>> 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
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20191011/5096f8ba/attachment-0001.html>


More information about the cfe-commits mailing list