]> granicus.if.org Git - clang/log
clang
10 years agos/DebugPrint/dump/g
Douglas Gregor [Fri, 8 Nov 2013 02:16:10 +0000 (02:16 +0000)]
s/DebugPrint/dump/g

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

10 years agoclang-format: Properly indent ObjC calls wrapped before first selector
Daniel Jasper [Fri, 8 Nov 2013 02:08:01 +0000 (02:08 +0000)]
clang-format: Properly indent ObjC calls wrapped before first selector

Before:
  [self // break
      a:a
     aa:aa
  aaaaa:aaa];

After:
  [self // break
          a:a
         aa:aa
      aaaaa:aaa];

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

10 years agoTests for core issue 170-200.
Richard Smith [Fri, 8 Nov 2013 02:05:54 +0000 (02:05 +0000)]
Tests for core issue 170-200.

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

10 years agoObjective-C++ ARC: Improve the conversion to a const __unsafe_unretained reference.
Douglas Gregor [Fri, 8 Nov 2013 02:04:24 +0000 (02:04 +0000)]
Objective-C++ ARC: Improve the conversion to a const __unsafe_unretained reference.

Under ARC++, a reference to a const Objective-C pointer is implicitly
treated as __unsafe_unretained, and can be initialized with (e.g.) a
__strong lvalue. Make sure this behavior does not break template
argument deduction and (related) that partial ordering still prefers a
'T* const&' template over a 'T const&' template when this case kicks
in. Fixes <rdar://problem/14467941>.

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

10 years agoObjectiveC migrator. Added a dropped check in my
Fariborz Jahanian [Fri, 8 Nov 2013 02:00:22 +0000 (02:00 +0000)]
ObjectiveC migrator. Added a dropped check in my
last patch.

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

10 years agoFix a bogus assert I introduced in r194224
Douglas Gregor [Fri, 8 Nov 2013 01:20:25 +0000 (01:20 +0000)]
Fix a bogus assert I introduced in r194224

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

10 years ago[analyzer] Add IdenticalExprChecker, to find copy-pasted code.
Jordan Rose [Fri, 8 Nov 2013 01:15:39 +0000 (01:15 +0000)]
[analyzer] Add IdenticalExprChecker, to find copy-pasted code.

This syntactic checker looks for expressions on both sides of comparison
operators that are structurally the same. As a special case, the
floating-point idiom "x != x" for "isnan(x)" is left alone.

Currently this only checks comparison operators, but in the future we could
extend this to include logical operators or chained if-conditionals.

Checker by Per Viberg!

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

10 years ago[analyzer] Track whether an ObjC for-in loop had zero iterations.
Jordan Rose [Fri, 8 Nov 2013 01:15:35 +0000 (01:15 +0000)]
[analyzer] Track whether an ObjC for-in loop had zero iterations.

An Objective-C for-in loop will have zero iterations if the collection is
empty. Previously, we could only detect this case if the program asked for
the collection's -count /before/ the for-in loop. Now, the analyzer
distinguishes for-in loops that had zero iterations from those with at
least one, and can use this information to constrain the result of calling
-count after the loop.

In order to make this actually useful, teach the checker that methods on
NSArray, NSDictionary, and the other immutable collection classes don't
change the count.

<rdar://problem/14992886>

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

10 years ago[analyzer] Specialize "loop executed 0 times" for for-in and for-range loops.
Jordan Rose [Fri, 8 Nov 2013 01:15:30 +0000 (01:15 +0000)]
[analyzer] Specialize "loop executed 0 times" for for-in and for-range loops.

The path note that says "Loop body executed 0 times" has been changed to
"Loop body skipped when range is empty" for C++11 for-range loops, and to
"Loop body skipped when collection is empty" for Objective-C for-in loops.

Part of <rdar://problem/14992886>

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

10 years agoObjectiveC migrator. Fixes an obscure bug where
Fariborz Jahanian [Fri, 8 Nov 2013 01:15:17 +0000 (01:15 +0000)]
ObjectiveC migrator. Fixes an obscure bug where
NS_RETURNS_INNER_POINTER ends up unintentionally
on the @property under -objcmt-migrate-all
// rdar://15396636

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

10 years agoubsan: Only emit constants for filenames and type descriptors once.
Will Dietz [Fri, 8 Nov 2013 01:09:22 +0000 (01:09 +0000)]
ubsan: Only emit constants for filenames and type descriptors once.

Produces neater IR in significantly less time.

(~18% faster -O0 compile time for sqlite3 with -fsanitize=undefined)

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

