Fix invalid test generation by utils/ABITest/ABITestGen.py when the same enum is generated more than once.

When generating records/unions, the same enum type may be generated more
than once (with different names). In these cases, the name of the enum
values are not sufficiently unique to prevent multiple declarations. E.g:
  typedef enum T3 { enum0val0 } T3;
  typedef T3 T2[3];
  typedef enum T4 { enum0val0 } T4;
  typedef union T1 { T2 field0; T4 field1; char field2; } T1;

Added a unique suffix to enum values so that multiple identical enum types do
not use the same enum value names.

One example of this bug is produced by:
  ABITestGen.py --no-unsigned --no-vector --no-complex --no-bool \
                --max-args 0 --max-record-depth 1 -o inputs/test.9921.a.c \
                -T inputs/test.9921.b.c -D inputs/test.9921.driver.c \
                --min=9921 --count=1


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216166 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Don't warn on virtual calls in ctors to final methods.

The call will never go to a more derived class, but that's intentional in those
cases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216167 91177308-0d34-0410-b5e6-96231b3b80d8
Driver: Implement -cl-denorms-are-zero

This is currently a no-op, which is allowed by the OpenCL specification.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216179 91177308-0d34-0410-b5e6-96231b3b80d8
R600: Add processor type for hainan

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216180 91177308-0d34-0410-b5e6-96231b3b80d8
R600: Implement getPointerWidthV()

This fixes a crash in the OCL_ImgProc/Canny OpenCV test.

NOTE: This is a candidate for the 3.5 branch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216181 91177308-0d34-0410-b5e6-96231b3b80d8
Range'ify some for loops over RecordDecl::fields()

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216183 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C. Recover from missing interface decl.
and checking on availability of method declaration
instead of crashing. // rdar://18059669


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216191 91177308-0d34-0410-b5e6-96231b3b80d8
Refactor TLI creation. NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216198 91177308-0d34-0410-b5e6-96231b3b80d8
Coverage Mapping: store function's hash in coverage function records.

The profile data format was recently updated and the new indexing api
requires the code coverage tool to know the function's hash as well
as the function's name to get the execution counts for a function.

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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216208 91177308-0d34-0410-b5e6-96231b3b80d8
Pass expressions instead of argument ranges to EmitCall/EmitCXXConstructorCall.

Summary:
This is a first small step towards passing generic "Expr" instead of
ArgBeg/ArgEnd pair into EmitCallArgs() family of methods. Having "Expr" will
allow us to get the corresponding FunctionDecl and its ParmVarDecls,
thus allowing us to alter CodeGen depending on the function/parameter
attributes.

No functionality change.

Test Plan: regression test suite

Reviewers: rnk

Reviewed By: rnk

Subscribers: aemerson, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216214 91177308-0d34-0410-b5e6-96231b3b80d8
Fix grammatical error in diagnostic.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216221 91177308-0d34-0410-b5e6-96231b3b80d8
Simplify this logic now that -W can't be applied to remarks. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216222 91177308-0d34-0410-b5e6-96231b3b80d8
Return statements are initialization; don't forget to revert the initializer to
its syntactic form before re-analyzing it during template instantiation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216224 91177308-0d34-0410-b5e6-96231b3b80d8
Update Clang for LLVM API change to use unique_ptr in SourceManager::AddNewSourceBuffer

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216226 91177308-0d34-0410-b5e6-96231b3b80d8
Update for LLVM API change to remove discriminator tracking from DILexicalBlock (in favor of DILexicalBlockFile - where a default arg is used to avoid the need for API churn of those callers)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216240 91177308-0d34-0410-b5e6-96231b3b80d8
[test/CodeGen/ARM] Adpat test to match new codegen after r216236.


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