[libc-commits] [libcxx] [lldb] [flang] [clang] [libc] [llvm] [compiler-rt] [clang] Fix assertion failure with deleted overloaded unary operators (PR #78316)

via libc-commits libc-commits at lists.llvm.org
Wed Jan 17 06:12:48 PST 2024


================
@@ -14306,12 +14306,17 @@ Sema::CreateOverloadedUnaryOp(SourceLocation OpLoc, UnaryOperatorKind Opc,
     return ExprError();
 
   case OR_Deleted:
+    // CreateOverloadedUnaryOp fills first element of ArgsArray with the object
+    // whose method was called. Later in NoteCandidates size of ArgsArray is
+    // passed further and it eventually ends up compared to number of function
+    // candidate parameters which never includes implicit object parameter, so
+    // do a slice to ArgsArray to make sure apples are compared to apples.
----------------
cor3ntin wrote:

```suggestion
    // CreateOverloadedUnaryOp fills the first element of ArgsArray with the object
    // whose method was called. Later in NoteCandidates size of ArgsArray is
    // passed further and it eventually ends up compared to number of function
    // candidate parameters which never includes the implicit object parameter, so
    // slice ArgsArray to make sure apples are compared to apples.
```

https://github.com/llvm/llvm-project/pull/78316


More information about the libc-commits mailing list