10 years agoclang-format: Make breaking before ternary operators configurable.
Daniel Jasper [Fri, 8 Nov 2013 00:57:11 +0000 (00:57 +0000)]
clang-format: Make breaking before ternary operators configurable.

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

10 years agoEliminate an unnecessary .c_str()
Douglas Gregor [Fri, 8 Nov 2013 00:38:03 +0000 (00:38 +0000)]
Eliminate an unnecessary .c_str()

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

10 years ago Adds the ability to inject a DiagnosticConsumer into ClangTools.
Manuel Klimek [Thu, 7 Nov 2013 23:18:05 +0000 (23:18 +0000)]
 Adds the ability to inject a DiagnosticConsumer into ClangTools.

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

10 years agoModules: Teach the preprocessor to recognize 'import' only after an '@'.
Douglas Gregor [Thu, 7 Nov 2013 22:55:02 +0000 (22:55 +0000)]
Modules: Teach the preprocessor to recognize 'import' only after an '@'.

The preprocessor currently recognizes module declarations to load a
module based on seeing the 'import' keyword followed by an
identifier. This sequence is fairly unlikely in C (one would need a
type named 'import'), but is more common in Objective-C (where a
variable named 'import' can cause problems). Since import declarations
currently require a leading '@', recognize that in the preprocessor as
well. Fixes <rdar://problem/15084587>.

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

10 years agoRe-instate contextual conversion to Objective-C pointers in message sends.
Douglas Gregor [Thu, 7 Nov 2013 22:34:54 +0000 (22:34 +0000)]
Re-instate contextual conversion to Objective-C pointers in message sends.

When performing an Objective-C message send to a value of class type,
perform a contextual conversion to an Objective-C pointer type. We've
had this for a long time, but it recently regressed. Fixes
<rdar://problem/15234703>.

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

10 years agoIntroduce MatchFinder::matchAST.
Peter Collingbourne [Thu, 7 Nov 2013 22:30:36 +0000 (22:30 +0000)]
Introduce MatchFinder::matchAST.

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

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

10 years agoRe-introduce MatchFinder::addDynamicMatcher.
Peter Collingbourne [Thu, 7 Nov 2013 22:30:32 +0000 (22:30 +0000)]
Re-introduce MatchFinder::addDynamicMatcher.

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

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

10 years agoPR17800: When performing pack expansion, we must always rebuild the AST nodes
Richard Smith [Thu, 7 Nov 2013 20:07:17 +0000 (20:07 +0000)]
PR17800: When performing pack expansion, we must always rebuild the AST nodes
to avoid breaking AST invariants by reusing Stmt nodes within the same
function.

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

10 years agoclang-format: Improve binary operator detection in macros.
Daniel Jasper [Thu, 7 Nov 2013 19:56:07 +0000 (19:56 +0000)]
clang-format: Improve binary operator detection in macros.

Before:
  #define M(NAME) assert(!Context.Verifying &&#NAME);

After:
  #define M(NAME) assert(!Context.Verifying && #NAME);

This fixes llvm.org/PR16156.

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

10 years agoTests for CWG issue 165-170.
Richard Smith [Thu, 7 Nov 2013 19:26:14 +0000 (19:26 +0000)]
Tests for CWG issue 165-170.

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

10 years agoclang-format: Improve ObjC variadic and binary expression parameters.
Daniel Jasper [Thu, 7 Nov 2013 19:23:49 +0000 (19:23 +0000)]
clang-format: Improve ObjC variadic and binary expression parameters.

Before:
  [self aaaaaaaaaaaaaaa:aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa |
                           aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa |
                           aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa];
  [self aaaaaaaaaaaaaaa:aaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa];

After:
  [self aaaaaaaaaaaaaaa:aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa |
                        aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa |
                        aaaaaaaaaaaaaaa | aaaaaaaaaaaaaaa];
  [self aaaaaaaaaaaaaaa:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa];

This addresses llvm.org/PR15349 and llvm.org/PR16185.

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

10 years agoPR17615: A delegating constructor initializer is a full-expression. Don't
Richard Smith [Thu, 7 Nov 2013 18:45:03 +0000 (18:45 +0000)]
PR17615: A delegating constructor initializer is a full-expression. Don't
forget to clean up temporaries at the end of it.

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

10 years agoAdded a test case for the fix to bug 17632 in r193751
Chris Wailes [Thu, 7 Nov 2013 18:35:18 +0000 (18:35 +0000)]
Added a test case for the fix to bug 17632 in r193751

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

10 years agoXFAIL the test for non-x86 targets for which this message cannot be generated.
Richard Barton [Thu, 7 Nov 2013 18:05:57 +0000 (18:05 +0000)]
XFAIL the test for non-x86 targets for which this message cannot be generated.

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

