]> granicus.if.org Git - clang/log
clang
10 years agoMake setABIAPCS and setABIAAPCS easier to reason about.
Rafael Espindola [Wed, 18 Dec 2013 20:24:51 +0000 (20:24 +0000)]
Make setABIAPCS and setABIAAPCS easier to reason about.

These functions now always set the same variables in the same order and they
don't overlap with thep constructor.

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

10 years agoSplit setABI in two helpers. No functionality change.
Rafael Espindola [Wed, 18 Dec 2013 19:47:32 +0000 (19:47 +0000)]
Split setABI in two helpers. No functionality change.

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

10 years agoFix OpenMP recovery with trailing tokens following the pragma
Alp Toker [Wed, 18 Dec 2013 19:10:54 +0000 (19:10 +0000)]
Fix OpenMP recovery with trailing tokens following the pragma

The recovery was failing due to a missing case in SkipUntil().

Also add back tests from r197553 that were reverted in the previous commit.

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

10 years agoRevert "[OPENMP] Fix for parsing OpenMP directives with extra braces, brackets and...
Alp Toker [Wed, 18 Dec 2013 19:10:49 +0000 (19:10 +0000)]
Revert "[OPENMP] Fix for parsing OpenMP directives with extra braces, brackets and parens"

These parser changes were redundant. The same or better recovery can be
achieved with a one-line fix to SkipUntil() due to land in the next commit.

This reverts commit r197553.

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

10 years agoAdding a win32-targeted test into Tooling/multi-jobs.cpp, to make sure it doesn't...
Artyom Skrobov [Wed, 18 Dec 2013 18:55:36 +0000 (18:55 +0000)]
Adding a win32-targeted test into Tooling/multi-jobs.cpp, to make sure it doesn't get broken again
(prompted by NAKAMURA Takumi)

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

10 years agocheck-clang: Fixup r197576, to replace CMAKE_CFG_INTDIR on clang_tools_dir.
NAKAMURA Takumi [Wed, 18 Dec 2013 18:25:13 +0000 (18:25 +0000)]
check-clang: Fixup r197576, to replace CMAKE_CFG_INTDIR on clang_tools_dir.

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

10 years agoOpenCL: Do not force 64 bit floats for (embedded) targets with only 32bit floats.
Pekka Jaaskelainen [Wed, 18 Dec 2013 18:15:03 +0000 (18:15 +0000)]
OpenCL: Do not force 64 bit floats for (embedded) targets with only 32bit floats.

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

10 years agoObjectiveC. Fixes the sentence in a diagnostic.
Fariborz Jahanian [Wed, 18 Dec 2013 16:51:06 +0000 (16:51 +0000)]
ObjectiveC. Fixes the sentence in a diagnostic.
// rdar://15397430

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

10 years agoclang-format parts of the file.
Rafael Espindola [Wed, 18 Dec 2013 16:38:48 +0000 (16:38 +0000)]
clang-format parts of the file.

I am about to send a patch for review touching these and clang-formating first
makes the patch much easier to read.

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

10 years agoImplement the MSABI and SysVABI calling conventions for Objective-C method declaratio...
Aaron Ballman [Wed, 18 Dec 2013 16:23:37 +0000 (16:23 +0000)]
Implement the MSABI and SysVABI calling conventions for Objective-C method declarations. This appears to be an omission from r189644.

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

10 years agoAdding some comments about AST node requirements for attributes which create AST...
Aaron Ballman [Wed, 18 Dec 2013 15:59:41 +0000 (15:59 +0000)]
Adding some comments about AST node requirements for attributes which create AST nodes but never actually make use of them. No functional changes.

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

10 years agoWhitespace cleanup.
Rafael Espindola [Wed, 18 Dec 2013 15:52:38 +0000 (15:52 +0000)]
Whitespace cleanup.

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

10 years agoRemove OpenCL-specific type keywords and specifiers
Alp Toker [Wed, 18 Dec 2013 15:29:05 +0000 (15:29 +0000)]
Remove OpenCL-specific type keywords and specifiers

This commit kills off custom type specifier and keyword handling of OpenCL C
data types.

Although the OpenCL spec describes them as keywords, we can handle them more
elegantly as predefined types. This should provide better error correction and
code completion as well as simplifying the implementation.

The primary intention is however to simplify the C/C++ parser and save some
packed bits on AST structures that had been extended in r170432 just for
OpenCL.

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

