]> granicus.if.org Git - clang/log
clang
11 years agoObjectiveC migrator: When adding conforming protocol,
Fariborz Jahanian [Wed, 17 Jul 2013 00:02:22 +0000 (00:02 +0000)]
ObjectiveC migrator: When adding conforming protocol,
only add outer-most conforming protocols as adding
others are redundant.

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

11 years agoAvoid breaking non-trailing block comments.
Alexander Kornienko [Tue, 16 Jul 2013 23:47:22 +0000 (23:47 +0000)]
Avoid breaking non-trailing block comments.

Motivating example:
// column limit ------------------->
void ffffffffffff(int aaaaaa /* test */);

Formatting before the patch:
void ffffffffffff(int aaaaaa /* test
                              */);

Formatting after the patch:
void
ffffffffffff(int aaaaaa /* test */);

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

11 years agoFollow coding convention in argument decl.
Fariborz Jahanian [Tue, 16 Jul 2013 23:01:33 +0000 (23:01 +0000)]
Follow coding convention in argument decl.

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

11 years agoMake Expr::isConstantInitializer match IRGen.
Eli Friedman [Tue, 16 Jul 2013 22:40:53 +0000 (22:40 +0000)]
Make Expr::isConstantInitializer match IRGen.

Sema needs to be able to accurately determine what will be
emitted as a constant initializer and what will not, so
we get accurate errors in C and accurate -Wglobal-constructors
warnings in C++.  This makes Expr::isConstantInitializer match
CGExprConstant as closely as possible.

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

11 years ago[arcmt] Remove some dead code.
Argyrios Kyrtzidis [Tue, 16 Jul 2013 22:24:06 +0000 (22:24 +0000)]
[arcmt] Remove some dead code.

Patch by Rafael EspĂ­ndola.

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

11 years agoObjectiveC migrator. If a class implements a protocol's
Fariborz Jahanian [Tue, 16 Jul 2013 21:59:42 +0000 (21:59 +0000)]
ObjectiveC migrator. If a class implements a protocol's
properties, then class conforms to that protocol.

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

11 years agoDon't break line comments with escaped newlines.
Alexander Kornienko [Tue, 16 Jul 2013 21:06:13 +0000 (21:06 +0000)]
Don't break line comments with escaped newlines.

Summary:
These can appear when comments contain command lines with quoted line
breaks. As the text (including escaped newlines and '//' from consecutive lines)
is a single line comment, we used to break it even when it didn't exceed column
limit. This is a temporary solution, in the future we may want to support this
case completely - at least adjust leading whitespace when changing indentation
of the first line.

Reviewers: djasper

Reviewed By: djasper

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D1146

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

11 years agoclang-format: Improve handling of unterminated string literals.
Daniel Jasper [Tue, 16 Jul 2013 20:28:33 +0000 (20:28 +0000)]
clang-format: Improve handling of unterminated string literals.

Before, clang-format would simply eat these as they were recognized as
whitespace. With this patch, they are mostly left alone.

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

11 years agoFix crash on complex constant zero.
Eli Friedman [Tue, 16 Jul 2013 20:19:04 +0000 (20:19 +0000)]
Fix crash on complex constant zero.

Fixes <rdar://problem/14442543>.

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

11 years agoUpdate for llvm API change.
Rafael Espindola [Tue, 16 Jul 2013 19:44:23 +0000 (19:44 +0000)]
Update for llvm API change.

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

11 years agoObjectiveC migration: complete migrating class
Fariborz Jahanian [Tue, 16 Jul 2013 18:58:41 +0000 (18:58 +0000)]
ObjectiveC migration: complete migrating class
declaration to include list of protocols class
conforms to.

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

11 years agoFileCheckize test/Driver/immediate-options.c
Hans Wennborg [Tue, 16 Jul 2013 18:27:29 +0000 (18:27 +0000)]
FileCheckize test/Driver/immediate-options.c

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

11 years agoFix formatting. No functional change.
Craig Topper [Tue, 16 Jul 2013 18:27:27 +0000 (18:27 +0000)]
Fix formatting. No functional change.

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

11 years agoRevamp the formatting of C++11 braced init lists.
Daniel Jasper [Tue, 16 Jul 2013 18:22:10 +0000 (18:22 +0000)]
Revamp the formatting of C++11 braced init lists.

The fundamental concept is:
Format as if the braced init list was a function call (with parentheses
replaced by braces). If there is no name/type before the opening brace
(e.g. if the braced list is nested), assume a zero-length identifier
just before the opening brace.

This behavior is gated on a new style flag, which for now replaces the
SpacesInBracedLists style flag. Activate this style flag for Google
style to reflect recent style guide changes.

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

