Tests for dr475-dr500.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205127 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Simplify MangleByte

The delta between '\xe1' and '\xc1' is equivalent to the one between 'a'
and 'A'.  This allows us to reuse the computation between '\xe1' and
'\xfa' for the '\xc1' to '\xda' case.

No functionality change.

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

Summary:
Declaring a function as inline after it has been defined is in violation
of [dcl.fct.spec]p4.  The program would get a strong definition instead
of getting a function with linkonce_odr linkage.

Reviewers: rsmith

CC: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205129 91177308-0d34-0410-b5e6-96231b3b80d8
[Allocator] Remove forward declarations of BumpPtrAllocator. These
aren't necessary and will break when it changes to be a typedef of
a class template.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205142 91177308-0d34-0410-b5e6-96231b3b80d8
[PowerPC] Make -pg generate calls to _mcount not mcount

At least on REL6 (Linux/glibc 2.12), the proper symbol for generating gprof
data is _mcount, not mcount. Prior to this change, compiling with -pg would
generate linking errors (because of unresolved references to mcount), after
this change -pg seems at least minimally functional.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205144 91177308-0d34-0410-b5e6-96231b3b80d8
[ARM64] Use %clang_cc1 consistently in the new arm64 codegen tests.
Really, all tests outside of the Driver tree should use %clang_cc1, but
these are new and easy to fix, and many of them use buitlin headers
which don't work as well without using %clang_cc1.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205147 91177308-0d34-0410-b5e6-96231b3b80d8
Force a header file input to the headermap test to have different
contents than the header file by the same name under the system header
search root. Surprisingly, this is required to get the test to pass on
some systems.

So, it turns out that there exist filesystems in the world which unique
the inode of all files based on their contents. This results in two
files with the same contents at different paths suddenly having the same
inode. This doesn't actually cause any problems in practice as the
contents are the same, and the path used to access the files are the
same. However, it can cause tests like this one to be more brittle
because the file manager ends up de-duplicating the file entries by
inode. We don't have any other really easy ways to observe the behavior
shift because the whole point is that the #include written in the source
code doesn't contain the information -- instead it is contained in the
header map.

If folks have other solutions they would prefer, I'm more than happy to
work on them, but this seems a reasonable way to ensure that the test in
question exercises the code it wants to exercise.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205149 91177308-0d34-0410-b5e6-96231b3b80d8
clang/test/Preprocessor/headermap-rel2.c: Recognize dos path.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205152 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Simplify mangleTemplateArgs

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205154 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Correct typo in mangleStringLiteral

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205156 91177308-0d34-0410-b5e6-96231b3b80d8
RTTI: refactor the uniqueness question into CGCXXABI.

This also brings the code into closer conformance with usual LLVM
coding style and other surrounding conventions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205158 91177308-0d34-0410-b5e6-96231b3b80d8
Add documentation for the pcs attribute, based on r129534's commit message.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205160 91177308-0d34-0410-b5e6-96231b3b80d8
[OPENMP] Implemented 'copyin' clause


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205164 91177308-0d34-0410-b5e6-96231b3b80d8
ARM64: remove currently trivial switch statement

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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205169 91177308-0d34-0410-b5e6-96231b3b80d8
Added _rdtsc intrinsics by Robert Khasanov

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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205172 91177308-0d34-0410-b5e6-96231b3b80d8
Slightly improve the readability of MicrosoftVTableContext::computeVTablePaths().  No functionality changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205178 91177308-0d34-0410-b5e6-96231b3b80d8
Reapplying r204952 a second time.

Clean up the __has_attribute implementation without modifying its behavior. 

Replaces the tablegen-driven AttrSpellings.inc, which lived in the lexing layer with AttrHasAttributeImpl.inc, which lives in the basic layer. Updates the preprocessor to call through to this new functionality which can take additional information into account (such as scopes and syntaxes).

Expose the ability for parts of the compiler to ask whether an attribute is supported for a given spelling (including scope), syntax, triple and language options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205181 91177308-0d34-0410-b5e6-96231b3b80d8
clang/tools/driver/Makefile: Quick fix corresponding to r205181.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205189 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Solve issues found and fixed by clang-tidy.

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