10 years agoAdd -f64:32:64 to the darwin ppc32 DataLayout.
Rafael Espindola [Wed, 18 Dec 2013 15:16:50 +0000 (15:16 +0000)]
Add -f64:32:64 to the darwin ppc32 DataLayout.

A f64 inside a struct can be 32 bit aligned on darwin.

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

10 years agocheck-clang: Introduce clang_tools_dir in lit.site.cfg, for clang separated from...
NAKAMURA Takumi [Wed, 18 Dec 2013 15:08:56 +0000 (15:08 +0000)]
check-clang: Introduce clang_tools_dir in lit.site.cfg, for clang separated from llvm.

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

10 years agoclang/test/CMakeLists.txt: Prune CLANG_SOURCE_DIR and CLANG_BINARY_DIR. They are...
NAKAMURA Takumi [Wed, 18 Dec 2013 15:08:49 +0000 (15:08 +0000)]
clang/test/CMakeLists.txt: Prune CLANG_SOURCE_DIR and CLANG_BINARY_DIR. They are set at top.

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

10 years agoclang-format: Fix indentation corner case.
Daniel Jasper [Wed, 18 Dec 2013 10:44:36 +0000 (10:44 +0000)]
clang-format: Fix indentation corner case.

Before:
  aaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
                 .aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
  aaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
                   .aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa();

After:
  aaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
                 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
                 .aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
  aaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
                   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
                   .aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa();

Probably still not ideal, but should be a step into the right direction.

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

10 years ago[OPENMP] Fix for parsing OpenMP directives with extra braces, brackets and parens
Alexey Bataev [Wed, 18 Dec 2013 08:46:25 +0000 (08:46 +0000)]
[OPENMP] Fix for parsing OpenMP directives with extra braces, brackets and parens

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

10 years agoclang-format: Fix ObjC method expr in binary expressions.
Daniel Jasper [Wed, 18 Dec 2013 07:08:51 +0000 (07:08 +0000)]
clang-format: Fix ObjC method expr in binary expressions.

