[stackprotector] Add command line option -fstack-protector-strong

This option has the following effects:
 * It adds the sspstrong IR attribute to each function within the CU.
 * It defines the macro __SSP_STRONG__ with the value of 2.

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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201120 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Inline C++ operator new when c++-inline-allocators is turned on.

This will let us stage in the modeling of operator new. The -analyzer-config
opton 'c++-inline-allocators' is currently off by default.

Patch by Karthik Bhat!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201122 91177308-0d34-0410-b5e6-96231b3b80d8
Fix PCH deserialization bug with local static symbols being treated as local extern.

This triggered a miscompilation of code using Boost's function_template.hpp
when it was included inside a PCH file.  A local static within
that header would be treated as local extern, resulting in the wrong
mangling.  This only occurred during PCH deserialization.

Fixes <rdar://problem/15975816> and <rdar://problem/15926311>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201130 91177308-0d34-0410-b5e6-96231b3b80d8
Fix self-hosted -Werror build: delete comma at the end of enumerator list

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201135 91177308-0d34-0410-b5e6-96231b3b80d8
AAPCS: Do not split structs after CPRC allocated on stack

According to the AAPCS, we can split structs between GPRs and the stack,
except for when an argument has already been allocated on the stack. This
can occur when a large number of floating-point arguments fill up the VFP
registers, and are alllocated on the stack before the general-purpose argument
registers are full.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201137 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Fix alignment of comments inside statements.

Before:
  auto result = SomeObject
                // Calling someFunction on SomeObject
                    .someFunction();

After:
  auto result = SomeObject
                    // Calling someFunction on SomeObject
                    .someFunction();

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201138 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Support lambdas with namespace-qualified return types.

E.g.:
  Foo([]()->std::vector<int> { return { 2 }; }());

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201139 91177308-0d34-0410-b5e6-96231b3b80d8
XCore target: Pass through "-fverbose-asm" flag to xcc assembler.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201141 91177308-0d34-0410-b5e6-96231b3b80d8
XCore target: add section information.

Xcore target ABI requires const data that is externally visible
to be handled differently if it has C-language linkage rather than
C++ language linkage.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201142 91177308-0d34-0410-b5e6-96231b3b80d8
AArch64: share slgihtly more NEON implementation with ARM.

The s64/u64 vcvt conversion operations are actually pretty much identical to
the s32/u32 ones in implementation, and can be shared with just one extra
variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201145 91177308-0d34-0410-b5e6-96231b3b80d8
libclang: use namespace qualifiers in the macro, so that it does not require
'using namespace clang::cxindex'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201146 91177308-0d34-0410-b5e6-96231b3b80d8
libclang: audit all APIs that accept a CXTranslationUnit to make sure that
checks for invalid translation unit are in place.  Also, while there, add log
output for this case.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201155 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a typo in the function name that I just introduced (r201155)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201156 91177308-0d34-0410-b5e6-96231b3b80d8
Rename some PCH-related errors to have 'err_' as their prefix


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201157 91177308-0d34-0410-b5e6-96231b3b80d8
'nonnull(1)' on a block parameter should apply to the block's argument.

Thanks to r199467, __attribute__((nonnull)) (without arguments) can apply
directly to parameters, instead of being applied to the whole function.
However, the old form of nonnull (with an argument index) could also apply
to the arguments of function and block pointers, and both of these can be
passed as parameters.

Now, if 'nonnull' with an argument is found on a parameter, /and/ the
parameter is a function or block pointer, it is handled the old way.

PR18795

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201162 91177308-0d34-0410-b5e6-96231b3b80d8
[Sema] Revert the change in r200622 that allowed integer casts to silence -Wnon-literal-null-conversion in C code.

It is actually useful to warn in such cases, thanks to Dmitri for pushing on this and making us see the light!

Related to rdar://15925483 and rdar://15922612. The latter radar is where the usefulness of the warning is most clear.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201165 91177308-0d34-0410-b5e6-96231b3b80d8
Test commit -- Remove an extra newline from Toolchains.cpp


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201172 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Add support for the -vm{b,g,s,m,v} flags

These flags control the inheritance model initially used by the
translation unit.

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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201175 91177308-0d34-0410-b5e6-96231b3b80d8
Remove bad debug info test.

This test case doesn't belong in Clang (it's testing IndVarSimplify) but
in an effort to reproduce the test case this was intended to cover (by
essentially reverting r134441) I wasn't able to reproduce the failure
this test case should've produced. So I haven't ported this down to
LLVM, instead I'm just deleting it.

I suspect the test is just underconstrained, but I've no great interest
in trying hard to fix it right now - if anyone else wants to, I'd be
more than welcome to that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201178 91177308-0d34-0410-b5e6-96231b3b80d8
update of the clang version (should probably managed in the configure)

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