[all-commits] [llvm/llvm-project] d80182: Revert "CWG2352: Allow qualification conversions d...

David Blaikie via All-commits all-commits at lists.llvm.org
Fri Dec 27 12:27:27 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: d8018233d1ea4234de68d5b4593abd773db79484
      https://github.com/llvm/llvm-project/commit/d8018233d1ea4234de68d5b4593abd773db79484
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2019-12-27 (Fri, 27 Dec 2019)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/test/CXX/drs/dr23xx.cpp
    M clang/test/CXX/drs/dr4xx.cpp
    M clang/test/SemaObjCXX/arc-overloading.mm
    M clang/test/SemaOpenCL/address-spaces-conversions-cl2.0.cl
    M clang/www/cxx_dr_status.html
    M clang/www/make_cxx_dr_status

  Log Message:
  -----------
  Revert "CWG2352: Allow qualification conversions during reference binding."

This reverts commit de21704ba96fa80d3e9402f12c6505917a3885f4.

Regressed/causes this to error due to ambiguity:

  void f(const int * const &);
  void f(int *);
  int main() {
    int * x;
    f(x);
  }

(in case it's important - the original case where this turned up was a
member function overload in a class template with, essentially:

  f(const T1&)
  f(T2*)

(where T1 == X const *, T2 == X))

It's not super clear to me if this ^ is expected behavior, in which case
I'm sorry about the revert & happy to look into ways to fix the original
code.




More information about the All-commits mailing list