Before:
  bool a = ([aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaa || [aaaaaaaa aaaaa] ==
                                                         aaaaaaaaaaaaaaaaaaaa);

After:
  bool a = ([aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaa ||
            [aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaaaaa);

This fixes llvm.org/PR18271.

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

10 years agoUse arm-nacl-gnueabi instead of arm-nacl to match the previous tests.
Rafael Espindola [Wed, 18 Dec 2013 04:53:17 +0000 (04:53 +0000)]
Use arm-nacl-gnueabi instead of arm-nacl to match the previous tests.

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

10 years agoSplit this test into one per supporter nacl arch.
Rafael Espindola [Wed, 18 Dec 2013 04:35:56 +0000 (04:35 +0000)]
Split this test into one per supporter nacl arch.

Right now clang produces the same DataLayout for all of them, but it could, for
example, add 'n' specifications when the end architecture is given.

No functionality change, this should just make future changes easier to read.

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

10 years agoPrint the 'p' specification before the 'i' specification.
Rafael Espindola [Wed, 18 Dec 2013 04:14:53 +0000 (04:14 +0000)]
Print the 'p' specification before the 'i' specification.

No functionality change.

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

10 years agoFix comment-code function name mismatch
Hans Wennborg [Wed, 18 Dec 2013 01:39:59 +0000 (01:39 +0000)]
Fix comment-code function name mismatch

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

10 years agoclang-format-diff.py: add the OpenCL file extension
Alp Toker [Wed, 18 Dec 2013 00:58:58 +0000 (00:58 +0000)]
clang-format-diff.py: add the OpenCL file extension

It's handled correctly as a C-family language.

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

10 years agoObjectiveC. typo fix in my last patch,
Fariborz Jahanian [Wed, 18 Dec 2013 00:52:54 +0000 (00:52 +0000)]
ObjectiveC. typo fix in my last patch,
per Jordan's review.

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

10 years agoAdd a 's' specifications to AArch64.
Rafael Espindola [Tue, 17 Dec 2013 23:30:58 +0000 (23:30 +0000)]
Add a 's' specifications to AArch64.

This has no functionality change as clang adds explicit alignment info for
byval arguments. The only difference is that now the clang produced
DataLayout string for AArch64 is identical to the LLVM produced one.

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

10 years agoMove some more test-and-consumes over to TryConsumeToken()
Alp Toker [Tue, 17 Dec 2013 23:29:36 +0000 (23:29 +0000)]
Move some more test-and-consumes over to TryConsumeToken()

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

10 years agoObjctive-C. warn if dealloc is being overridden in
Fariborz Jahanian [Tue, 17 Dec 2013 22:44:28 +0000 (22:44 +0000)]
Objctive-C. warn if dealloc is being overridden in
a category implementation. // rdar://15397430

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

10 years agoDocumentation comment parsing: when checking if we have typedef to something
Dmitri Gribenko [Tue, 17 Dec 2013 22:22:14 +0000 (22:22 +0000)]
Documentation comment parsing: when checking if we have typedef to something
that we consider a function for the purposes of checking \param and \returns,
look through reference types.

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

10 years agoDocumentation comment parsing: allow \param and \returns on std::function,
Dmitri Gribenko [Tue, 17 Dec 2013 22:06:11 +0000 (22:06 +0000)]
Documentation comment parsing: allow \param and \returns on std::function,
boost::function and similar function-like objects

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

10 years agoNone of these attributes currently make use of an AST node, so setting ASTNode =...
Aaron Ballman [Tue, 17 Dec 2013 21:35:24 +0000 (21:35 +0000)]
None of these attributes currently make use of an AST node, so setting ASTNode = 0 to reduce complexity. No functional change intended.

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

10 years agoUse triples that match the -target-abi option.
Rafael Espindola [Tue, 17 Dec 2013 21:01:22 +0000 (21:01 +0000)]
Use triples that match the -target-abi option.

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

10 years agoUse the integrated assembler by default on FreeBSD/ppc and ppc64.
Roman Divacky [Tue, 17 Dec 2013 20:34:25 +0000 (20:34 +0000)]
Use the integrated assembler by default on FreeBSD/ppc and ppc64.

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

10 years ago[ms-cxxabi] The 'most derived' ctor parameter usually comes last
Reid Kleckner [Tue, 17 Dec 2013 19:46:40 +0000 (19:46 +0000)]
[ms-cxxabi] The 'most derived' ctor parameter usually comes last

Unlike Itanium's VTTs, the 'most derived' boolean or bitfield is the
last parameter for non-variadic constructors, rather than the second.
For variadic constructors, the 'most derived' parameter comes after the
'this' parameter.  This affects constructor calls and constructor decls
in a variety of places.

Reviewers: timurrrr

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

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

10 years agoDocumentation comment parsing: rearrange tests to clarify the intent of these tests
Dmitri Gribenko [Tue, 17 Dec 2013 19:45:12 +0000 (19:45 +0000)]
Documentation comment parsing: rearrange tests to clarify the intent of these tests

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

10 years agoFix line endings in microsoft-dtor-lookup-cxx11.cpp
Hans Wennborg [Tue, 17 Dec 2013 19:39:18 +0000 (19:39 +0000)]
Fix line endings in microsoft-dtor-lookup-cxx11.cpp

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

10 years agoObjective-C. Make diagnostics and fix-its consistent
Fariborz Jahanian [Tue, 17 Dec 2013 19:33:43 +0000 (19:33 +0000)]
Objective-C. Make diagnostics and fix-its consistent
when diagnosing casting of a cstring literal to
NSString in default and -fobjc-arc mode.
// rdar://14106083

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

10 years agoFix strange indentation and remove trailing whitespace on empty lines
Dmitri Gribenko [Tue, 17 Dec 2013 19:28:18 +0000 (19:28 +0000)]
Fix strange indentation and remove trailing whitespace on empty lines

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

10 years agoBring order to the OpenCL keywords
Alp Toker [Tue, 17 Dec 2013 18:17:46 +0000 (18:17 +0000)]
Bring order to the OpenCL keywords

Avoid the gratuitous repurposing of C++ keyword 'private' by using a keyword
alias.

Also attempt to document the OpenCL keywords based on scraps of information
found online.

The purpose of this commit is to reduce impact on the C++ parser.

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

10 years ago[ms-cxxabi] Don't do destructor check on declarations if the dtor is deleted
Hans Wennborg [Tue, 17 Dec 2013 17:49:22 +0000 (17:49 +0000)]
[ms-cxxabi] Don't do destructor check on declarations if the dtor is deleted

We would previously emit redundant diagnostics for the following code:

  struct S {
    virtual ~S() = delete;
    void operator delete(void*, int);
    void operator delete(void*, double);
  } s;

First we would check on ~S() and error about the ambigous delete functions,
and then we would error about using the deleted destructor.

If the destructor is deleted, there's no need to check it.

Also, move the check from Sema::ActOnFields to CheckCompleteCXXClass. These
are run at almost the same time, called from ActOnFinishCXXMemberSpecification.
However, CHeckCompleteCXXClass may mark a defaulted destructor as deleted, and
if that's the case we don't want to check it.

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

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

10 years agoFix indentation from r197490 plus some typos
Alp Toker [Tue, 17 Dec 2013 17:25:19 +0000 (17:25 +0000)]
Fix indentation from r197490 plus some typos

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

10 years agoRemove -f128:128 from the DataLayout strings. It is the default.
Rafael Espindola [Tue, 17 Dec 2013 16:07:35 +0000 (16:07 +0000)]
Remove -f128:128 from the DataLayout strings. It is the default.

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

10 years agoThe PS3 is a ppc64 and has 64 bit registers. Update DataLayout accordingly.
Rafael Espindola [Tue, 17 Dec 2013 15:40:00 +0000 (15:40 +0000)]
The PS3 is a ppc64 and has 64 bit registers. Update DataLayout accordingly.

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

10 years agoRemove -f16:16:32 from the XCore DataLayout string.
Rafael Espindola [Tue, 17 Dec 2013 14:34:42 +0000 (14:34 +0000)]
Remove -f16:16:32 from the XCore DataLayout string.

This makes it identical to the string llvm produces.

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

10 years agoRefactor and micro-optimize ConsumeToken()
Alp Toker [Tue, 17 Dec 2013 14:12:37 +0000 (14:12 +0000)]
Refactor and micro-optimize ConsumeToken()

1) Introduce TryConsumeToken() to handle the common test-and-consume pattern.
   This brings about readability improvements in the parser and optimizes to avoid
   redundant checks in the common case.

2) Eliminate the ConsumeCodeCompletionTok special case from ConsumeToken(). This
   was used by only one caller which has been switched over to the more
   appropriate ConsumeCodeCompletionToken() function.

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

10 years agoSimplify RevertibleTypeTraits as a form of contextual keyword
Alp Toker [Tue, 17 Dec 2013 14:12:30 +0000 (14:12 +0000)]
Simplify RevertibleTypeTraits as a form of contextual keyword

Now that we emit diagnostics for keyword-as-identifier hacks (-Wkeyword-compat)
we can go ahead and simplify some of the old revertible keyword support.

This commit adds a TryIdentKeywordUpgrade() function to mirror the recently
added TryKeywordIdentFallback() and uses it to replace the hard-coded list of
REVERTIBLE_TYPE_TRAITs.

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

10 years agoUpdate comment of changed parameter of ModuleMap constructor.
Daniel Jasper [Tue, 17 Dec 2013 13:21:13 +0000 (13:21 +0000)]
Update comment of changed parameter of ModuleMap constructor.

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

10 years agoclang-format: Don't adapt local format to macros.
Daniel Jasper [Tue, 17 Dec 2013 12:38:55 +0000 (12:38 +0000)]
clang-format: Don't adapt local format to macros.

Formatting this:
   void f() { // 1 space initial indent.
      int i;
  #define A   \
      int i;  \
     int j;
        int k; // Format this line.
   }
   void f() {
       #define A 1 // Format this line.
   }

Before:
   void f() { // 1 space initial indent.
      int i;
  #define A   \
      int i;  \
     int j;
     int k;  // Format this line.
   }
   void f() {
   #define A 1  // Format this line.
   }

After:
   void f() { // 1 space initial indent.
      int i;
  #define A   \
      int i;  \
     int j;
      int k;  // Format this line.
   }
   void f() {
  #define A 1  // Format this line.
   }

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

10 years agoLIBRARY_PATH environment variable should only be supported on a native compiler.
Richard Barton [Tue, 17 Dec 2013 11:11:25 +0000 (11:11 +0000)]
LIBRARY_PATH environment variable should only be supported on a native compiler.

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

10 years agoAdd missing file from r197485.
Daniel Jasper [Tue, 17 Dec 2013 10:47:49 +0000 (10:47 +0000)]
Add missing file from r197485.

(Yes, the irony is not lost on me :-) ).

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

