Higuoxing added inline comments.
================
Comment at: test/Sema/parentheses.c:114
+ NON_NESTING_VOID_0(i && i || i); // expected-warning {{'&&' within '||'}} \
+ // expected-note {{place parentheses around
the '&&' expression to silence this warning}}
+ NON_NESTING_VOID_0((i && i) || i); // no warning.
----------------
Higuoxing wrote:
> dexonsmith wrote:
> > Can you add fix-it CHECKs?
> ```
> llvm/tools/clang/test/Sema/parentheses.c:109:15: note: place parentheses
> around the '&&' expression to silence this warning
> VOID_CAST(i && i || i); // expected-warning {{'&&' within '||'}} \
> ~~^~~~
> llvm/tools/clang/test/Sema/parentheses.c:17:34: note: expanded from macro
> 'VOID_CAST'
> #define VOID_CAST(cond) ( (void)(cond) )
> ^~~~
> ```
>
> Sorry, it seems that when deal with expressions in macros, there is no fix-it
> hint ...
The `suggestParentheses` suppress the fix-it hint when the expression is in
macros
```
if (ParenRange.getBegin().isFileID() && ParenRange.getEnd().isFileID() &&
EndLoc.isValid()) {
Self.Diag(Loc, Note)
<< FixItHint::CreateInsertion(ParenRange.getBegin(), "(")
<< FixItHint::CreateInsertion(EndLoc, ")");
} else {
// We can't display the parentheses, so just show the bare note.
Self.Diag(Loc, Note) << ParenRange;
}
```
You see, there is a `isFileID()`
https://reviews.llvm.org/D47687
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits