Implement -Wshift-op-parentheses for: a << b + c
authorDavid Blaikie <dblaikie@gmail.com>
Fri, 5 Oct 2012 00:41:03 +0000 (00:41 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Fri, 5 Oct 2012 00:41:03 +0000 (00:41 +0000)
commit15f17cbbd81365baeb1d02f3a13ad9cc7b426cae
treeabd08a5394a19acaa40a2ed4fde98d6df88a4494
parent65e8419086ac33afb7e8e30c4cccd9feff818b49
Implement -Wshift-op-parentheses for: a << b + c

This appears to be consistent with GCC's implementation of the same warning
under -Wparentheses. Suppressing a << b + c for cases where 'a' is a user
defined type for compatibility with C++ stream IO. Otherwise suggest
parentheses around the addition or subtraction subexpression.

(this came up when MSVC was complaining (incorrectly, so far as I can tell)
about a perceived violation of this within the LLVM codebase, PR14001)

llvm-svn: 165283
clang/include/clang/Basic/DiagnosticGroups.td
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/lib/Sema/SemaExpr.cpp
clang/test/Sema/parentheses.cpp