10 years agoModules: Don't warn upon missing headers while reading the module map.
Daniel Jasper [Tue, 17 Dec 2013 10:31:37 +0000 (10:31 +0000)]
Modules: Don't warn upon missing headers while reading the module map.

Instead, mark the module as unavailable so that clang errors as soon as
someone tries to build this module.

This works towards the long-term goal of not stat'ing the header files at all
while reading the module map and instead read them only when the module is
being built (there is a corresponding FIXME in parseHeaderDecl()).  However, it
seems non-trivial to get there and this unblock us and moves us into the right
direction.

Also changed the implementation to reuse the same DiagnosticsEngine.

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

10 years ago[CMake][Standalone] Import LLVM_LIT_TOOLS_DIR.
NAKAMURA Takumi [Tue, 17 Dec 2013 04:14:26 +0000 (04:14 +0000)]
[CMake][Standalone] Import LLVM_LIT_TOOLS_DIR.

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

10 years ago[CMake][Standalone] Fix llvm-tblgen's directory to use LLVM_TOOLS_BINARY_DIR instead...
NAKAMURA Takumi [Tue, 17 Dec 2013 04:14:22 +0000 (04:14 +0000)]
[CMake][Standalone] Fix llvm-tblgen's directory to use LLVM_TOOLS_BINARY_DIR instead of LLVM_BINARY_DIR.