11 years agoAdd more types to ASTNodeKind. Refactor common instantiation code.
Samuel Benzaquen [Tue, 16 Jul 2013 15:47:24 +0000 (15:47 +0000)]
Add more types to ASTNodeKind. Refactor common instantiation code.

Summary:
Add support for CXXCtorInitializer and TemplateArgument types to ASTNodeKind.
This change is to support more matchers from clang/ASTMatchers/ASTMatchers.h in the dynamic layer (clang/ASTMatchers/Dynamic).

Reviewers: klimek

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

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

11 years agoThis patch removes unused parameter allProperties and converts remaining
Fariborz Jahanian [Tue, 16 Jul 2013 15:33:19 +0000 (15:33 +0000)]
This patch removes unused parameter allProperties and converts remaining
parameters in ArrayRef'ize Sema::ActOnAtEnd  to ArrayRef.
Patch by Robert Wilhelm.

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

11 years agoRemove unnecessary assignment.
Manuel Klimek [Tue, 16 Jul 2013 13:58:44 +0000 (13:58 +0000)]
Remove unnecessary assignment.

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

11 years agoFixes another hard to test problem with iterator invalidation.
Manuel Klimek [Tue, 16 Jul 2013 13:20:30 +0000 (13:20 +0000)]
Fixes another hard to test problem with iterator invalidation.

As every match call can recursively call back into the memoized match
via a nested traversal matcher (for example:
stmt(hasAncestor(stmt(hasDescendant(stmt(hasDescendant(stmt()))))))),
and every memoization step might clear the cache, we must not store
iterators into the result cache when calling match on a submatcher.

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

11 years agoclang-format: Improve detection of function types.
Daniel Jasper [Tue, 16 Jul 2013 11:37:21 +0000 (11:37 +0000)]
clang-format: Improve detection of function types.

This fixes an incorrect detection that led to a formatting error.
Before:
  some_var = function (*some_pointer_var)[0];
After:
  some_var = function(*some_pointer_var)[0];

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

11 years agoFix test on release builds.
Tim Northover [Tue, 16 Jul 2013 10:22:19 +0000 (10:22 +0000)]
Fix test on release builds.

Unfortunately I don't think there's a good way to validate branch targets on
release builds. Fortunately it's a minor part of this test (and based on
generic code) so I don't mind dropping it.

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

11 years agoARM: implement low-level intrinsics for the atomic exclusive operations.
Tim Northover [Tue, 16 Jul 2013 09:47:53 +0000 (09:47 +0000)]
ARM: implement low-level intrinsics for the atomic exclusive operations.

This adds three overloaded intrinsics to Clang:
    T __builtin_arm_ldrex(const volatile T *addr)
    int __builtin_arm_strex(T val, volatile T *addr)
    void __builtin_arm_clrex()

The intent is that these do what users would expect when given most sensible
types. Currently, "sensible" translates to ints, floats and pointers.

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

11 years agoLimit number of bits in size representation so that bit size fit 64 bits.
Serge Pavlov [Tue, 16 Jul 2013 07:14:18 +0000 (07:14 +0000)]
Limit number of bits in size representation so that bit size fit 64 bits.
This fixes PR8256 and some others.

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

11 years agoAdd 'const' qualifiers to static const char* variables.
Craig Topper [Tue, 16 Jul 2013 05:03:10 +0000 (05:03 +0000)]
Add 'const' qualifiers to static const char* variables.

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

11 years agoMerge attributes on typedef decls.
Eli Friedman [Tue, 16 Jul 2013 02:07:49 +0000 (02:07 +0000)]
Merge attributes on typedef decls.

Not completely sure this is right, but it's clearly better than what
we did before this commit (effectively dropping the attribute).

<rdar://problem/14413117>

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

11 years agoFix alignment of class derived from empty class.
Eli Friedman [Tue, 16 Jul 2013 00:21:28 +0000 (00:21 +0000)]
Fix alignment of class derived from empty class.

The record layout code didn't properly take into account that
an empty class at offset 0 can have an alignment greater than 1.

Patch by Andrea Di Biagio.

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

11 years agoObjC migrator: build conforming interface
Fariborz Jahanian [Tue, 16 Jul 2013 00:20:21 +0000 (00:20 +0000)]
ObjC migrator: build conforming interface
declaration (not yet used). wip.

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

11 years agoFix member refs with using decl + anonymous union.
Eli Friedman [Tue, 16 Jul 2013 00:01:31 +0000 (00:01 +0000)]
Fix member refs with using decl + anonymous union.

Make sure we call BuildFieldReferenceExpr with the appropriate decl
when a member of an anonymous union is made public with a using decl.
Also, fix a crash on invalid field access into an anonymous union.

Fixes PR16630.

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

