[PATCH] D110216: [clang] retain type sugar in auto / template argument deduction

Petr Hosek via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 11 22:17:29 PST 2021


phosek added a comment.

This change seems to have broken two libc++ tests:

  libc++ :: std/utilities/any/any.nonmembers/any.cast/const_correctness.fail.cpp
  
  Script:
  --
  : 'COMPILED WITH';  /b/s/w/ir/x/w/staging/llvm_build/./bin/clang++ /b/s/w/ir/x/w/llvm-project/libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_correctness.fail.cpp -v --sysroot=/b/s/w/ir/x/w/cipd/linux --target=x86_64-unknown-linux-gnu -include /b/s/w/ir/x/w/llvm-project/libcxx/test/support/nasty_macros.h -nostdinc++ -I/b/s/w/ir/x/w/staging/llvm_build/include/x86_64-unknown-linux-gnu/c++/v1 -I/b/s/w/ir/x/w/staging/llvm_build/include/c++/v1 -I/b/s/w/ir/x/w/staging/llvm_build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/libcxx/include/c++build -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I/b/s/w/ir/x/w/llvm-project/libcxx/test/support -std=c++2b -Werror -Wall -Wextra -Wshadow -Wundef -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wno-atomic-alignment -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -D_LIBCPP_DISABLE_AVAILABILITY -fcoroutines-ts -Werror=thread-safety -Wuser-defined-warnings -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -Wno-macro-redefined -D_LIBCPP_HAS_THREAD_API_PTHREAD -Wno-macro-redefined -D_LIBCPP_ABI_VERSION=2  -fsyntax-only -Wno-error -Xclang -verify -Xclang -verify-ignore-unexpected=note -ferror-limit=0
  --
  Exit Code: 1
  
  Command Output (stdout):
  --
  $ ":" "COMPILED WITH"
  $ "/b/s/w/ir/x/w/staging/llvm_build/./bin/clang++" "/b/s/w/ir/x/w/llvm-project/libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_correctness.fail.cpp" "-v" "--sysroot=/b/s/w/ir/x/w/cipd/linux" "--target=x86_64-unknown-linux-gnu" "-include" "/b/s/w/ir/x/w/llvm-project/libcxx/test/support/nasty_macros.h" "-nostdinc++" "-I/b/s/w/ir/x/w/staging/llvm_build/include/x86_64-unknown-linux-gnu/c++/v1" "-I/b/s/w/ir/x/w/staging/llvm_build/include/c++/v1" "-I/b/s/w/ir/x/w/staging/llvm_build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/libcxx/include/c++build" "-D__STDC_FORMAT_MACROS" "-D__STDC_LIMIT_MACROS" "-D__STDC_CONSTANT_MACROS" "-I/b/s/w/ir/x/w/llvm-project/libcxx/test/support" "-std=c++2b" "-Werror" "-Wall" "-Wextra" "-Wshadow" "-Wundef" "-Wno-unused-command-line-argument" "-Wno-attributes" "-Wno-pessimizing-move" "-Wno-c++11-extensions" "-Wno-user-defined-literals" "-Wno-noexcept-type" "-Wno-atomic-alignment" "-Wsign-compare" "-Wunused-variable" "-Wunused-parameter" "-Wunreachable-code" "-Wno-unused-local-typedef" "-D_LIBCPP_DISABLE_AVAILABILITY" "-fcoroutines-ts" "-Werror=thread-safety" "-Wuser-defined-warnings" "-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER" "-Wno-macro-redefined" "-D_LIBCPP_HAS_THREAD_API_PTHREAD" "-Wno-macro-redefined" "-D_LIBCPP_ABI_VERSION=2" "-fsyntax-only" "-Wno-error" "-Xclang" "-verify" "-Xclang" "-verify-ignore-unexpected=note" "-ferror-limit=0"
  # command stderr:
  Fuchsia clang version 14.0.0 (https://llvm.googlesource.com/a/llvm-project e1d6f29a1e640e267e1d2b94d0d761e1d15e99bd)
  Target: x86_64-unknown-linux-gnu
  Thread model: posix
  InstalledDir: /b/s/w/ir/x/w/staging/llvm_build/./bin
  Found candidate GCC installation: /b/s/w/ir/x/w/cipd/linux/usr/lib/gcc/i586-linux-gnu/4.8
  Found candidate GCC installation: /b/s/w/ir/x/w/cipd/linux/usr/lib/gcc/x86_64-linux-gnu/4.8
  Selected GCC installation: /b/s/w/ir/x/w/cipd/linux/usr/lib/gcc/x86_64-linux-gnu/4.8
  Candidate multilib: .;@m64
  Selected multilib: .;@m64
   (in-process)
   "/b/s/w/ir/x/w/staging/llvm_build/bin/clang-14" -cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free -clear-ast-before-backend -main-file-name const_correctness.fail.cpp -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -v -fcoverage-compilation-dir=/b/s/w/ir/x/w/staging/llvm_build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/libcxx/test/std/utilities/any/any.nonmembers/any.cast -nostdinc++ -resource-dir /b/s/w/ir/x/w/staging/llvm_build/lib/clang/14.0.0 -include /b/s/w/ir/x/w/llvm-project/libcxx/test/support/nasty_macros.h -I /b/s/w/ir/x/w/staging/llvm_build/include/x86_64-unknown-linux-gnu/c++/v1 -I /b/s/w/ir/x/w/staging/llvm_build/include/c++/v1 -I /b/s/w/ir/x/w/staging/llvm_build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/libcxx/include/c++build -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /b/s/w/ir/x/w/llvm-project/libcxx/test/support -D _LIBCPP_DISABLE_AVAILABILITY -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D _LIBCPP_HAS_THREAD_API_PTHREAD -D _LIBCPP_ABI_VERSION=2 -isysroot /b/s/w/ir/x/w/cipd/linux -internal-isystem /b/s/w/ir/x/w/staging/llvm_build/lib/clang/14.0.0/include -internal-isystem /b/s/w/ir/x/w/cipd/linux/usr/local/include -internal-isystem /b/s/w/ir/x/w/cipd/linux/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include -internal-externc-isystem /b/s/w/ir/x/w/cipd/linux/usr/include/x86_64-linux-gnu -internal-externc-isystem /b/s/w/ir/x/w/cipd/linux/include -internal-externc-isystem /b/s/w/ir/x/w/cipd/linux/usr/include -Werror -Wall -Wextra -Wshadow -Wundef -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wno-atomic-alignment -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Werror=thread-safety -Wuser-defined-warnings -Wno-macro-redefined -Wno-macro-redefined -Wno-error -std=c++2b -fdeprecated-macro -fdebug-compilation-dir=/b/s/w/ir/x/w/staging/llvm_build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/libcxx/test/std/utilities/any/any.nonmembers/any.cast -ferror-limit 0 -fcoroutines-ts -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -verify -verify-ignore-unexpected=note -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -x c++ /b/s/w/ir/x/w/llvm-project/libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_correctness.fail.cpp
  clang -cc1 version 14.0.0 based upon LLVM 14.0.0git default target x86_64-unknown-linux-gnu
  ignoring nonexistent directory "/b/s/w/ir/x/w/cipd/linux/usr/local/include"
  ignoring nonexistent directory "/b/s/w/ir/x/w/cipd/linux/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include"
  ignoring nonexistent directory "/b/s/w/ir/x/w/cipd/linux/include"
  #include "..." search starts here:
  #include <...> search starts here:
   /b/s/w/ir/x/w/staging/llvm_build/include/x86_64-unknown-linux-gnu/c++/v1
   /b/s/w/ir/x/w/staging/llvm_build/include/c++/v1
   /b/s/w/ir/x/w/staging/llvm_build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/libcxx/include/c++build
   /b/s/w/ir/x/w/llvm-project/libcxx/test/support
   /b/s/w/ir/x/w/staging/llvm_build/lib/clang/14.0.0/include
   /b/s/w/ir/x/w/cipd/linux/usr/include/x86_64-linux-gnu
   /b/s/w/ir/x/w/cipd/linux/usr/include
  End of search list.
  error: 'error' diagnostics expected but not seen: 
    File /b/s/w/ir/x/w/staging/llvm_build/include/c++/v1/any Line * (directive at /b/s/w/ir/x/w/llvm-project/libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_correctness.fail.cpp:37): cannot cast from lvalue of type 'const TestType' to rvalue reference type 'TestType &&'; types are not compatible
    File /b/s/w/ir/x/w/staging/llvm_build/include/c++/v1/any Line * (directive at /b/s/w/ir/x/w/llvm-project/libcxx/test/std/utilities/any/any.nonmembers/any.cast/const_correctness.fail.cpp:45): cannot cast from lvalue of type 'const TestType2' to rvalue reference type 'TestType2 &&'; types are not compatible
  error: 'error' diagnostics seen but not expected: 
    File /b/s/w/ir/x/w/staging/llvm_build/include/c++/v1/any Line 605: cannot cast from lvalue of type 'typename remove_reference<const TestType>::type' (aka 'const TestType') to rvalue reference type 'TestType &&'; types are not compatible
    File /b/s/w/ir/x/w/staging/llvm_build/include/c++/v1/any Line 605: cannot cast from lvalue of type 'typename remove_reference<const TestType2>::type' (aka 'const TestType2') to rvalue reference type 'TestType2 &&'; types are not compatible
  4 errors generated.
  
  error: command failed with exit status: 1
  
  --



  libc++ :: std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp
  
  Script:
  --
  : 'COMPILED WITH';  /b/s/w/ir/x/w/staging/llvm_build/./bin/clang++ /b/s/w/ir/x/w/llvm-project/libcxx/test/std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp -v --sysroot=/b/s/w/ir/x/w/cipd/linux --target=x86_64-unknown-linux-gnu -include /b/s/w/ir/x/w/llvm-project/libcxx/test/support/nasty_macros.h -nostdinc++ -I/b/s/w/ir/x/w/staging/llvm_build/include/x86_64-unknown-linux-gnu/c++/v1 -I/b/s/w/ir/x/w/staging/llvm_build/include/c++/v1 -I/b/s/w/ir/x/w/staging/llvm_build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/libcxx/include/c++build -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I/b/s/w/ir/x/w/llvm-project/libcxx/test/support -std=c++2b -Werror -Wall -Wextra -Wshadow -Wundef -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wno-atomic-alignment -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -D_LIBCPP_DISABLE_AVAILABILITY -fcoroutines-ts -Werror=thread-safety -Wuser-defined-warnings -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -Wno-macro-redefined -D_LIBCPP_HAS_THREAD_API_PTHREAD -Wno-macro-redefined -D_LIBCPP_ABI_VERSION=2  -fsyntax-only -Wno-error -Xclang -verify -Xclang -verify-ignore-unexpected=note -ferror-limit=0
  --
  Exit Code: 1
  
  Command Output (stdout):
  --
  $ ":" "COMPILED WITH"
  $ "/b/s/w/ir/x/w/staging/llvm_build/./bin/clang++" "/b/s/w/ir/x/w/llvm-project/libcxx/test/std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp" "-v" "--sysroot=/b/s/w/ir/x/w/cipd/linux" "--target=x86_64-unknown-linux-gnu" "-include" "/b/s/w/ir/x/w/llvm-project/libcxx/test/support/nasty_macros.h" "-nostdinc++" "-I/b/s/w/ir/x/w/staging/llvm_build/include/x86_64-unknown-linux-gnu/c++/v1" "-I/b/s/w/ir/x/w/staging/llvm_build/include/c++/v1" "-I/b/s/w/ir/x/w/staging/llvm_build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/libcxx/include/c++build" "-D__STDC_FORMAT_MACROS" "-D__STDC_LIMIT_MACROS" "-D__STDC_CONSTANT_MACROS" "-I/b/s/w/ir/x/w/llvm-project/libcxx/test/support" "-std=c++2b" "-Werror" "-Wall" "-Wextra" "-Wshadow" "-Wundef" "-Wno-unused-command-line-argument" "-Wno-attributes" "-Wno-pessimizing-move" "-Wno-c++11-extensions" "-Wno-user-defined-literals" "-Wno-noexcept-type" "-Wno-atomic-alignment" "-Wsign-compare" "-Wunused-variable" "-Wunused-parameter" "-Wunreachable-code" "-Wno-unused-local-typedef" "-D_LIBCPP_DISABLE_AVAILABILITY" "-fcoroutines-ts" "-Werror=thread-safety" "-Wuser-defined-warnings" "-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER" "-Wno-macro-redefined" "-D_LIBCPP_HAS_THREAD_API_PTHREAD" "-Wno-macro-redefined" "-D_LIBCPP_ABI_VERSION=2" "-fsyntax-only" "-Wno-error" "-Xclang" "-verify" "-Xclang" "-verify-ignore-unexpected=note" "-ferror-limit=0"
  # command stderr:
  Fuchsia clang version 14.0.0 (https://llvm.googlesource.com/a/llvm-project e1d6f29a1e640e267e1d2b94d0d761e1d15e99bd)
  Target: x86_64-unknown-linux-gnu
  Thread model: posix
  InstalledDir: /b/s/w/ir/x/w/staging/llvm_build/./bin
  Found candidate GCC installation: /b/s/w/ir/x/w/cipd/linux/usr/lib/gcc/i586-linux-gnu/4.8
  Found candidate GCC installation: /b/s/w/ir/x/w/cipd/linux/usr/lib/gcc/x86_64-linux-gnu/4.8
  Selected GCC installation: /b/s/w/ir/x/w/cipd/linux/usr/lib/gcc/x86_64-linux-gnu/4.8
  Candidate multilib: .;@m64
  Selected multilib: .;@m64
   (in-process)
   "/b/s/w/ir/x/w/staging/llvm_build/bin/clang-14" -cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free -clear-ast-before-backend -main-file-name not_copy_constructible.fail.cpp -mrelocation-model static -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -v -fcoverage-compilation-dir=/b/s/w/ir/x/w/staging/llvm_build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/libcxx/test/std/utilities/any/any.nonmembers/any.cast -nostdinc++ -resource-dir /b/s/w/ir/x/w/staging/llvm_build/lib/clang/14.0.0 -include /b/s/w/ir/x/w/llvm-project/libcxx/test/support/nasty_macros.h -I /b/s/w/ir/x/w/staging/llvm_build/include/x86_64-unknown-linux-gnu/c++/v1 -I /b/s/w/ir/x/w/staging/llvm_build/include/c++/v1 -I /b/s/w/ir/x/w/staging/llvm_build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/libcxx/include/c++build -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /b/s/w/ir/x/w/llvm-project/libcxx/test/support -D _LIBCPP_DISABLE_AVAILABILITY -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D _LIBCPP_HAS_THREAD_API_PTHREAD -D _LIBCPP_ABI_VERSION=2 -isysroot /b/s/w/ir/x/w/cipd/linux -internal-isystem /b/s/w/ir/x/w/staging/llvm_build/lib/clang/14.0.0/include -internal-isystem /b/s/w/ir/x/w/cipd/linux/usr/local/include -internal-isystem /b/s/w/ir/x/w/cipd/linux/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include -internal-externc-isystem /b/s/w/ir/x/w/cipd/linux/usr/include/x86_64-linux-gnu -internal-externc-isystem /b/s/w/ir/x/w/cipd/linux/include -internal-externc-isystem /b/s/w/ir/x/w/cipd/linux/usr/include -Werror -Wall -Wextra -Wshadow -Wundef -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wno-atomic-alignment -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Werror=thread-safety -Wuser-defined-warnings -Wno-macro-redefined -Wno-macro-redefined -Wno-error -std=c++2b -fdeprecated-macro -fdebug-compilation-dir=/b/s/w/ir/x/w/staging/llvm_build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/libcxx/test/std/utilities/any/any.nonmembers/any.cast -ferror-limit 0 -fcoroutines-ts -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -verify -verify-ignore-unexpected=note -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -x c++ /b/s/w/ir/x/w/llvm-project/libcxx/test/std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp
  clang -cc1 version 14.0.0 based upon LLVM 14.0.0git default target x86_64-unknown-linux-gnu
  ignoring nonexistent directory "/b/s/w/ir/x/w/cipd/linux/usr/local/include"
  ignoring nonexistent directory "/b/s/w/ir/x/w/cipd/linux/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include"
  ignoring nonexistent directory "/b/s/w/ir/x/w/cipd/linux/include"
  #include "..." search starts here:
  #include <...> search starts here:
   /b/s/w/ir/x/w/staging/llvm_build/include/x86_64-unknown-linux-gnu/c++/v1
   /b/s/w/ir/x/w/staging/llvm_build/include/c++/v1
   /b/s/w/ir/x/w/staging/llvm_build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins/libcxx/include/c++build
   /b/s/w/ir/x/w/llvm-project/libcxx/test/support
   /b/s/w/ir/x/w/staging/llvm_build/lib/clang/14.0.0/include
   /b/s/w/ir/x/w/cipd/linux/usr/include/x86_64-linux-gnu
   /b/s/w/ir/x/w/cipd/linux/usr/include
  End of search list.
  error: 'error' diagnostics expected but not seen: 
    File /b/s/w/ir/x/w/staging/llvm_build/include/c++/v1/any Line * (directive at /b/s/w/ir/x/w/llvm-project/libcxx/test/std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp:48): static_cast from 'no_copy' to 'no_copy' uses deleted function
    File /b/s/w/ir/x/w/staging/llvm_build/include/c++/v1/any Line * (directive at /b/s/w/ir/x/w/llvm-project/libcxx/test/std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp:52): static_cast from 'const no_copy' to 'no_copy' uses deleted function
  error: 'error' diagnostics seen but not expected: 
    File /b/s/w/ir/x/w/staging/llvm_build/include/c++/v1/any Line 620: static_cast from 'typename remove_reference<no_copy>::type' (aka 'no_copy') to 'no_copy' uses deleted function
    File /b/s/w/ir/x/w/staging/llvm_build/include/c++/v1/any Line 605: static_cast from 'typename remove_reference<const no_copy>::type' (aka 'const no_copy') to 'no_copy' uses deleted function
  4 errors generated.
  
  error: command failed with exit status: 1
  
  --

Would it be possible to take a look or revert the change?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D110216/new/

https://reviews.llvm.org/D110216



More information about the cfe-commits mailing list