LLVM_BINARY_DIR points OBJROOT.

FIXME: llvm-config should show *real* bindir with --bindir.

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

10 years ago[CMake][Standalone] Fixup r197395 for standalone build.
NAKAMURA Takumi [Tue, 17 Dec 2013 04:14:17 +0000 (04:14 +0000)]
[CMake][Standalone] Fixup r197395 for standalone build.

Standalone scripts shall be rewritten.

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

10 years agoASTContext: Refactor implicit record creation
Alp Toker [Tue, 17 Dec 2013 01:22:38 +0000 (01:22 +0000)]
ASTContext: Refactor implicit record creation

Tidy up built-in record creation to reduce code duplication.

Continuation of r197336.

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

10 years agoAdd a test for -fno-diagnostics-fixit-info
Dmitri Gribenko [Tue, 17 Dec 2013 01:19:19 +0000 (01:19 +0000)]
Add a test for -fno-diagnostics-fixit-info

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

10 years agoObjectiveC migrator. Fixes a bug when protocol
Fariborz Jahanian [Tue, 17 Dec 2013 01:01:33 +0000 (01:01 +0000)]
ObjectiveC migrator. Fixes a bug when protocol
conformance is inferred. // rdar://15515206

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

10 years agoFor -Wconsumed, walk the namespaces to find if the top most namespace is "std"
Richard Trieu [Tue, 17 Dec 2013 00:40:40 +0000 (00:40 +0000)]
For -Wconsumed, walk the namespaces to find if the top most namespace is "std"
to determine if a move function is the std::move function.  This allows functions
like std::__1::move to also be treated a the move function.

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

10 years agoReorder these DataLayout entries to match the order LLVM uses.
Rafael Espindola [Tue, 17 Dec 2013 00:04:48 +0000 (00:04 +0000)]
Reorder these DataLayout entries to match the order LLVM uses.

This completes the cleanup/refactoring of DataLayout on the clang side. Next
is figuring out the differences between the llvm and clang produced strings

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

10 years agoclang/lib/Headers/CMakeLists.txt: Revert part of r197395. It should not be staged...
NAKAMURA Takumi [Tue, 17 Dec 2013 00:02:38 +0000 (00:02 +0000)]
clang/lib/Headers/CMakeLists.txt: Revert part of r197395. It should not be staged yet.

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

10 years agoThe preferred alignment defaults to the ABI one. Omit it if it is the same.
Rafael Espindola [Mon, 16 Dec 2013 23:27:41 +0000 (23:27 +0000)]
The preferred alignment defaults to the ABI one. Omit it if it is the same.

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

10 years agoRemove another default I missed before.
Rafael Espindola [Mon, 16 Dec 2013 23:03:23 +0000 (23:03 +0000)]
Remove another default I missed before.

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

10 years agoObjectiveC. Further improvements of use
Fariborz Jahanian [Mon, 16 Dec 2013 22:54:37 +0000 (22:54 +0000)]
ObjectiveC. Further improvements of use
of objc_bridge_related attribute; eliminate
unnecessary diagnostics which is issued elsewhere,
fixit now produces a valid AST tree per convention.
This results in some simplification in handling of
this attribute as well. // rdar://15499111

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