11 years agoTest case for r18266 (serialization support for TagDecl:IsCompleteDefinitionRequired)
David Blaikie [Mon, 15 Jul 2013 21:33:26 +0000 (21:33 +0000)]
Test case for r18266 (serialization support for TagDecl:IsCompleteDefinitionRequired)

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

11 years agoObjC migrator: finding conforming protocol
Fariborz Jahanian [Mon, 15 Jul 2013 21:22:08 +0000 (21:22 +0000)]
ObjC migrator: finding conforming protocol
candidates for each class. wip.

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

11 years agoFix a typo in the diagnostic note added in r186342.
Kaelyn Uhrain [Mon, 15 Jul 2013 21:18:33 +0000 (21:18 +0000)]
Fix a typo in the diagnostic note added in r186342.

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

11 years agoMove the "->" to "." fixit from r186128 into a separate note since
Kaelyn Uhrain [Mon, 15 Jul 2013 19:54:54 +0000 (19:54 +0000)]
Move the "->" to "." fixit from r186128 into a separate note since
recovery is not attempted with the fixit. Also move the associated test
case from FixIt/fixit.cpp to SemaCXX/member-expr.cpp since the fixit is
no longer automatically applied.

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

11 years agoAdd support for type traversal matchers.
Samuel Benzaquen [Mon, 15 Jul 2013 19:25:06 +0000 (19:25 +0000)]
Add support for type traversal matchers.

Summary:
Fixup the type traversal macros/matchers to specify the supported types.
Make the marshallers a little more generic to support any variadic function.
Update the doc script.

Reviewers: klimek

CC: cfe-commits, revane
Differential Revision: http://llvm-reviews.chandlerc.com/D1023

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

11 years agoRe-revert r86040, which was un-reverted in r186199.
Chandler Carruth [Mon, 15 Jul 2013 17:27:42 +0000 (17:27 +0000)]
Re-revert r86040, which was un-reverted in r186199.

This breaks the build of basic patterns with repeated friend
declarations. See the added test case in SemaCXX/friend.cpp or the test
case reported to the original commit log.

Original commit log:
  If we friend a declaration twice, that should not make it visible to
  name lookup in the surrounding context. Slightly rework how we handle
  friend declarations to inherit the visibility of the prior
  declaration, rather than setting a friend declaration to be visible
  whenever there was a prior declaration.

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

11 years agoclang-format: Improve c-style cast detection.
Daniel Jasper [Mon, 15 Jul 2013 15:04:42 +0000 (15:04 +0000)]
clang-format: Improve c-style cast detection.

Before:
  #define x ((int) - 1)
  #define p(q) ((int *) & q)
After:
  #define x ((int)-1)
  #define p(q) ((int *)&q)

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

11 years agoImprovement of change r186320.
Daniel Jasper [Mon, 15 Jul 2013 14:33:14 +0000 (14:33 +0000)]
Improvement of change r186320.

Fixed a test that by now passed for the wrong reason.

Before:
  llvm::outs() << "aaaaaaaaaaaaaaaaaaa: " << aaaaaaaaaaaaa(
                                                 aaaaaaaaaaaaaaaaaaaaaaaaaaaa);
After:
  llvm::outs() << "aaaaaaaaaaaaaaaaaaa: "
               << aaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaa);

Also reformatted Format.cpp with the latest changes (1 formatting fix
and 1 layout change of a <<-chain).

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

11 years agoImprove formatting of operator<< chains.
Daniel Jasper [Mon, 15 Jul 2013 14:12:30 +0000 (14:12 +0000)]
Improve formatting of operator<< chains.

Before:
  llvm::outs() << "aaaaaaaaaaaaaaaa: " << aaaaaaaaaaaaaaaa << "aaaaaaaaaaaaaaaa: "
               << aaaaaaaaaaaaaaaa << "aaaaaaaaaaaaaaaa: " << aaaaaaaaaaaaaaaa;

After:
  llvm::outs() << "aaaaaaaaaaaaaaaa: " << aaaaaaaaaaaaaaaa
               << "aaaaaaaaaaaaaaaa: " << aaaaaaaaaaaaaaaa
               << "aaaaaaaaaaaaaaaa: " << aaaaaaaaaaaaaaaa;

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

11 years agoReplacing an empty switch with its moral equivalent. No functional changes intended.
Aaron Ballman [Mon, 15 Jul 2013 13:41:33 +0000 (13:41 +0000)]
Replacing an empty switch with its moral equivalent.  No functional changes intended.

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

11 years agoAdd 'static' and 'const' qualifiers to some arrays of strings.
Craig Topper [Mon, 15 Jul 2013 08:24:27 +0000 (08:24 +0000)]
Add 'static' and 'const' qualifiers to some arrays of strings.

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

