aaron.ballman added a comment.

Thank you for working on this fix! I think it's quite close to finished, but it 
needs some additional test coverage. Also, please add a release note about the 
fix so users know what's going on.



================
Comment at: clang/lib/Sema/SemaExpr.cpp:13978-13980
+  if (const CallExpr *CE = dyn_cast<CallExpr>(E))
+    if (const Type *T = CE->getCallReturnType(Context).getTypePtrOrNull())
+      return T->isVoidType();
----------------



================
Comment at: clang/test/SemaCXX/warn-comma-operator.cpp:151
+  // Descriptions about -Wcomma: https://reviews.llvm.org/D3976
+}
+
----------------
Can you also add test cases like:
```
struct S {
  void mem();
};

typedef void Void;
Void typedef_func();

void whatever() {
  S s;
  
  // Member function calls also work as expected.
  s.mem(), int_func();
  // As do lambda calls.
  []() { return; }(), int_func();
  // And we don't get confused about type aliases.
  typedef_func(), int_func();
  // Even function pointers don't confuse us.
  void (*fp)() = void_func;
  fp(), int_func();
}
```


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D131892

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to