10 years agoClang DataLayout string cleanup: don't print other defaults.
Rafael Espindola [Mon, 16 Dec 2013 22:50:41 +0000 (22:50 +0000)]
Clang DataLayout string cleanup: don't print other defaults.

I missed these in previous commits.

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

10 years agoRemove dead data.
Rafael Espindola [Mon, 16 Dec 2013 22:15:35 +0000 (22:15 +0000)]
Remove dead data.

The f80:128:128 was followed by a f80:32:32 and so never used. Looks like this
was there since r91746.

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

10 years agoClang DataLayout string cleanup: don't print the pointer defaults.
Rafael Espindola [Mon, 16 Dec 2013 21:59:14 +0000 (21:59 +0000)]
Clang DataLayout string cleanup: don't print the pointer defaults.

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

10 years agoClang DataLayout string cleanup: don't print the aggregate defaults.
Rafael Espindola [Mon, 16 Dec 2013 21:51:30 +0000 (21:51 +0000)]
Clang DataLayout string cleanup: don't print the aggregate defaults.

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

10 years agoFix PR18260 - Make std::move handling in -Wconsumed only trigger on std::move
Richard Trieu [Mon, 16 Dec 2013 21:41:30 +0000 (21:41 +0000)]
Fix PR18260 - Make std::move handling in -Wconsumed only trigger on std::move

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

10 years agoClang DataLayout string cleanup: don't print the vector defaults.
Rafael Espindola [Mon, 16 Dec 2013 21:38:22 +0000 (21:38 +0000)]
Clang DataLayout string cleanup: don't print the vector defaults.

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

10 years agoIn a standalone Clang build, default to building tests, like LLVM does
Dmitri Gribenko [Mon, 16 Dec 2013 20:54:13 +0000 (20:54 +0000)]
In a standalone Clang build, default to building tests, like LLVM does

LLVM_INCLUDE_TESTS is set in the top-level LLVM CMakeLists, which is not being
executed when Clang is built in a separate directory.

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

10 years agoClang DataLayout string cleanup: don't print the FP defaults.
Rafael Espindola [Mon, 16 Dec 2013 20:34:33 +0000 (20:34 +0000)]
Clang DataLayout string cleanup: don't print the FP defaults.

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

10 years agoClang DataLayout string cleanup: don't print the integer defaults.
Rafael Espindola [Mon, 16 Dec 2013 20:21:07 +0000 (20:21 +0000)]
Clang DataLayout string cleanup: don't print the integer defaults.

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

10 years agoMisc test cleanups.
Rafael Espindola [Mon, 16 Dec 2013 19:53:26 +0000 (19:53 +0000)]
Misc test cleanups.

* tbaa-struct.cpp always has a 64 bit pointer.
* f32:32:32, f64:64:64 and f128:128:128 are defaults, don't assume they are
  printed.

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

10 years agoRevert "Maybe add new warning for shadowing simple tag types"
Kaelyn Uhrain [Mon, 16 Dec 2013 19:25:47 +0000 (19:25 +0000)]
Revert "Maybe add new warning for shadowing simple tag types"

This reverts commit 2b43f500cfea10a8c59c986dcfc24fd08eecc77d.

This was accidentally committed because I failed to notice my client
wasn't clean prior to submitting a fix for a crasher.

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

10 years agoMake Sema::BuildCXXNestedNameSpecifier correctly clear the previous
Kaelyn Uhrain [Mon, 16 Dec 2013 19:19:18 +0000 (19:19 +0000)]
Make Sema::BuildCXXNestedNameSpecifier correctly clear the previous
CXXScopeSpec when necessary while performing typo correction. This fixes
the crash reported in PR18213 (the problem existed since r185487, and
r193020 made it easier to hit).

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

10 years agoMaybe add new warning for shadowing simple tag types
Kaelyn Uhrain [Mon, 16 Dec 2013 19:19:13 +0000 (19:19 +0000)]
Maybe add new warning for shadowing simple tag types

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

10 years agoSupport EABIHF environment on ARM.
Joerg Sonnenberger [Mon, 16 Dec 2013 19:16:04 +0000 (19:16 +0000)]
Support EABIHF environment on ARM.

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

10 years agoGNUEABIHF is the same as GNUEABI for anything not float/double related,
Joerg Sonnenberger [Mon, 16 Dec 2013 18:30:28 +0000 (18:30 +0000)]
GNUEABIHF is the same as GNUEABI for anything not float/double related,
so use the same exception size as GNUEABI does.

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