11 years agoFix to PR12262 - assertion when substituting explicit template arguments
Serge Pavlov [Mon, 15 Jul 2013 06:14:07 +0000 (06:14 +0000)]
Fix to PR12262 - assertion when substituting explicit template arguments
does not substitute a sizeof-pack expression.
The solution is proposed by Richard Smith.
Differential Revision: http://llvm-reviews.chandlerc.com/D869

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

11 years agoRevert 186302 to fix build bots.
Craig Topper [Mon, 15 Jul 2013 05:44:18 +0000 (05:44 +0000)]
Revert 186302 to fix build bots.

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

11 years agoUse llvm::array_lengthof to replace sizeof(array)/sizeof(array[0]).
Craig Topper [Mon, 15 Jul 2013 04:28:48 +0000 (04:28 +0000)]
Use llvm::array_lengthof to replace sizeof(array)/sizeof(array[0]).

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

11 years agoUse llvm::array_lengthof to replace sizeof(array)/sizeof(array[0]).
Craig Topper [Mon, 15 Jul 2013 03:38:40 +0000 (03:38 +0000)]
Use llvm::array_lengthof to replace sizeof(array)/sizeof(array[0]).

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

11 years agoReformat line.
Eric Christopher [Sun, 14 Jul 2013 21:15:27 +0000 (21:15 +0000)]
Reformat line.

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

11 years agoMove BlockLiteralGeneric earlier in CGDebugInfo and remove
Eric Christopher [Sun, 14 Jul 2013 21:12:44 +0000 (21:12 +0000)]
Move BlockLiteralGeneric earlier in CGDebugInfo and remove
BlockLiteralGenericSet and replace with a call to isType() on the
BlockLiteralGeneric.

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

11 years agoUpdate a few comments and reformat a decl for clarity.
Eric Christopher [Sun, 14 Jul 2013 21:00:07 +0000 (21:00 +0000)]
Update a few comments and reformat a decl for clarity.

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

11 years agoReplace C++0x in a comment with C++11
Craig Topper [Sun, 14 Jul 2013 17:04:56 +0000 (17:04 +0000)]
Replace C++0x in a comment with C++11

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

11 years agoChange cxx0x to cxx11 in diagnostic name.
Craig Topper [Sun, 14 Jul 2013 17:02:30 +0000 (17:02 +0000)]
Change cxx0x to cxx11 in diagnostic name.

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

11 years agoChange cxx0x to cxx11 in diagnostic name.
Craig Topper [Sun, 14 Jul 2013 17:01:54 +0000 (17:01 +0000)]
Change cxx0x to cxx11 in diagnostic name.

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

11 years agoUse SmallVectorImpl& instead of SmallVector to avoid repeating small vector size.
Craig Topper [Sun, 14 Jul 2013 16:47:36 +0000 (16:47 +0000)]
Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size.

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

11 years agoMake these tests more robust against IRgen choosing to emit more named metadata.
Richard Smith [Sun, 14 Jul 2013 06:18:38 +0000 (06:18 +0000)]
Make these tests more robust against IRgen choosing to emit more named metadata.

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

