Update R600 datalayout

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209464 91177308-0d34-0410-b5e6-96231b3b80d8
Forgot to add updated datalayout test

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209465 91177308-0d34-0410-b5e6-96231b3b80d8
Improved location for non-constant initializers diagnostics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209466 91177308-0d34-0410-b5e6-96231b3b80d8
Remove limits on the number of fix-it hints and ranges in the DiagnosticsEngine.

Summary:
The limits on the number of fix-it hints and ranges attached to a
diagnostic are arbitrary and don't apply universally to all users of the
DiagnosticsEngine. The way the limits are enforced may lead to diagnostics
generating invalid sets of fixes. I suggest removing the limits, which will also
simplify the implementation.

Reviewers: rsmith

Reviewed By: rsmith

Subscribers: klimek, cfe-commits

Differential Revision: http://reviews.llvm.org/D3879

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209468 91177308-0d34-0410-b5e6-96231b3b80d8
Don't warn about undefined inline functions if they're dllexport/import

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209471 91177308-0d34-0410-b5e6-96231b3b80d8
If a class template specialization from one module has its definition
instantiated in another module, and the instantiation uses a partial
specialization, include the partial specialization and its template arguments
in the update record. We'll need them if someone imports the second module and
tries to instantiate a member of the template.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209472 91177308-0d34-0410-b5e6-96231b3b80d8
Unify the name of compiler-rt builtins library on Linux.

Call it "libclang_rt.builtins-<arch>.a" to be consistent
with sanitizers/profile libraries naming. Modify Makefile
and CMake build systems and Clang driver accordingly.

Fixes PR19822.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209474 91177308-0d34-0410-b5e6-96231b3b80d8
Use error_code::success() instead of make_error_code(llvm::errc::success).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209477 91177308-0d34-0410-b5e6-96231b3b80d8
Don't reduce the stack protector level given -fstack-protector.

Before -fstack-protector would always force a level of 1, even if the default
was 2.

Patch by Brad Smith.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209479 91177308-0d34-0410-b5e6-96231b3b80d8
Avoid allocating extra memory to handle the lazy definition data pointer for
CXXRecordDecls when modules is enabled.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209482 91177308-0d34-0410-b5e6-96231b3b80d8
Don't set unnamed_addr in CreateRuntimeVariable.

This was fairly broken. For example,

@__dso_handle would or would not get an unnamed_addr depending on how many
global destructors were used in a translation unit.

The consensus was that not every runtime variable is unnamed_addr and that
__dso_handle handle should not be, so just don't add unnamed_addr in
CreateRuntimeVariable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209484 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a bug in xmmintrin.h.

The last step of _mm_cvtps_pi16 should use _mm_packs_pi32, which is a function
that reads two __m64 values and packs four 32-bit values into four 16-bit
values.  

<rdar://problem/16873717>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209489 91177308-0d34-0410-b5e6-96231b3b80d8
Clean DiagRanges. Fix a possible problem introduced in r209468.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209491 91177308-0d34-0410-b5e6-96231b3b80d8
Fix '-main-file-name <name>' so that it is used for the ModuleID.

Summary:
Previously, you could not specify the original file name when passing a preprocessed file into the compiler
Now you can use 'clang -Xclang -main-file-name -Xclang <original file name> ...'
Or 'clang -cc1 -main-file-name <original file name> ...'

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209503 91177308-0d34-0410-b5e6-96231b3b80d8
Implemented support for "pragma clang optimize on/off", based on attribute 'optnone'.

This patch implements support for selectively disabling optimizations on a
range of function definitions through a pragma. The implementation is that
all function definitions in the range are decorated with attribute
'optnone'.

    #pragma clang optimize off
    // All function definitions in here are decorated with 'optnone'.
    #pragma clang optimize on
    // Compilation resumes as normal.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209510 91177308-0d34-0410-b5e6-96231b3b80d8
PR19352 - getLocation() points to the wrong position for FriendDecls

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209511 91177308-0d34-0410-b5e6-96231b3b80d8
[test] Force a triple in the pragma optimize test due to expected mangled names.

No functional change to the compiler.
This should just make the test pass on all buildbots.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209515 91177308-0d34-0410-b5e6-96231b3b80d8
[MS-ABI] Implements MS-compatible RTTI
Enables the emission of MS-compatible RTTI data structures for use with 
typeid, dynamic_cast and exceptions.  Does not implement dynamic_cast 
or exceptions.  As an artiface, typeid works in some cases but proper 
support an testing will coming in a subsequent patch.

majnemer has fuzzed the results.  Test cases included.

Differential Revision: http://reviews.llvm.org/D3833




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209523 91177308-0d34-0410-b5e6-96231b3b80d8
Replace system() by native perl calls

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209524 91177308-0d34-0410-b5e6-96231b3b80d8
[MS-ABI] Silence warning from r209523
no functional change.



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