10 years ago[AArch64] Fix v1fx patterns for Floating-point Multiply Extend and Floating-point...
Chad Rosier [Mon, 16 Dec 2013 18:29:54 +0000 (18:29 +0000)]
[AArch64] Fix v1fx patterns for Floating-point Multiply Extend and Floating-point Compare to Zero.

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

10 years agoAdd bit_FXSAVE as an alias for bit_FXSR, for gcc compat.
Nico Weber [Mon, 16 Dec 2013 17:54:57 +0000 (17:54 +0000)]
Add bit_FXSAVE as an alias for bit_FXSR, for gcc compat.

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

10 years ago[CMake] Introduce CLANG_RUNTIME_OUTPUT_INTDIR and CLANG_LIBRARY_OUTPUT_INTDIR.
NAKAMURA Takumi [Mon, 16 Dec 2013 16:03:21 +0000 (16:03 +0000)]
[CMake] Introduce CLANG_RUNTIME_OUTPUT_INTDIR and CLANG_LIBRARY_OUTPUT_INTDIR.

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

10 years agoclang-format: Keep trailing annotations together.
Daniel Jasper [Mon, 16 Dec 2013 15:01:54 +0000 (15:01 +0000)]
clang-format: Keep trailing annotations together.

Before:
  virtual void aaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaa aaaa, aaaaaaaaaaa aaaaa) const
      override;
  virtual void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa() const
      override;

After:
  virtual void aaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaa aaaa,
                     aaaaaaaaaaa aaaaa) const override;
  virtual void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa()
      const override;

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

10 years agoRevert "Modules: Make missing headers in a module.map a warning not an error."
Daniel Jasper [Mon, 16 Dec 2013 14:57:22 +0000 (14:57 +0000)]
Revert "Modules: Make missing headers in a module.map a warning not an error."

This was committed accidentally.

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

10 years agoModules: Make missing headers in a module.map a warning not an error.
Daniel Jasper [Mon, 16 Dec 2013 14:53:57 +0000 (14:53 +0000)]
Modules: Make missing headers in a module.map a warning not an error.

Instead, mark the module as unavailable so that clang errors as soon as
someone tries to build this module.

A better long-term strategy might be to not stat the header files at all
while reading the module map and instead read them only when the module
is being built (there is a corresponding FIXME in parseHeaderDecl()).
However, it seems non-trivial to get there and this would be a temporary
solution to unblock us.

Also changed the implementation to reuse the same DiagnosticsEngine as
otherwise warnings can't be enabled or disabled with command-line flags.

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

10 years agoAlways break before the colon in constructor initializers, when
Alexander Kornienko [Mon, 16 Dec 2013 14:35:51 +0000 (14:35 +0000)]
Always break before the colon in constructor initializers, when
BreakConstructorInitializersBeforeComma is true.

This option is used in WebKit style, so this also ensures initializer lists are
not put on a single line, as per the WebKit coding guidelines.

Patch by Florian Sowade!

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

10 years agoAdded -iregex for case-insensitive regex to filter file names.
Alexander Kornienko [Mon, 16 Dec 2013 10:57:30 +0000 (10:57 +0000)]
Added -iregex for case-insensitive regex to filter file names.

Summary:
-regex and -iregex both mimic options of the find utility.
Made the default list of extensions case-insensitive, so that it's not only C
and CPP extensions are accepted in upper case.

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2415

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

10 years agoclang-format: Fix formatting of function type parameters.
Daniel Jasper [Mon, 16 Dec 2013 08:36:18 +0000 (08:36 +0000)]
clang-format: Fix formatting of function type parameters.

Before:
  void f() { typedef void (*f)(int * a); }
After:
  void f() { typedef void (*f)(int *a); }

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

10 years agoclang-format: Improve handling of raw string literals.
Daniel Jasper [Mon, 16 Dec 2013 07:23:08 +0000 (07:23 +0000)]
clang-format: Improve handling of raw string literals.

Especially try to keep existing line breaks before raw string literals,
as the code author might have aligned content to it.

Thereby, clang-format now keeps things like:

  parseStyle(R"(
      BasedOnStyle: Google,
      ColumnLimit: 100)");
  parseStyle(
      R"(BasedOnStyle: Google,
         ColumnLimit: 100)");

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

10 years agoStop crashing on empty asm input constraints
Duncan P. N. Exon Smith [Mon, 16 Dec 2013 03:20:06 +0000 (03:20 +0000)]
Stop crashing on empty asm input constraints

An empty string for an ASM input constraint is invalid, and will crash
during clang CodeGen.  Change TargetInfo::validateInputConstraint to
reject an empty string.

<rdar://problem/15552191>

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

10 years agoAdd tests for all DescriptionString in Targets.cpp.
Rafael Espindola [Sun, 15 Dec 2013 17:53:44 +0000 (17:53 +0000)]
Add tests for all DescriptionString in Targets.cpp.

These right now just test that the same string is present in two files, but will
become more useful as clang's handling of DataLayout is refactored.

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

10 years agoDelete dead code.
Rafael Espindola [Sun, 15 Dec 2013 17:21:28 +0000 (17:21 +0000)]
Delete dead code.

This is always overwritten by the one in NaClTargetInfo.

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

10 years agoRemove unused diagnostic.
Benjamin Kramer [Sun, 15 Dec 2013 14:51:00 +0000 (14:51 +0000)]
Remove unused diagnostic.

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

10 years agoAllow target-specific attributes to share a spelling between different attributes...
Aaron Ballman [Sun, 15 Dec 2013 13:05:48 +0000 (13:05 +0000)]
Allow target-specific attributes to share a spelling between different attributes via the ParseKind field. Attributes will be given a common parsed attribute identifier (the AttributeList::AT_* enum), but retain distinct Attr subclasses.

This new functionality is used to implement the ARM and MSP430 interrupt attribute.

Patch reviewed by Richard Smith over IRC.

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

10 years agoASTContext: Declare builtin types implicitly
Alp Toker [Sun, 15 Dec 2013 10:36:26 +0000 (10:36 +0000)]
ASTContext: Declare builtin types implicitly

__builtin_va_list and friends have been showing up where they shouldn't for way
to long, making unwanted appearences in -ast-print, tooling and source level
visitors and even the hello world tutorial on the clang website.

This commit factors down the implicit typedef and record creation facilities to
ensure they're marked implicit.

Also fixes a unit test that was testing incorrect behaviour, and removes old
hacks in the DeclPrinter that tried to skip implicit declarations manually.

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

10 years agoLexer: Issue -Wbackslash-newline-escape for line comments
Alp Toker [Sat, 14 Dec 2013 23:32:31 +0000 (23:32 +0000)]
Lexer: Issue -Wbackslash-newline-escape for line comments

The warning for backslash and newline separated by whitespace was missed in
this code path.

backslash<whitespace><newline> is handled differently from compiler to compiler
so it's important to warn consistently where there's ambiguity.

Matches similar handling of block comments and non-comment lines.

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

10 years agoFix test containing backslash and newline separated by space
Alp Toker [Sat, 14 Dec 2013 23:32:27 +0000 (23:32 +0000)]
Fix test containing backslash and newline separated by space

This was silently accepted by clang without warning due to a lexer bug.

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

10 years agoAdd triple to CodeGenCXX/2004-03-08-ReinterpretCastCopy.cpp in MS ABI mode
Hans Wennborg [Sat, 14 Dec 2013 17:04:17 +0000 (17:04 +0000)]
Add triple to CodeGenCXX/2004-03-08-ReinterpretCastCopy.cpp in MS ABI mode

I don't think we should need a triple, but this allows us to run the test
until we fix it (PR18251).

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

10 years agoCompilationDatabase.cpp:stripPositionalArgs(): Match not "no-integrated-as" but ...
NAKAMURA Takumi [Sat, 14 Dec 2013 06:03:28 +0000 (06:03 +0000)]
CompilationDatabase.cpp:stripPositionalArgs(): Match not "no-integrated-as" but "-no-integrated-as", it really fixes r197229.

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

10 years agoRemove 'not' from some CodeGen tests
Alp Toker [Sat, 14 Dec 2013 04:49:06 +0000 (04:49 +0000)]
Remove 'not' from some CodeGen tests

These were just missing an expected-no-diagnostics directive.

Also add -std=c++11 to a test warning noisly about extensions.

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

10 years agoPR18246: When performing template argument deduction to decide which template
Richard Smith [Sat, 14 Dec 2013 03:18:05 +0000 (03:18 +0000)]
PR18246: When performing template argument deduction to decide which template
is specialized by an explicit specialization, start from the first declaration
in case we've got a member of a class template (redeclarations might not number
the template parameters the same way).

Our recover here is still far from ideal.

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