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

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


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/04194f8e/attachment-0001.html>


More information about the cfe-commits mailing list