Improve -Wparentheses for arbitrary bool contexts
#33.528 geöffnet am 14. Aug. 2017
Repository-Metriken
- Stars
- (26.378 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 1T 2h) (1.000 gemergte PRs in 30 T)
Beschreibung
| Bugzilla Link | 34180 |
| Version | unspecified |
| OS | Linux |
| CC | @m4tx,@zygoloid |
Extended Description
bool f(int x) { return x = 0; }
GCC gives:
: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'
ImplicitCastExpr 0x4fce578 <col:17, col:21> '_Bool'