10 years agoclang-format: Improve formatting of constructor initializers.
Daniel Jasper [Thu, 7 Nov 2013 17:52:51 +0000 (17:52 +0000)]
clang-format: Improve formatting of constructor initializers.

Before:
  Constructor()
      : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaa(aaaa,
                                                                      aaaa)) {}
After:
  Constructor()
      : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
            aaaaaaaaaaaaaaaaaaaaaaaaa(aaaa, aaaa)) {}

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

10 years agoclang-format: Remove old hack that mainly made incorrect tests pass.
Daniel Jasper [Thu, 7 Nov 2013 17:43:07 +0000 (17:43 +0000)]
clang-format: Remove old hack that mainly made incorrect tests pass.

As a side-effect, constructors definitions will correctly be recognized
and formatted as function declarations. Tests will be added in a
follow-up patch actually using the correct recognition.

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

10 years agoRemove an unnecessary condition that I added hastily: Unsigned numbers are obviously...
Faisal Vali [Thu, 7 Nov 2013 16:57:56 +0000 (16:57 +0000)]
Remove an unnecessary condition that I added hastily: Unsigned numbers are obviously >= 0 ;)

Also - others have complained about some white space issues - sorry about that - continues to be a pain point for me - will try and see what I can do with clang-format this evening after work - as a short term fix, if anyone can email me the files that they have already identified with issues, it would help me speed up a focused fix. sorry.

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

10 years agoclang-format: Fix corner case for brace alignment.
Daniel Jasper [Thu, 7 Nov 2013 14:02:28 +0000 (14:02 +0000)]
clang-format: Fix corner case for brace alignment.

Before:
  Constructor::Constructor()
      : some_value{ //
            aaaaaaa //
  } {}

After:
  Constructor::Constructor()
      : some_value{ //
            aaaaaaa //
        } {}

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

10 years agoMinor refinement of VTableBuilder.h: fix wrong indentation, rename a struct field...
Timur Iskhodzhanov [Thu, 7 Nov 2013 13:34:02 +0000 (13:34 +0000)]
Minor refinement of VTableBuilder.h: fix wrong indentation, rename a struct field with a more appropriate name

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

10 years agoAdd parens for || in && in assert. No functionality change.
Benjamin Kramer [Thu, 7 Nov 2013 11:03:53 +0000 (11:03 +0000)]
Add parens for || in && in assert. No functionality change.

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

10 years agoUbuntu has published its Saucy release. 'Trusty Tahr' dev has just started. Add its...
Sylvestre Ledru [Thu, 7 Nov 2013 09:31:30 +0000 (09:31 +0000)]
Ubuntu has published its Saucy release. 'Trusty Tahr' dev has just started. Add its support in Clang

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

10 years agoFixed bug in return type of __builtin_va_start().
Enea Zaffanella [Thu, 7 Nov 2013 08:14:26 +0000 (08:14 +0000)]
Fixed bug in return type of __builtin_va_start().

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

10 years agoMark generic lambdas, and thus C++14, as complete. Add commented-out stub for C++17.
Richard Smith [Thu, 7 Nov 2013 06:41:26 +0000 (06:41 +0000)]
Mark generic lambdas, and thus C++14, as complete. Add commented-out stub for C++17.

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

10 years agoTests for DR150 - DR165.
Richard Smith [Thu, 7 Nov 2013 06:24:09 +0000 (06:24 +0000)]
Tests for DR150 - DR165.

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

10 years agoRewriteBuffer: Remove an unused typedef
Alp Toker [Thu, 7 Nov 2013 06:11:33 +0000 (06:11 +0000)]
RewriteBuffer: Remove an unused typedef

This hasn't been used for some time.

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

10 years agoUnbreak the Clang -Werror build by removing some unused variables
David Blaikie [Thu, 7 Nov 2013 05:52:35 +0000 (05:52 +0000)]
Unbreak the Clang -Werror build by removing some unused variables

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

10 years agoUpdate cxx_dr_status.html to match current cwg issue list.
Richard Smith [Thu, 7 Nov 2013 05:34:58 +0000 (05:34 +0000)]
Update cxx_dr_status.html to match current cwg issue list.

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

10 years agoThis patch implements capturing of variables within generic lambdas.
Faisal Vali [Thu, 7 Nov 2013 05:17:06 +0000 (05:17 +0000)]
This patch implements capturing of variables within generic lambdas.

Both Richard and I felt that the current wording in the working paper needed some tweaking - Please see http://llvm-reviews.chandlerc.com/D2035 for additional context and references to core-reflector messages that discuss wording tweaks.

