Index: lib/Sema/SemaExpr.cpp =================================================================== --- lib/Sema/SemaExpr.cpp +++ lib/Sema/SemaExpr.cpp @@ -10648,6 +10648,8 @@ return true; } } + if (E->getType()->isVoidType()) + return true; return false; } Index: test/SemaCXX/warn-comma-operator.cpp =================================================================== --- test/SemaCXX/warn-comma-operator.cpp +++ test/SemaCXX/warn-comma-operator.cpp @@ -276,3 +276,13 @@ // CHECK: fix-it:{{.*}}:{[[@LINE-7]]:33-[[@LINE-7]]:33}:"static_cast(" // CHECK: fix-it:{{.*}}:{[[@LINE-8]]:46-[[@LINE-8]]:46}:")" } + +void returnsVoid(); + +void noWarningForVoidReturns(int x) { + returnsVoid(), x = 0; + returnsVoid(), + return_four(), // expected-warning {{possible misuse of comma operator here}} \ + expected-note{{cast expression to void}} + returnsVoid(); +}