[analyzer] Strip trailing whitespace characters from input.

More universal way of removing trailing whitespace characters then 'chomp' does. Chomp "removes any trailing string that corresponds to the current value of $/" (quote from perldoc). In my case an input ended with '\r\r\n', chomp left '\r' at the end of input and the script ended up with an error "Use of uninitialized value in concatenation (.) or string"

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199892 91177308-0d34-0410-b5e6-96231b3b80d8
Add documentation for -m16 option on X86, fix typo

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199894 91177308-0d34-0410-b5e6-96231b3b80d8
MachO embedded: default to soft float without issuing warning

This is a simpler rule, broadly in line with previous Darwin (which chose
between "soft" and "softfp") but probably safer. In practice the only real
reason for "softfp" is ABI compatibility, not usually an issue on limited chips
like these, so anyone who wanted hard-float should already be saying so.

That's my story and I'm sticking to it.

rdar://problem/15887493

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199896 91177308-0d34-0410-b5e6-96231b3b80d8
Fix to PR8880 (clang dies processing a for loop)

Due to statement expressions supported as GCC extension, it is possible
to put 'break' or 'continue' into a loop/switch statement but outside
its body, for example:

    for ( ; ({ if (first) { first = 0; continue; } 0; }); )

This code is rejected by GCC if compiled in C mode but is accepted in C++
code. GCC bug 44715 tracks this discrepancy. Clang used code generation
that differs from GCC in both modes: only statement of the third
expression of 'for' behaves as if it was inside loop body.

This change makes code generation more close to GCC, considering 'break'
or 'continue' statement in condition and increment expressions of a
loop as it was inside the loop body. It also adds error for the cases
when 'break'/'continue' appear outside loop due to this syntax. If
code generation differ from GCC, warning is issued.

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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199897 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] Migrate LLVMParseArguments to CMakeParseArguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199901 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] Parameterize MODULE and SHARED in add_clang_library().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199902 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] Move LIBCLANG_BUILD_STATIC above. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199903 91177308-0d34-0410-b5e6-96231b3b80d8
[AArch64] Add -mgeneral_regs_only option.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199904 91177308-0d34-0410-b5e6-96231b3b80d8
Allow clang to compile the "extern" storage class in OpenCL 1.2. 

Patch from Fraser Cormack!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199906 91177308-0d34-0410-b5e6-96231b3b80d8
Allow clang to compile the "extern" storage class in OpenCL 1.2. 
The tests (forgot to svn add, sorry!).

Patch from Fraser Cormack!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199907 91177308-0d34-0410-b5e6-96231b3b80d8
test/CodeGen: Finish fixing the typo in r199862

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199910 91177308-0d34-0410-b5e6-96231b3b80d8
Intrin.h: fix definitions of _Interlocked{In,De}crement16

The declarations seem correct, but the definitions were using
chars instead of shorts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199923 91177308-0d34-0410-b5e6-96231b3b80d8
Thread safety analysis: handle duplicate assert_lock attributes.

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

This returns a list of valid (and useful) completions for a context (a list
of outer matchers), ordered by decreasing relevance then alphabetically. It
will be used by the matcher parser to implement completion.

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

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199956 91177308-0d34-0410-b5e6-96231b3b80d8
Factor out repeated parsing of a member-declarator when parsing a
member-declaration. In the process, fix a couple of bugs that had crept in
where we would parse the first and subsequent member-declarators differently
(in particular, we didn't accept an asm-label on a member function definition
within a class, and we would accept virt-specifiers and attributes in the wrong
order on the first declarator but not on subsequent ones).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199957 91177308-0d34-0410-b5e6-96231b3b80d8
Add implementations of __readfs{byte,word,dword,qword} to Intrin.h

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199958 91177308-0d34-0410-b5e6-96231b3b80d8
PR18560: When switching to a new context, don't just save and restore an
override for the type of 'this', also clear it out (unless we're entering the
context of a lambda-expression, where it should be inherited).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199962 91177308-0d34-0410-b5e6-96231b3b80d8
Remove outdated documentation suggesting we don't support the C++1y lambda extensions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199964 91177308-0d34-0410-b5e6-96231b3b80d8
Update page on clang diagnostics to contrast to GCC 4.9 instead of 4.2. A lot
of the differences we identified here have been fixed by improvements in GCC.


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