11 years agoDelete a test that is checking badly for a point bug that Clang never had (and that...
Richard Smith [Sun, 14 Jul 2013 06:17:03 +0000 (06:17 +0000)]
Delete a test that is checking badly for a point bug that Clang never had (and that spuriously fails with modules enabled).

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

11 years agoAdd missing include guards into headers in lib/Headers. While it may appear
Richard Smith [Sun, 14 Jul 2013 05:41:45 +0000 (05:41 +0000)]
Add missing include guards into headers in lib/Headers. While it may appear
that these headers should not be included more than once, they are in fact
included twice when building our builtins module (in order for it to generate
submodules for them), and without this, any modular build enabling AVX and
including any builtin header fails.

Testing this is tricky because including any of these headers in a modular
build is liable to fail, due to unrelated builtin headers in the same module
including headers which might not be available on the system running the tests.
Suggestion on that front are welcome (but we're getting close to being able to
run a buildbot that has modules enabled for all tests, which would nicely solve
the testing problem).

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

11 years agoIf an unimported submodule of an imported module contains a declaration of a
Richard Smith [Sun, 14 Jul 2013 02:01:48 +0000 (02:01 +0000)]
If an unimported submodule of an imported module contains a declaration of a
global allocation or deallocation function, that should not cause that global
allocation or deallocation function to become unavailable.

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

11 years agoSerialization support for TagDecl::IsCompleteDefinitionRequired
David Blaikie [Sun, 14 Jul 2013 01:07:41 +0000 (01:07 +0000)]
Serialization support for TagDecl::IsCompleteDefinitionRequired

Requested by Richard Smith in post-commit review of r186262

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

11 years agoInitialize the "IsCompleteDefinitionRequired" field in the ASTContext ctor
David Blaikie [Sat, 13 Jul 2013 22:29:32 +0000 (22:29 +0000)]
Initialize the "IsCompleteDefinitionRequired" field in the ASTContext ctor

Introduced in r186262 & found by the hexagon buildbots (but owing to
this being UB, that's random chance - so there's no additional test case
here)

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

11 years agoPR16214, PR14467: DebugInfo: use "RequireCompleteType" to decide when to emit the...
David Blaikie [Sat, 13 Jul 2013 21:08:14 +0000 (21:08 +0000)]
PR16214, PR14467: DebugInfo: use "RequireCompleteType" to decide when to emit the full definition of a type in -flimit-debug-info

This simplifies the core benefit of -flimit-debug-info by taking a more
systematic approach to avoid emitting debug info definitions for types
that only require declarations. The previous ad-hoc approach (3 cases
removed in this patch) had many holes.

The general approach (adding a bit to TagDecl and callback through
ASTConsumer) has been discussed with Richard Smith - though always open
to revision.

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

11 years agoCorrectly classify pack expansions as NON_CANONICAL_UNLESS_DEPENDENT
David Blaikie [Sat, 13 Jul 2013 21:08:08 +0000 (21:08 +0000)]
Correctly classify pack expansions as NON_CANONICAL_UNLESS_DEPENDENT

Test coverage for non-dependent pack expansions doesn't demonstrate a
failure prior to this patch (a follow-up commit improving debug info
will cover this commit specifically) but covers a related hole in our
test coverage.

Reviewed by Richard Smith & Eli Friedman.

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

11 years agoSimplify getTypeInfoImpl handling of 'non-canonical unless dependent' types.
David Blaikie [Sat, 13 Jul 2013 21:08:03 +0000 (21:08 +0000)]
Simplify getTypeInfoImpl handling of 'non-canonical unless dependent' types.

These types are not dependent in this context, so just look through
the sugar.

Review by Richard Smith & Eli Friedman.

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

11 years agoRevert "Revert "PR16540: ASTVector::insert(Context, Iter, Element) doesn't compile""
David Blaikie [Sat, 13 Jul 2013 19:23:35 +0000 (19:23 +0000)]
Revert "Revert "PR16540: ASTVector::insert(Context, Iter, Element) doesn't compile""

This reverts commit b18b043a5a37f76803d89467e46bcac286c0ecae.

Reapply with fix for the configure+make build (missing include of
ASTContext.h).

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

11 years agoRevert "PR16540: ASTVector::insert(Context, Iter, Element) doesn't compile"
David Blaikie [Sat, 13 Jul 2013 18:54:56 +0000 (18:54 +0000)]
Revert "PR16540: ASTVector::insert(Context, Iter, Element) doesn't compile"

This reverts commit r186253.

This is failing to link under Configure+Make on the buildbots for
reasons I don't immediately understand.

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

11 years agoPR16540: ASTVector::insert(Context, Iter, Element) doesn't compile
David Blaikie [Sat, 13 Jul 2013 18:08:59 +0000 (18:08 +0000)]
PR16540: ASTVector::insert(Context, Iter, Element) doesn't compile

Fix some uninstantiable code in ASTVector::insert. I've added a
cheap-and-dirty compile test for this, because I don't have the time to
figure out a nice way to get a real ASTContext to implement executable
tests - but we probably should have them for this ADT.

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

11 years agoFixes a typo caught by Arthur O'Dwyer
Fariborz Jahanian [Sat, 13 Jul 2013 17:16:41 +0000 (17:16 +0000)]
Fixes a typo caught by Arthur O'Dwyer

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

11 years agoC++ modules: Don't call DeclContext::lookup when half-way through deserializing
Richard Smith [Sat, 13 Jul 2013 02:00:19 +0000 (02:00 +0000)]
C++ modules: Don't call DeclContext::lookup when half-way through deserializing
decls. That can reenter deserialization and explode horribly by trying to merge
a declaration that we've not got very far through deserializing yet.

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

11 years ago[ms-cxxabi] Don't consider function templates for name backrefs
Reid Kleckner [Sat, 13 Jul 2013 00:43:39 +0000 (00:43 +0000)]
[ms-cxxabi] Don't consider function templates for name backrefs

They don't seem to be used for back references, presumably because a
function template is unlikely to reoccur, while a class template name
may reoccur as a type.

This fixes a mangling issue for llvm::hash_combine() in Hashing.h.

Reviewers: timurrrr

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

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

11 years agoObjC migrator: More knobs for migrating
Fariborz Jahanian [Sat, 13 Jul 2013 00:04:20 +0000 (00:04 +0000)]
ObjC migrator: More knobs for migrating
conforming protocols to each class. wip.

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

11 years agoObjC migrator: early work for migrating implicitly conforming
Fariborz Jahanian [Fri, 12 Jul 2013 22:32:19 +0000 (22:32 +0000)]
ObjC migrator: early work for migrating implicitly conforming
protocols to classes. This is wip.

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

11 years agoChanges so that a few tests do not fail when running under guarded malloc.
Argyrios Kyrtzidis [Fri, 12 Jul 2013 22:30:03 +0000 (22:30 +0000)]
Changes so that a few tests do not fail when running under guarded malloc.

Guarded malloc emits some messages at the beginning in stderr when enabled.
These messages caused a few tests to fail.

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

11 years agoUse function attributes to pass along the stack protector buffer size instead of...
Bill Wendling [Fri, 12 Jul 2013 22:26:07 +0000 (22:26 +0000)]
Use function attributes to pass along the stack protector buffer size instead of making it a target option.

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

11 years agoCompute 'this' correctly for block in lambda.
Eli Friedman [Fri, 12 Jul 2013 22:05:26 +0000 (22:05 +0000)]
Compute 'this' correctly for block in lambda.

Using CurFuncDecl is both correct and simple compared to crawling
the DeclContexts of the block.

Fixes <rdar://problem/14415072>.

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

11 years agoProvide a better diagnostic and a fixit for a '.' or '->' before the left paren
Kaelyn Uhrain [Fri, 12 Jul 2013 21:43:02 +0000 (21:43 +0000)]
Provide a better diagnostic and a fixit for a '.' or '->' before the left paren
of a function call.

This fixes PR5898 and means we now have a better diagnostic here than GCC.

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

11 years agoUnrevert r186040, reverted in r186185, with fix for PR16597.
Richard Smith [Fri, 12 Jul 2013 20:38:49 +0000 (20:38 +0000)]
Unrevert r186040, reverted in r186185, with fix for PR16597.

Original commit log:
  If we friend a declaration twice, that should not make it visible to
  name lookup in the surrounding context. Slightly rework how we handle
  friend declarations to inherit the visibility of the prior
  declaration, rather than setting a friend declaration to be visible
  whenever there was a prior declaration.

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

11 years agoRevert r186040 to fix PR16597 while Richard investigates what the best
Chandler Carruth [Fri, 12 Jul 2013 18:54:40 +0000 (18:54 +0000)]
Revert r186040 to fix PR16597 while Richard investigates what the best
fix is.

Original commit log:
  If we friend a declaration twice, that should not make it visible to
  name lookup in the surrounding context. Slightly rework how we handle
  friend declarations to inherit the visibility of the prior
  declaration, rather than setting a friend declaration to be visible
  whenever there was a prior declaration.

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

11 years ago[analyzer] Treat nullPtrType as a location type.
Anna Zaks [Fri, 12 Jul 2013 17:58:33 +0000 (17:58 +0000)]
[analyzer] Treat nullPtrType as a location type.

Fixes PR16584 (radar://14415223).

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

11 years agofixes a typo caught by Jordan.
Fariborz Jahanian [Fri, 12 Jul 2013 16:41:56 +0000 (16:41 +0000)]
fixes a typo caught by Jordan.

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

11 years agoObjective-C: Produce gcc compatible encoding of
Fariborz Jahanian [Fri, 12 Jul 2013 16:19:11 +0000 (16:19 +0000)]
Objective-C: Produce gcc compatible encoding of
ivar type in meta-data while preventing recursive
encoding in a corner case. // rdar://14408244

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

11 years ago[scan-build] Add missing comma to ccc-analyzer.
Jordan Rose [Fri, 12 Jul 2013 16:07:33 +0000 (16:07 +0000)]
[scan-build] Add missing comma to ccc-analyzer.

Thanks, Dmitry!

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

11 years agoclang-format: Improve <<-formatting.
Daniel Jasper [Fri, 12 Jul 2013 15:14:05 +0000 (15:14 +0000)]
clang-format: Improve <<-formatting.

This fixes a regression caused by r186115.

Before:
  Diag(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
       bbbbbbbbb) << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
                  << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;

After:
  Diag(aaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbb)
      << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
      << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;

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

11 years agoclang-format: Fix string literal breaking.
Daniel Jasper [Fri, 12 Jul 2013 11:37:05 +0000 (11:37 +0000)]
clang-format: Fix string literal breaking.

Before this patch, it did not cooperate with
Style::AlwaysBreakBeforeMultilineStrings. Thus, it would turn

  aaaaaaaaaaaa(aaaaaaaaaaaaa, "aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa");

into:

  aaaaaaaaaaaa(aaaaaaaaaaaaa, "aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa "
                              "aaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa");

and only a second format step would lead to the desired (with that
option):

  aaaaaaaaaaaa(aaaaaaaaaaaaa,
               "aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa "
               "aaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa");

This could even lead to clang-format breaking the string at a different
character and thus leading to a completely different end result.

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

11 years agoclang-format: Break before/between array subscript expressions.
Daniel Jasper [Fri, 12 Jul 2013 11:19:37 +0000 (11:19 +0000)]
clang-format: Break before/between array subscript expressions.

clang-format used to treat array subscript expressions much like
function call (just replacing () with []). However, this is not really
appropriate especially for expressions with multiple subscripts.

Although it might seem counter-intuitive, the most consistent solution
seems to be to always (if necessary) break before a square bracket,
never after it. Also, multiple subscripts of the same expression should
be aligned if they are on subsequent lines.

Before:
  aaaaaaaaaaaaaaaaaaaaaaaaa[aaaaaaaaaaaaaaaaaaaaaaaaa][
      bbbbbbbbbbbbbbbbbbbbbbbbb] = c;
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa][
      bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = ccccccccccc;

After:
  aaaaaaaaaaaaaaaaaaaaaaaaa[aaaaaaaaaaaaaaaaaaaaaaaaa]
                           [bbbbbbbbbbbbbbbbbbbbbbbbb] = c;
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
      [aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
      [bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = ccccccccccc;

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

11 years ago[analyzer] Add support for __builtin_addressof.
Jordan Rose [Fri, 12 Jul 2013 00:26:14 +0000 (00:26 +0000)]
[analyzer] Add support for __builtin_addressof.

...so we don't regress on std::addressof.

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

11 years ago[scan-build] Pass through all -f and -O flags, along with -Wwrite-strings.
Jordan Rose [Thu, 11 Jul 2013 23:56:12 +0000 (23:56 +0000)]
[scan-build] Pass through all -f and -O flags, along with -Wwrite-strings.

These flags control language options and user-visible macros, so it's
important to preserve them when analyzing. Rather than try to keep up
with all the -f flags, we'll pass them all through and then ban the ones
we don't want (like -fsyntax-only).

-Wwrite-strings is really an f-flag in disguise: it implies -fconst-strings.

Patch by Keaton Mowry, modified by me.

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

11 years agoFix crash on zero-argument assignment operator.
Eli Friedman [Thu, 11 Jul 2013 23:55:07 +0000 (23:55 +0000)]
Fix crash on zero-argument assignment operator.

Make sure we don't crash when checking whether an assignment operator
without any arguments is a special member.  <rdar://problem/14397774>.

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

11 years agoAdd the ability to use guarded malloc when running clang's lit tests.
David Dean [Thu, 11 Jul 2013 23:37:50 +0000 (23:37 +0000)]
Add the ability to use guarded malloc when running clang's lit tests.

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

11 years agoProvide a fixit hint for changing '->' to '.' if there is no operator->
Kaelyn Uhrain [Thu, 11 Jul 2013 22:38:30 +0000 (22:38 +0000)]
Provide a fixit hint for changing '->' to '.' if there is no operator->
defined for a class.

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

11 years agoMake CXXBaseSpecifier::getType return unqual type.
Eli Friedman [Thu, 11 Jul 2013 22:22:22 +0000 (22:22 +0000)]
Make CXXBaseSpecifier::getType return unqual type.

Various pieces of code, like base initialization in Sema and RTTI IRGen,
don't properly ignore qualifiers on base classes.  Instead of auditing the
whole codebase, just strip them off in the getter.  (The type as written is
still available in the TypeSourceInfo for code that cares.)

Fixes PR16596.

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

11 years agoclang-format: Fix bug concerning the alignment of "}".
Daniel Jasper [Thu, 11 Jul 2013 21:27:40 +0000 (21:27 +0000)]
clang-format: Fix bug concerning the alignment of "}".

Before:
    int i;  // indented 2 space more than clang-format would use.
    SomeReturnType  // clang-format invoked on this line.
    SomeFunctionMakingLBraceEndInColumn80() {
  }  // This is the indent clang-format would prefer.

After:
    int i;  // indented 2 space more than clang-format would use.
    SomeReturnType  // clang-format invoked on this line.
    SomeFunctionMakingLBraceEndInColumn80() {
    }

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

11 years agoclang-format: Break before trailing annotations.
Daniel Jasper [Thu, 11 Jul 2013 21:02:56 +0000 (21:02 +0000)]
clang-format: Break before trailing annotations.

(if they are not function-like).

Before:
  SomeFunction(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
      OVERRIDE;

After:
  SomeFunction(aaaaaaaaaaaaaaaaaaaaaa,
               aaaaaaaaaaaaaaaaaaaaaaaa) OVERRIDE;

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

11 years agoclang-format: Avoid line breaks before the first <<.
Daniel Jasper [Thu, 11 Jul 2013 20:41:21 +0000 (20:41 +0000)]
clang-format: Avoid line breaks before the first <<.

This puts a slight penalty on the linebreak before the first "<<", so
that clang-format generally tries to keep things on the first line.

User feedback has shown that this is generally desirable.

Before:
  llvm::outs()
      << "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =" << aaaaaaaaaaaaaaaaaaaaaaaaaaa;

After:
  llvm::outs() << "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ="
               << aaaaaaaaaaaaaaaaaaaaaaaaaaa;

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

11 years agoRestore warning to its original text when
Fariborz Jahanian [Thu, 11 Jul 2013 19:13:34 +0000 (19:13 +0000)]
Restore warning to its original text when
certain familiy of methods have the wrong type.
// rdar://14408244

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

11 years agoSimplify GetBuiltinNames by hoising the NoBuiltins argument out of it.
Eli Bendersky [Thu, 11 Jul 2013 16:53:04 +0000 (16:53 +0000)]
Simplify GetBuiltinNames by hoising the NoBuiltins argument out of it.

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

11 years agoObjectiveC arc[qoi]: When due to change of certain methods'
Fariborz Jahanian [Thu, 11 Jul 2013 16:48:06 +0000 (16:48 +0000)]
ObjectiveC arc[qoi]: When due to change of certain methods'
result type, a diagnostic being issued, issue a 'note'
mentioning reason behind the unexpected warning.
// rdar://14121570.

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

11 years agoImprove detection of trailing return types.
Daniel Jasper [Thu, 11 Jul 2013 14:33:06 +0000 (14:33 +0000)]
Improve detection of trailing return types.

Trailing return types can only occur in declaration contexts.

Before:
  void f() { auto a = b -> c(); }

After:
  void f() { auto a = b->c(); }

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

11 years agoFix indentation problem for comments in call chains
Daniel Jasper [Thu, 11 Jul 2013 13:48:16 +0000 (13:48 +0000)]
Fix indentation problem for comments in call chains

Before:
SomeObject
    // Calling someFunction on SomeObject
        .someFunction();

After:
SomeObject
    // Calling someFunction on SomeObject
    .someFunction();

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

11 years agoKeep trailing annotations close to their argument.
Daniel Jasper [Thu, 11 Jul 2013 12:34:23 +0000 (12:34 +0000)]
Keep trailing annotations close to their argument.

Before:
bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa GUARDED_BY(
    aaaaaaaaaaaa);

After:
bool aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    GUARDED_BY(aaaaaaaaaaaa);

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

11 years agoPR5066: If a declarator cannot have an identifier, and cannot possibly be
Richard Smith [Thu, 11 Jul 2013 05:10:21 +0000 (05:10 +0000)]
PR5066: If a declarator cannot have an identifier, and cannot possibly be
followed by an identifier, then diagnose an identifier as being a bogus part of
the declarator instead of tripping over it. Improves diagnostics for cases like

  std::vector<const int *p> my_vec;

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

11 years agoDocumentation fixes - the rest of DeclCXX.h:
James Dennett [Thu, 11 Jul 2013 05:01:16 +0000 (05:01 +0000)]
Documentation fixes - the rest of DeclCXX.h:
* More \brief additions/fixes;
* Fix some misleading comments about C++11's explicit conversion operators;
* Mark up some \code examples;
* Add \file documentation.

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

11 years agoDocumentation cleanup for DeclCXX.h:
James Dennett [Thu, 11 Jul 2013 03:51:36 +0000 (03:51 +0000)]
Documentation cleanup for DeclCXX.h:
* Fixing up \brief summaries (adding some, making some briefer);
* Standardizing on \commands, not @commands;
* Update C++0x references to C++11;
* Fix typos and Doxygen warnings.

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

11 years agoclang/test/CodeGen/c11atomics.c: Fix testcase for -Asserts since r186054.
NAKAMURA Takumi [Thu, 11 Jul 2013 03:45:54 +0000 (03:45 +0000)]
clang/test/CodeGen/c11atomics.c: Fix testcase for -Asserts since r186054.

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

11 years agoFix build.
Eli Friedman [Thu, 11 Jul 2013 02:28:36 +0000 (02:28 +0000)]
Fix build.

Sorry about that.

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

11 years agoAdd a __builtin_addressof that performs the same functionality as the built-in
Richard Smith [Thu, 11 Jul 2013 02:27:57 +0000 (02:27 +0000)]
Add a __builtin_addressof that performs the same functionality as the built-in
& operator (ignoring any overloaded operator& for the type). The purpose of
this builtin is for use in std::addressof, to allow it to be made constexpr;
the existing implementation technique (reinterpret_cast to some reference type,
take address, reinterpert_cast back) does not permit this because
reinterpret_cast between reference types is not permitted in a constant
expression in C++11 onwards.

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