What is implemented is what we had intended to specify in Bristol; but, recently felt that the specification might benefit from some tweaking and fleshing.

As a rough attempt to explain the semantics: If a nested lambda with a default-capture names a variable within its body, and if the enclosing full expression that contains the name of that variable is instantiation-dependent - then an enclosing lambda that is capture-ready (i.e. within a non-dependent context) must capture that variable, if all intervening nested lambdas can potentially capture that variable if they need to, and all intervening parent lambdas of the capture-ready lambda can and do capture the variable.

Of note, 'this' capturing is also currently underspecified in the working paper for generic lambdas.  What is implemented here is if the set of candidate functions in a nested generic lambda includes both static and non-static member functions (regardless of viability checking - i.e. num and type of parameters/arguments) - and if all intervening nested-inner lambdas between the capture-ready lambda and the function-call containing nested lambda can capture 'this' and if all enclosing lambdas of the capture-ready lambda can capture 'this', then 'this' is speculatively captured by that capture-ready lambda.

Hopefully a paper for the C++ committee (that Richard and I had started some preliminary work on) is forthcoming.

This essentially makes generic lambdas feature complete, except for known bugs. The more prominent ones (and the ones I am currently aware of) being:
  - generic lambdas and init-captures are broken - but a patch that fixes this is already in the works ...
  - nested variadic expansions such as:
    auto K = [](auto ... OuterArgs) {
      vp([=](auto ... Is) {
          decltype(OuterArgs) OA = OuterArgs;
          return 0;
        }(5)...);
      return 0;
    };
    auto M = K('a', ' ', 1, " -- ", 3.14);
   currently cause crashes.  I think I know how to fix this (since I had done so in my initial implementation) - but it will probably take some work and back & forth with Doug and Richard.

A warm thanks to all who provided feedback - and especially to Doug Gregor and Richard Smith for their pivotal guidance: their insight and prestidigitation in such matters is boundless!

Now let's hope this commit doesn't upset the buildbot gods ;)

Thanks!

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

