https://bugs.llvm.org/show_bug.cgi?id=34180
Bug ID: 34180
Summary: Improve -Wparentheses for arbitrary bool contexts
Product: clang
Version: unspecified
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: Frontend
Assignee: unassignedclangb...@nondot.org
Reporter: chisophu...@gmail.com
CC: llvm-bugs@lists.llvm.org
https://godbolt.org/g/Ca2Xtv
bool f(int x) {
return x = 0;
}
GCC gives:
<source>:2:16: warning: suggest parentheses around assignment used as truth
value [-Wparentheses]
return x = 0;
^
This would have caught a bug in r310794 (https://reviews.llvm.org/rL310794)
I don't know for sure, but from the reduced test case, it seems that GCC is
just seeing when an assignment is used in a bool-typed context? E.g. just
`bool(x = 0)` seems to trigger it. https://godbolt.org/g/HyBZHM
Looking at the two examples, it looks like ImplicitCastExpr to bool is probably
the thing to look for.
ImplicitCastExpr 0x4fce318 <col:12, col:16> '_Bool' <IntegralToBoolean>
ImplicitCastExpr 0x4fce578 <col:17, col:21> '_Bool' <IntegralToBoolean>
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs