File tree Expand file tree Collapse file tree 2 files changed +12
-1
lines changed Expand file tree Collapse file tree 2 files changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -2842,7 +2842,8 @@ bool ByteCodeExprGen<Emitter>::VisitCallExpr(const CallExpr *E) {
2842
2842
return false ;
2843
2843
} else if (Func->isVariadic ()) {
2844
2844
uint32_t VarArgSize = 0 ;
2845
- unsigned NumParams = Func->getNumWrittenParams ();
2845
+ unsigned NumParams =
2846
+ Func->getNumWrittenParams () + isa<CXXOperatorCallExpr>(E);
2846
2847
for (unsigned I = NumParams, N = E->getNumArgs (); I != N; ++I)
2847
2848
VarArgSize += align (primSize (classify (E->getArg (I)).value_or (PT_Ptr)));
2848
2849
if (!this ->emitCallVar (Func, VarArgSize, E))
Original file line number Diff line number Diff line change @@ -555,3 +555,13 @@ namespace Local {
555
555
return t;
556
556
}
557
557
}
558
+
559
+ namespace VariadicOperator {
560
+ struct Callable {
561
+ float & operator ()(...);
562
+ };
563
+
564
+ void test_callable (Callable c) {
565
+ float &fr = c (10 );
566
+ }
567
+ }
You can’t perform that action at this time.
0 commit comments