10 years agoAdd the fact that Clang too is planning to start using C++11 (in some
Chandler Carruth [Thu, 7 Nov 2013 00:26:32 +0000 (00:26 +0000)]
Add the fact that Clang too is planning to start using C++11 (in some
limited ways) after the next release. See the lengthy discussions (which
are on-going) and the corresponding commit to LLVM's release notes.
Nothing is actually changing at this point, this is just further
spreading the plan.

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

10 years ago[-fms-extensions] Add support for __FUNCDNAME__
David Majnemer [Wed, 6 Nov 2013 23:31:56 +0000 (23:31 +0000)]
[-fms-extensions] Add support for __FUNCDNAME__

Summary:
Similar to __FUNCTION__, MSVC exposes the name of the enclosing mangled
function name via __FUNCDNAME__.  This implementation is very naive and
unoptimized, it is expected that __FUNCDNAME__ would be used rarely in
practice.

Reviewers: rnk, rsmith, thakis

CC: cfe-commits, silvas
Differential Revision: http://llvm-reviews.chandlerc.com/D2109

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

10 years agoclang-cl: Hide ignored joined flags as well
Alp Toker [Wed, 6 Nov 2013 23:17:02 +0000 (23:17 +0000)]
clang-cl: Hide ignored joined flags as well

This is an addendum to r194174.

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

10 years agoclang-format: Separate line-merging logic into its own class.
Daniel Jasper [Wed, 6 Nov 2013 23:12:09 +0000 (23:12 +0000)]
clang-format: Separate line-merging logic into its own class.

No functional changes (intended).

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

10 years agoDisable a tooling test on Windows.
Peter Collingbourne [Wed, 6 Nov 2013 23:02:51 +0000 (23:02 +0000)]
Disable a tooling test on Windows.

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

10 years agoWork around an MSVC 2013 miscompile with the Redeclarable class. Fixes PR16606
Aaron Ballman [Wed, 6 Nov 2013 22:39:46 +0000 (22:39 +0000)]
Work around an MSVC 2013 miscompile with the Redeclarable class.  Fixes PR16606

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

10 years agoUpdate \param in ToolInvocation() corresponding to r194164. [-Wdocumentation]
NAKAMURA Takumi [Wed, 6 Nov 2013 22:37:12 +0000 (22:37 +0000)]
Update \param in ToolInvocation() corresponding to r194164. [-Wdocumentation]

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

10 years agoclang-cl: Hide ignored flags
Alp Toker [Wed, 6 Nov 2013 22:36:09 +0000 (22:36 +0000)]
clang-cl: Hide ignored flags

We don't want to them to appear in the help text for now.

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

10 years agoThis patch modified ExeBasename as clang-cl.exe to match the preceding comment.
Yaron Keren [Wed, 6 Nov 2013 21:57:50 +0000 (21:57 +0000)]
This patch modified ExeBasename as clang-cl.exe to match the preceding comment.

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

10 years ago[build] Update runtime library and tests to work with relocatable SDKs on OS X 10.9.
Daniel Dunbar [Wed, 6 Nov 2013 21:44:54 +0000 (21:44 +0000)]
[build] Update runtime library and tests to work with relocatable SDKs on OS X 10.9.

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

10 years agoclang-cl: Add /FS as an ignored flag
Alp Toker [Wed, 6 Nov 2013 21:01:23 +0000 (21:01 +0000)]
clang-cl: Add /FS as an ignored flag

CMake-generated Makefiles include this cl flag which can be safely ignored
until we get PDB server support.

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

10 years agoIntroduce ClangTool::buildASTs, and buildASTFromCode.
Peter Collingbourne [Wed, 6 Nov 2013 20:12:45 +0000 (20:12 +0000)]
Introduce ClangTool::buildASTs, and buildASTFromCode.

These allow clients to retrieve persistent AST objects (ASTUnits) which
can be used in an ad-hoc manner after parsing.

To accommodate this change, the code for processing a CompilerInvocation
using a FrontendAction has been factored out to FrontendActionFactory, and
a new base class, ToolAction, has been introduced, allowing the tool to do
arbitrary things with each CompilerInvocation.  This change was necessary
because ASTUnit does not use the FrontendAction interface directly.

This change also causes the FileManager in ClangTool to use shared ownership.
This will become necessary because ASTUnit takes shared ownership of
FileManager (ClangTool's FileManager is currently unused by ASTUnit; this
is a FIXME).  As shown in the tests, any client of ToolInvocation will
need to be modified to use shared ownership for FileManager.

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

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

10 years agoFix diagnostic goof in r194161.
Richard Smith [Wed, 6 Nov 2013 19:43:09 +0000 (19:43 +0000)]
Fix diagnostic goof in r194161.

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

10 years agoAdd a limit to the length of a sequence of 'operator->' functions we will
Richard Smith [Wed, 6 Nov 2013 19:31:51 +0000 (19:31 +0000)]
Add a limit to the length of a sequence of 'operator->' functions we will
follow when building a class member access expression. Based on a patch by
Rahul Jain!

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

10 years agoFix the -cxx-abi microsoft -mconstructor-aliases combination.
Rafael Espindola [Wed, 6 Nov 2013 19:18:55 +0000 (19:18 +0000)]
Fix the -cxx-abi microsoft -mconstructor-aliases combination.

On the microsoft ABI clang is producing one weak_odr and one linkonce_odr
destructor, which is reasonable since only one is required.

The fix is simply to move the assert past the special case treatment of
linkonce_odr.

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

10 years agoThread safety analysis: minor bugfix to smart pointer handling, and expanded
DeLesley Hutchins [Wed, 6 Nov 2013 18:40:01 +0000 (18:40 +0000)]
Thread safety analysis: minor bugfix to smart pointer handling, and expanded
test case.

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

10 years agoSilencing some MSVC warnings about not all control paths returning a value when they...
Aaron Ballman [Wed, 6 Nov 2013 18:15:02 +0000 (18:15 +0000)]
Silencing some MSVC warnings about not all control paths returning a value when they actually do.

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

10 years ago[libclang] Some changes on the linker options for libclang on a CMake build.
Argyrios Kyrtzidis [Wed, 6 Nov 2013 08:37:50 +0000 (08:37 +0000)]
[libclang] Some changes on the linker options for libclang on a CMake build.

- Use the 'libclang.exports' file.
- Pass -Wl,-current_version
- Set install name to "@rpath"

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

10 years agoFix PR17738 - add support for vtordisp thunks when using -cxx-abi microsoft
Timur Iskhodzhanov [Wed, 6 Nov 2013 06:24:31 +0000 (06:24 +0000)]
Fix PR17738 - add support for vtordisp thunks when using -cxx-abi microsoft

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

10 years agoImplement AArch64 Neon instruction set Perm.
Jiangning Liu [Wed, 6 Nov 2013 03:35:53 +0000 (03:35 +0000)]
Implement AArch64 Neon instruction set Perm.

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

10 years agoImplement AArch64 Neon instruction set Bitwise Extract.
Jiangning Liu [Wed, 6 Nov 2013 02:26:12 +0000 (02:26 +0000)]
Implement AArch64 Neon instruction set Bitwise Extract.

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

10 years agoMore constant evaluation cleanup, and fix an issue where we'd override an
Richard Smith [Wed, 6 Nov 2013 02:19:10 +0000 (02:19 +0000)]
More constant evaluation cleanup, and fix an issue where we'd override an
earlier 'non-constant' diagnostic with a later one if the earlier one was from
a side-effect we thought we could evaluate past.

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

10 years agoMicrosoft adds weird padding before virtual bases if the last field was a bitfield
Warren Hunt [Wed, 6 Nov 2013 00:54:59 +0000 (00:54 +0000)]
Microsoft adds weird padding before virtual bases if the last field was a bitfield

This patch adds the same behavior to clang.

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

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

10 years agoIntroduce DynTypedNode::print, dump and getSourceRange.
Peter Collingbourne [Wed, 6 Nov 2013 00:27:12 +0000 (00:27 +0000)]
Introduce DynTypedNode::print, dump and getSourceRange.

These functions can generally be applied to multiple kinds of AST node,
so it makes sense to add them to DynTypedNode.

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

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

10 years agoIntroduce BoundNodes::getMap.
Peter Collingbourne [Wed, 6 Nov 2013 00:27:07 +0000 (00:27 +0000)]
Introduce BoundNodes::getMap.

The purpose of this function is to allow clients of the dynamic AST matcher
to enumerate each binding.

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

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

10 years agoThread safety analysis: check pt_guarded_by attribute when calling -> and *
DeLesley Hutchins [Tue, 5 Nov 2013 23:09:56 +0000 (23:09 +0000)]
Thread safety analysis: check pt_guarded_by attribute when calling -> and *
on smart pointers.  -Wthread-safety-beta only.

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

10 years agoObjectiveC migrator. Please annotation of properties with
Fariborz Jahanian [Tue, 5 Nov 2013 22:28:30 +0000 (22:28 +0000)]
ObjectiveC migrator. Please annotation of properties with
NS_RETURNS_INNER_POINTER under -objcmt-returns-innerpointer-property
flag (off by default), as older compilers do not support such annotations.
// rdar://15396636

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

10 years agoSimplify: we don't care why constant evaluation might have failed when we're
Richard Smith [Tue, 5 Nov 2013 22:23:30 +0000 (22:23 +0000)]
Simplify: we don't care why constant evaluation might have failed when we're
checking an expression for constant overflow.

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

10 years agoRefactor constant expression handling and make a couple of tweaks to make it a
Richard Smith [Tue, 5 Nov 2013 22:18:15 +0000 (22:18 +0000)]
Refactor constant expression handling and make a couple of tweaks to make it a
bit more robust against future changes. This includes a slight diagnostic
improvement: if we know we're only trying to form a constant expression, take
the first diagnostic which shows the expression is not a constant expression,
rather than preferring the first one which makes the expression unfoldable.

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

10 years agoWith this patch -Wwrite-strings is still implemented with the terrible
Rafael Espindola [Tue, 5 Nov 2013 21:43:54 +0000 (21:43 +0000)]
With this patch -Wwrite-strings is still implemented with the terrible
hack of passing -fconst-strings to -cc1, but at least the driver uses
the regular warning checking code path.

Since we don't support a warning that is DefaultIgnore in one language
but not in another, this patch creates a dummy C only warning in the same
group as the existing one to get the desired effect.

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

10 years agoProduce direct calls instead of alias to linkonce_odr functions.
Rafael Espindola [Tue, 5 Nov 2013 21:37:29 +0000 (21:37 +0000)]
Produce direct calls instead of alias to linkonce_odr functions.

This is a small optimization on linux, but should help more on windows
where msvc only outputs one destructor if there would be two identical ones.

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

10 years agoDocumentation tweaks: Fix a typo in a reference to the C++ standard,
James Dennett [Tue, 5 Nov 2013 19:37:38 +0000 (19:37 +0000)]
Documentation tweaks: Fix a typo in a reference to the C++ standard,
another typo in a comment, and update formatting of some comments to
use Doxygen \brief annotations instead of repeating the name of the
documented entity.

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

10 years agoclang-format: Allow line merging and partial formatting of nested blocks
Daniel Jasper [Tue, 5 Nov 2013 19:10:03 +0000 (19:10 +0000)]
clang-format: Allow line merging and partial formatting of nested blocks

Before, clang-format would always format entire nested blocks, which
can be unwanted e.g. for long DEBUG({...}) statements. Also
clang-format would not allow to merge lines in nested blocks (e.g. to
put "if (a) return;" on one line in Google style).

This is the first step of several refactorings mostly focussing on the
additional functionality (by reusing the "format many lines" code to
format the children of a nested block). The next steps are:
* Pull out the line merging into its own class.
* Seperate the formatting of many lines from the formatting of a single
  line (and the analysis of the solution space).

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

10 years agoRevert "Try to correct a mistyped "-" or ">" to "->" for some C++ cases."
Kaelyn Uhrain [Tue, 5 Nov 2013 18:28:21 +0000 (18:28 +0000)]
Revert "Try to correct a mistyped "-" or ">" to "->" for some C++ cases."

Revert this patch until cases of rejected valid code (e.g. identifiers
that require ADL to be resolved properly) are fixed.

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

10 years agoImplement AArch64 Neon Crypto instruction classes AES, SHA, and 3 SHA.
Jiangning Liu [Tue, 5 Nov 2013 17:42:24 +0000 (17:42 +0000)]
Implement AArch64 Neon Crypto instruction classes AES, SHA, and 3 SHA.

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

10 years agoFix vbtable indices when a class shares the vbptr with a non-virtual base
Timur Iskhodzhanov [Tue, 5 Nov 2013 15:54:58 +0000 (15:54 +0000)]
Fix vbtable indices when a class shares the vbptr with a non-virtual base

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

10 years agoDisable test fully with REQUIRES
Alp Toker [Tue, 5 Nov 2013 13:27:19 +0000 (13:27 +0000)]
Disable test fully with REQUIRES

Third time's the charm, sorry for the noise.

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

10 years agoDisable the test that crashes
Alp Toker [Tue, 5 Nov 2013 12:55:00 +0000 (12:55 +0000)]
Disable the test that crashes

XFAIL wasn't enough for some of the build servers.

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

10 years agoFix a test that was never being run, mark it XFAIL
Alp Toker [Tue, 5 Nov 2013 12:45:46 +0000 (12:45 +0000)]
Fix a test that was never being run, mark it XFAIL

Turns out this has always been crashing since the test landed in
r186647:

  Assertion failed: (Access != AS_none && "Access specifier is AS_none inside a record decl"), function CheckAccessDeclContext, file clang/lib/AST/DeclBase.cpp, line 690.

Needs attention.

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

10 years agoMake test run reliably
Alp Toker [Tue, 5 Nov 2013 12:45:43 +0000 (12:45 +0000)]
Make test run reliably

llc waits for input on stdin, which was not provided in this test. It
was running only thanks to a quirk in the way lit concatenates
commands.

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

10 years agoFix test that was not being run
Alp Toker [Tue, 5 Nov 2013 12:45:40 +0000 (12:45 +0000)]
Fix test that was not being run

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

10 years agoFix test that wasn't testing anything
Alp Toker [Tue, 5 Nov 2013 12:45:37 +0000 (12:45 +0000)]
Fix test that wasn't testing anything

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

10 years agoDo not allow functions or kernels called 'main' in OpenCL.
Joey Gouly [Tue, 5 Nov 2013 12:30:39 +0000 (12:30 +0000)]
Do not allow functions or kernels called 'main' in OpenCL.

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

10 years agoSimplify test case added in r194059
David Majnemer [Tue, 5 Nov 2013 10:05:58 +0000 (10:05 +0000)]
Simplify test case added in r194059

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

10 years agoLex: Require that '#' be followed by a macro parameter name when preceded by '##'
David Majnemer [Tue, 5 Nov 2013 09:30:17 +0000 (09:30 +0000)]
Lex: Require that '#' be followed by a macro parameter name when preceded by '##'

After lexing a '##', we would look ahead and check to see if it was
followed by '__VA_ARGS__'.  After doing so, we would then go ahead and
lex the token.

However we would fail in the case where the '##' was followed by a '#'
followed by an identifier because we would have lexed the '#' separately
from the identifier, bypassing our parameter validation logic.

Instead, lex the tokens coming after the '##' later.

This fixes PR17804.

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

10 years agoRemove stray comma from documentation.
Richard Smith [Tue, 5 Nov 2013 09:12:55 +0000 (09:12 +0000)]
Remove stray comma from documentation.

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

10 years agoC++1y sized deallocation: if we have a use, but not a definition, of a sized
Richard Smith [Tue, 5 Nov 2013 09:12:18 +0000 (09:12 +0000)]
C++1y sized deallocation: if we have a use, but not a definition, of a sized
deallocation function (and the corresponding unsized deallocation function has
been declared), emit a weak discardable definition of the function that
forwards to the corresponding unsized deallocation.

This allows a C++ standard library implementation to provide both a sized and
an unsized deallocation function, where the unsized one does not just call the
sized one, for instance by putting both in the same object file within an
archive.

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

10 years agoEnable links now that they work.
Richard Smith [Tue, 5 Nov 2013 08:27:00 +0000 (08:27 +0000)]
Enable links now that they work.

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

10 years agoSema: Improve comment introduced in r193397
David Majnemer [Tue, 5 Nov 2013 08:01:18 +0000 (08:01 +0000)]
Sema: Improve comment introduced in r193397

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

10 years agoExpand the test a bit.
Rafael Espindola [Tue, 5 Nov 2013 07:11:42 +0000 (07:11 +0000)]
Expand the test a bit.

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

10 years agoAdd a testcase from the recent bootstrap failure.
Rafael Espindola [Tue, 5 Nov 2013 06:44:57 +0000 (06:44 +0000)]
Add a testcase from the recent bootstrap failure.

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

10 years agoRevert "Produce direct calls instead of alias to linkonce_odr functions."
Rafael Espindola [Tue, 5 Nov 2013 05:29:54 +0000 (05:29 +0000)]
Revert "Produce direct calls instead of alias to linkonce_odr functions."

This reverts commit r194046.
Debugging a bootstrap issue.

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

10 years agoProduce direct calls instead of alias to linkonce_odr functions.
Rafael Espindola [Tue, 5 Nov 2013 05:22:36 +0000 (05:22 +0000)]
Produce direct calls instead of alias to linkonce_odr functions.

This is a small optimization on linux, but should help more on windows
where msvc only outputs one destructor if there would be two identical ones.

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

10 years agoImplemented aarch64 neon intrinsic vcopy_lane with float type.
Kevin Qin [Tue, 5 Nov 2013 02:05:44 +0000 (02:05 +0000)]
Implemented aarch64 neon intrinsic vcopy_lane with float type.

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

10 years agoObjectiveC. Method implementations should only check for
Fariborz Jahanian [Tue, 5 Nov 2013 00:28:21 +0000 (00:28 +0000)]
ObjectiveC. Method implementations should only check for
"Missing call to Super" in the overriding method and
not in the method itself. // rdar://15385981.

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

10 years agoInclude non-explicit submodules in exported module list
Dmitri Gribenko [Mon, 4 Nov 2013 21:51:33 +0000 (21:51 +0000)]
Include non-explicit submodules in exported module list

This change fixes Richard's testcase for r193815.  Now we include non-explicit
submodules into the list of exports.

The test failed previously because:
- recursive_visibility_a1.inner is not imported (only recursive_visibility_a1 is),
- thus the 'inner' submodule is not showing up in any of the import lists,
- and because of this getExportedModules() is not returning the
  correct module set -- it only considers modules that are imported.

The fix is to make Module::getExportedModules() include non-explicit submodules
into the list of exports.

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

10 years ago[analyzer] Track the count of NSOrderedSet similarly to other fast enumerations.
Anna Zaks [Mon, 4 Nov 2013 19:13:08 +0000 (19:13 +0000)]
[analyzer] Track the count of NSOrderedSet similarly to other fast enumerations.

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

10 years ago[analyzer] Suppress warnings coming out of std::basic_string.
Anna Zaks [Mon, 4 Nov 2013 19:13:03 +0000 (19:13 +0000)]
[analyzer] Suppress warnings coming out of std::basic_string.

The analyzer cannot reason about the internal invariances of the data structure (radar://15194597).

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

10 years agoTry to correct a mistyped "-" or ">" to "->" for some C++ cases.
Kaelyn Uhrain [Mon, 4 Nov 2013 18:59:34 +0000 (18:59 +0000)]
Try to correct a mistyped "-" or ">" to "->" for some C++ cases.

Similar C code isn't caught as it seems to hit a different code path.
Also, as the check is only done for record pointers, cases involving
an overloaded operator-> are not handled either. Note that the reason
this check is done in the parser instead of Sema is not related to
having enough knowledge about the current state as it is about being
able to fix up the parser's state to be able to recover and traverse the
correct code paths.

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

10 years agoUse aliases for more constructors and destructors.
Rafael Espindola [Mon, 4 Nov 2013 18:38:59 +0000 (18:38 +0000)]
Use aliases for more constructors and destructors.

With this patch we produce alias for cases like

template<typename T>
struct foobar {
  foobar() {
  }
};
template struct foobar<void>;

We just have to be careful to produce the same aliases in every TU because
of comdats.

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

10 years agoclang-format this if.
Rafael Espindola [Mon, 4 Nov 2013 17:13:51 +0000 (17:13 +0000)]
clang-format this if.

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