Minor refactoring of my last patch.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185593 91177308-0d34-0410-b5e6-96231b3b80d8
PR16480: Reimplement token-caching for constructor initializer lists. This
previously didn't work if a mem-initializer-id had a template argument which
contained parentheses or braces.

We now implement a simple rule: just look for a ') {' or '} {' that is not
nested. The '{' is assumed to start the function-body. There are still two
cases which we misparse, where the ') {' comes from a compound literal or
from a lambda. The former case is not valid C++, and the latter will probably
not be valid C++ once DR1607 is resolved, so these seem to be of low value,
and we do not regress on them with this change. EDG and g++ also misparse
both of these cases.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185598 91177308-0d34-0410-b5e6-96231b3b80d8
[ObjectiveC migrator] relax the rules for setter/getter
types when deciding on validity of a property
inclusion. // rdar://14345082


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185599 91177308-0d34-0410-b5e6-96231b3b80d8
Improve -Wlogical-not-parentheses to catch when the not is applied to an enum.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185602 91177308-0d34-0410-b5e6-96231b3b80d8
Part of PR15673: If a function template has a default argument in which
substitution failed, report that as a substitution failure rather than
pretending that there was no default argument.

The test cases in PR15673 have exposed some pre-existing poor diagnostics here.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185604 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Make sure that inlined defensive checks work on div by zero.

This suppresses a false positive in std::hash_map.
Fixes  radar://14255587.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185608 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Suppress reports reported in std::list

The motivation is to suppresses false use-after-free reports that occur when calling
std::list::pop_front() or std::list::pop_back() twice. The analyzer does not
reason about the internal invariants of the list implementation, so just do not report
any of warnings in std::list.

Fixes radar://14317928.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185609 91177308-0d34-0410-b5e6-96231b3b80d8
Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185610 91177308-0d34-0410-b5e6-96231b3b80d8
Add a space between closing template '>' to unbreak build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185611 91177308-0d34-0410-b5e6-96231b3b80d8
Testcase for PR14130, which was probably fixed by r183859.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185613 91177308-0d34-0410-b5e6-96231b3b80d8
Add test for PR4997. This has been fixed for a while.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185614 91177308-0d34-0410-b5e6-96231b3b80d8
Added AlwaysBreakBeforeMultilineStrings option.

Summary:
Always breaking before multiline strings can help format complex
expressions containing multiline strings more consistently, and avoid consuming
too much horizontal space.

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits, klimek

Differential Revision: http://llvm-reviews.chandlerc.com/D1097

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185622 91177308-0d34-0410-b5e6-96231b3b80d8
Use SmallVectorImpl::const_iterator instead of SmallVector to avoid specifying the vector size.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185623 91177308-0d34-0410-b5e6-96231b3b80d8
Clang has no nested function support. Delete this test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185628 91177308-0d34-0410-b5e6-96231b3b80d8
Remove old test.

It was not clear what was being tested and the test was trivially passing
by getting grep confused with tcl quotes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185629 91177308-0d34-0410-b5e6-96231b3b80d8
Remove old test.

It was trivially passing because of the tcl quotes and we have better datalayout
tests.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185630 91177308-0d34-0410-b5e6-96231b3b80d8
Replace void with int to make this a valid C++ file.

The test was passing because clang would still print the ast before exiting
with an error. Since that didn't seem to be the intent of the test, I change
the test instead of adding 'not' to the command line.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185634 91177308-0d34-0410-b5e6-96231b3b80d8
Convert test to FileCheck.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185635 91177308-0d34-0410-b5e6-96231b3b80d8
Remove tcl quotes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185636 91177308-0d34-0410-b5e6-96231b3b80d8
Use a clang -cc1 option instead of -m32 and remove tcl quotes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185637 91177308-0d34-0410-b5e6-96231b3b80d8