]> granicus.if.org Git - clang/log
clang
10 years ago[test] Add test case I forgot to add for r195564.
Argyrios Kyrtzidis [Sun, 24 Nov 2013 17:05:58 +0000 (17:05 +0000)]
[test] Add test case I forgot to add for r195564.

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

10 years ago[Parser] Unbreak parsing with incremental parsing enabled and add a unit-test for it.
Argyrios Kyrtzidis [Sun, 24 Nov 2013 02:12:18 +0000 (02:12 +0000)]
[Parser] Unbreak parsing with incremental parsing enabled and add a unit-test for it.

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

10 years agoFix a typo: "SLocEnty" should read "SLocEntry".
James Dennett [Sun, 24 Nov 2013 01:47:49 +0000 (01:47 +0000)]
Fix a typo: "SLocEnty" should read "SLocEntry".

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

10 years agoUse specific_attr_iterator to tighten loop over ObjCSuppressProtocolAttrs.
Ted Kremenek [Sat, 23 Nov 2013 22:51:36 +0000 (22:51 +0000)]
Use specific_attr_iterator to tighten loop over ObjCSuppressProtocolAttrs.

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

10 years agoRemove optional parameter bit from attribute ObjCSuppressProtocol.
Ted Kremenek [Sat, 23 Nov 2013 22:29:11 +0000 (22:29 +0000)]
Remove optional parameter bit from attribute ObjCSuppressProtocol.

This refines some diagnostics and reduces some boilerplate checking logic.

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

10 years agoMove logic to check if a class is tagged with objc_suppress_protocol_methods into...
Ted Kremenek [Sat, 23 Nov 2013 22:29:06 +0000 (22:29 +0000)]
Move logic to check if a class is tagged with objc_suppress_protocol_methods into a helper.

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

10 years agoFix a SSE2 intrinsics typo
Alp Toker [Sat, 23 Nov 2013 22:11:57 +0000 (22:11 +0000)]
Fix a SSE2 intrinsics typo

Full discourse at:

  http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20131104/092514.html
  http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-November/068124.html

Patch by Dimitry Andric and Alexey Dokuchaev!

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

10 years ago[CodeGen] If there is a function definition with duplicate mangled name, emit an...
Argyrios Kyrtzidis [Sat, 23 Nov 2013 18:41:35 +0000 (18:41 +0000)]
[CodeGen] If there is a function definition with duplicate mangled name, emit an error instead of asserting.

rdar://15522601 & http://llvm.org/PR18031

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

10 years agoclang-format: Support Qt's slot access specifiers.
Daniel Jasper [Sat, 23 Nov 2013 17:53:41 +0000 (17:53 +0000)]
clang-format: Support Qt's slot access specifiers.

This fixes llvm.org/PR17241.

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

10 years agoDon't use the gcc driver for assembling.
Rafael Espindola [Sat, 23 Nov 2013 16:40:57 +0000 (16:40 +0000)]
Don't use the gcc driver for assembling.

Clang knows how to use the gnu assembler directly from doing so on linux and
hurd. The existing support worked out of the box on cygwin and mingw and I was
able to bootstrap clang with it in both systems (with pending patches for the
new mingw abi, but that is independent of the assembler).

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

10 years agoclang-format: Fix incorrect space in parameters named by comment.
Daniel Jasper [Sat, 23 Nov 2013 14:51:47 +0000 (14:51 +0000)]
clang-format: Fix incorrect space in parameters named by comment.

This fixes llvm.org/PR17979.

Before:
  void f() { g(/*aaa=*/x, /*bbb=*/ !y); }

After:
  void f() { g(/*aaa=*/x, /*bbb=*/!y); }

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

10 years agoclang-format: The "<" of a template argument is not a binary operator.
Daniel Jasper [Sat, 23 Nov 2013 14:45:49 +0000 (14:45 +0000)]
clang-format: The "<" of a template argument is not a binary operator.

With Style.BreakBeforeBinaryOperators, clang-format breaks incorrectly.
This fixes llvm.org/PR17994.

Before:
  return boost::fusion::at_c<0>(iiii).second == boost::fusion::at_c
                                                <1>(iiii).second;

After:
  return boost::fusion::at_c<0>(iiii).second ==
         boost::fusion::at_c<1>(iiii).second;

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

10 years agoDon't pass +soft-float, +soft-float-abi to the arm assembler.
Rafael Espindola [Sat, 23 Nov 2013 14:36:40 +0000 (14:36 +0000)]
Don't pass +soft-float, +soft-float-abi to the arm assembler.

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

10 years agoclang-format: Fix bug in ObjC method declaration formatting.
Daniel Jasper [Sat, 23 Nov 2013 14:27:27 +0000 (14:27 +0000)]
clang-format: Fix bug in ObjC method declaration formatting.

Also disallow breaking between "@" and "{" or "[".

Before:
  - (NSAttributedString *)attributedStringForSegment:(NSUInteger)segment
                                               index:(NSUInteger)index
                                          attributes:(NSDictionary *)attributes
                                  nonDigitAttributes:(NSDictionary *)
      nonDigitAttributes;
  [mailComposeViewController
     setToRecipients:@
     [ NSBundle.mainBundle.infoDictionary[@"ABBFeedbackEmail"] ]];

After:
  - (NSAttributedString *)attributedStringForSegment:(NSUInteger)segment
                                               index:(NSUInteger)index
                                          attributes:(NSDictionary *)attributes
                                  nonDigitAttributes:
                                      (NSDictionary *)nonDigitAttributes;
  [mailComposeViewController
      setToRecipients:
          @[ NSBundle.mainBundle.infoDictionary[@"ABBFeedbackEmail"] ]];

This fixes llvm.org/PR18030.

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

10 years agoEnable non-fragile ABI for the ObjFW runtime
Benjamin Kramer [Sat, 23 Nov 2013 10:57:32 +0000 (10:57 +0000)]
Enable non-fragile ABI for the ObjFW runtime

The following patch enables the non-fragile ABI for the ObjFW runtime.

However, I noticed that it is not possible anymore to disable it with
-fno-objc-nonfragile-abi like it was before. I think this functionality should
be restored, but I guess this is not in scope for 3.4 anymore.

Patch by Jonathan Schleifer!

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

10 years agoclang-format: Prefer column layout if possible.
Daniel Jasper [Sat, 23 Nov 2013 10:22:59 +0000 (10:22 +0000)]
clang-format: Prefer column layout if possible.

Add a severe penalty for not using column layout for braced lists. If
there are solutions with column layout, these are generally preferable
over bin-packed solutions.

Before:
  std::vector<MyValues> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaa,
                                             aaaaaaaaaaaaaaa, aaa, aaaaaaaaaa, a,
                                             aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                                             aaaaaaaaaaaaaaaaaaa +
                                                 aaaaaaaaaaaaaaaaaaa,
                                             aaaaaaa, a };
After:
  std::vector<MyValues> aaaaaaaaaaaaaaaaaaa{
    aaaaaaa,      aaaaaaaaaa,
    aaaaa,        aaaaaaaaaaaaaaa,
    aaa,          aaaaaaaaaa,
    a,            aaaaaaaaaaaaaaaaaaaaa,
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaa,
    aaaaaaa,      a
  };

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

10 years agoFix module name collision in tests.
Richard Smith [Sat, 23 Nov 2013 05:21:32 +0000 (05:21 +0000)]
Fix module name collision in tests.

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

10 years agoGenerate a marker token when entering or leaving a submodule when building a
Richard Smith [Sat, 23 Nov 2013 04:06:09 +0000 (04:06 +0000)]
Generate a marker token when entering or leaving a submodule when building a
module. Use the marker to diagnose cases where we try to transition between
submodules when not at the top level (most likely because a closing brace was
missing at the end of a header file, but is also possible if submodule headers
attempt to do something fundamentally non-modular, like our .def files).

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

10 years agoAdd Distance parameter to ASTNodeKind::isBaseOf.
Peter Collingbourne [Sat, 23 Nov 2013 01:40:07 +0000 (01:40 +0000)]
Add Distance parameter to ASTNodeKind::isBaseOf.

This will allow the completer to order results by relevance.

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

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

10 years agoRename *MatcherCreateCallback to *MatcherDescriptor, and its member run() to create().
Peter Collingbourne [Sat, 23 Nov 2013 01:34:36 +0000 (01:34 +0000)]
Rename *MatcherCreateCallback to *MatcherDescriptor, and its member run() to create().

The new names will be more appropriate when the objects are taught to return
type information for the code completer.

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

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

10 years agoSplit registry matcher resolution into a lookup phase and a construction phase.
Peter Collingbourne [Sat, 23 Nov 2013 01:13:16 +0000 (01:13 +0000)]
Split registry matcher resolution into a lookup phase and a construction phase.

The looked-up matchers will be used during code completion.

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

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

10 years agoAdd back experimental attribute objc_suppress_protocol_methods (slightly renamed).
Ted Kremenek [Sat, 23 Nov 2013 01:01:34 +0000 (01:01 +0000)]
Add back experimental attribute objc_suppress_protocol_methods (slightly renamed).

This is still an experimental attribute, but I wanted it in tree
for review.  It may still get yanked.

This attribute can only be applied to a class @interface, not
a class extension or category.  It does not change the type
system rules for Objective-C, but rather the implementation checking
for Objective-C classes that explicitly conform to a protocol.
During protocol conformance checking, clang recursively searches
up the class hierarchy for the set of methods that compose
a protocol.  This attribute will cause the compiler to not consider
the methods contributed by a super class, its categories, and those
from its ancestor classes.  Thus this attribute is used to force
subclasses to redeclare (and hopefully re-implement) methods if
they decide to explicitly conform to a protocol where some of those
methods may be provided by a super class.

This attribute intentionally leaves out properties, which are associated
with state.  This attribute only considers methods (at least right now)
that are non-property accessors.  These represent methods that "do something"
as dictated by the protocol.  This may be further refined, and this
should be considered a WIP until documentation gets written or this
gets removed.

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

10 years agoChange ObjCIntefaceDecl::lookupMethod() to have optional 'followsSuper' argument.
Ted Kremenek [Sat, 23 Nov 2013 01:01:29 +0000 (01:01 +0000)]
Change ObjCIntefaceDecl::lookupMethod() to have optional 'followsSuper' argument.

This enables a micro-optimization in protocol conformance checking
to not examine the class hierarchy twice per method.

As part of this change, remove the default arguments from lookupInstanceMethod()
and lookupClassMethod().  It was becoming very redundant.  For clients
needing the default arguments, have them use the full API instead of
these convenience methods.

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

10 years agoRevert r195526, "Remove uninstantiable constructor from DeclTemplate.h"
Peter Collingbourne [Sat, 23 Nov 2013 00:51:53 +0000 (00:51 +0000)]
Revert r195526, "Remove uninstantiable constructor from DeclTemplate.h"

It apparently causes some versions of GCC to segfault.
http://bb.pgr.jp/builders/cmake-clang-x86_64-linux/builds/17175/steps/build_clang/logs/stdio

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

10 years agoRemove uninstantiable constructor from DeclTemplate.h
Peter Collingbourne [Sat, 23 Nov 2013 00:42:43 +0000 (00:42 +0000)]
Remove uninstantiable constructor from DeclTemplate.h

Patch by Kim Gräsman!

Laszlo Nagy and me both ran into the same issue with SpecIterator from DeclTemplate.h causing an error:

tools/clang/include/clang/AST/DeclTemplate.h:560:22: error:
      no matching constructor for initialization of 'SetIteratorType' (aka
      'FoldingSetVectorIterator<clang::FunctionTemplateSpecializationInfo,
      typename SmallVector<FunctionTemplateSpecializationInfo *, 8>::iterator>')
    SpecIterator() : SetIter() {}

(see e.g. http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-November/033642.html)

The problem is the SpecIterator default constructor which needs a non-existent SetIter default constructor. SpecIterator's default constructor is evidently dead code as any call to it would fail with the above error.

This patch removes it.

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

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

10 years agoObjectiveC. Remove warning diagnostic which checks
Fariborz Jahanian [Sat, 23 Nov 2013 00:14:32 +0000 (00:14 +0000)]
ObjectiveC. Remove warning diagnostic which checks
attribute on method declaration and implementation
match. This makes no sense. Most annotations are
meant for declarations only and one is for implementation.
This has been constant source of regresions and hackery to
get around special cases. I am removing this check.
Such checks must be done on a case by case basis and
when it makes sense. For example, it makes sense
for availability/deprecated and I will file a radar
for that. // rdar://15531984

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

10 years agoMake the negative test more specific.
Samuel Benzaquen [Fri, 22 Nov 2013 23:05:57 +0000 (23:05 +0000)]
Make the negative test more specific.

Summary:
Make the negative test more specific.
Otherwise it can accidentally match injected code.

Reviewers: aaron.ballman

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

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

10 years agoUpdating Subjects definitions for attributes based on semantic handling. Removes...
Aaron Ballman [Fri, 22 Nov 2013 22:49:31 +0000 (22:49 +0000)]
Updating Subjects definitions for attributes based on semantic handling. Removes Subjects for things we cannot currently check, adds Subjects for things we can, and rectifies most discrepancies. Since Subjects are not currently handled in tablegen, there are no functional changes with this patch.

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

10 years agoWhitespace. No functional change intended.
Aaron Ballman [Fri, 22 Nov 2013 21:49:04 +0000 (21:49 +0000)]
Whitespace. No functional change intended.

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

10 years agoAdjust r194296 to not apply the alias replacement for externally
Joerg Sonnenberger [Fri, 22 Nov 2013 21:34:35 +0000 (21:34 +0000)]
Adjust r194296 to not apply the alias replacement for externally
available always-inline functions. This breaks libc++'s locale
implementation. Code generation for this case should be fixed, but this
is a stop gap fix for clang 3.4.

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

10 years agoDebug Info: add a "Debug Info Version" module flag to output the current debug
Manman Ren [Fri, 22 Nov 2013 19:42:45 +0000 (19:42 +0000)]
Debug Info: add a "Debug Info Version" module flag to output the current debug
info version number.

Will error out when modules have different version numbers.

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

10 years agoObjectiveC modern translator. Fixes a translation bug
Fariborz Jahanian [Fri, 22 Nov 2013 18:43:41 +0000 (18:43 +0000)]
ObjectiveC modern translator. Fixes a translation bug
tranalation @protocol expression. // rdar://15517895

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

10 years agoAdd support for the 'unless' matcher in the dynamic layer.
Samuel Benzaquen [Fri, 22 Nov 2013 14:41:48 +0000 (14:41 +0000)]
Add support for the 'unless' matcher in the dynamic layer.

Summary: Add support for the 'unless' matcher in the dynamic layer.

Reviewers: klimek

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

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

10 years agoAdd support for Cortex-A12.
Richard Barton [Fri, 22 Nov 2013 11:53:28 +0000 (11:53 +0000)]
Add support for Cortex-A12.

Patch by Oliver Stannard!

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

10 years agoAST/DeclBase.h: Fix \param of Decl::new() in r195426. [-Wdocumentation]
NAKAMURA Takumi [Fri, 22 Nov 2013 10:44:16 +0000 (10:44 +0000)]
AST/DeclBase.h: Fix \param of Decl::new() in r195426. [-Wdocumentation]

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

10 years agoRevert r193994 and part of r193995
Justin Bogner [Fri, 22 Nov 2013 10:20:43 +0000 (10:20 +0000)]
Revert r193994 and part of r193995

Not long ago I made the CodeGen of for loops simplify the condition at
-O0 in the same way we do for if and conditionals. Unfortunately this
ties how loops and simple conditions work together too tightly, which
makes features such as instrumentation based PGO awkward.

Ultimately, we should find a more general way to simplify the logic in
a given condition, but for now we'll just avoid using EmitBranchOnBool
for loops, like we already do for while and do loops.

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

10 years agoCodeGen: Whitespace
Justin Bogner [Fri, 22 Nov 2013 10:20:40 +0000 (10:20 +0000)]
CodeGen: Whitespace

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

10 years agoDeleting three tests that are redundant with test/Preprocessor/arm-target-features...
Artyom Skrobov [Fri, 22 Nov 2013 09:21:51 +0000 (09:21 +0000)]
Deleting three tests that are redundant with test/Preprocessor/arm-target-features.c and test/Driver/arm-cortex-cpus.c

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

10 years agoAdd class-specific operator new to Decl hierarchy. This guarantees that Decls
Richard Smith [Fri, 22 Nov 2013 09:01:48 +0000 (09:01 +0000)]
Add class-specific operator new to Decl hierarchy. This guarantees that Decls
can't accidentally be allocated the wrong way (missing prefix data for decls
from AST files, for instance) and simplifies the CreateDeserialized functions a
little. An extra DeclContext* parameter to the not-from-AST-file operator new
allows us to ensure that we don't accidentally call the wrong one when
deserializing (when we don't have a DeclContext), allows some extra checks, and
prepares for some planned modules-related changes to Decl allocation.

No functionality change intended.

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

10 years agoTidy up the no-external-assembler diag
Alp Toker [Fri, 22 Nov 2013 08:27:46 +0000 (08:27 +0000)]
Tidy up the no-external-assembler diag

Diags aren't usually in the first person, and 'windows' isn't the correct
product spelling to use in prose. Sidestep issues completely by making this
error message platform-neutral.

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

10 years agoAdd txt file extension to VS solution's README
Alp Toker [Fri, 22 Nov 2013 08:00:20 +0000 (08:00 +0000)]
Add txt file extension to VS solution's README

This matches other README.txt files in LLVM and makes things more obvious on
Windows where it's likely to be read. CRLFs are retained for the same reason.

Also fix Visual Studio product name.

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

10 years agoMake ASTUnit structure stable with NDEBUG
Alp Toker [Fri, 22 Nov 2013 07:49:39 +0000 (07:49 +0000)]
Make ASTUnit structure stable with NDEBUG

ASTUnit instances are allocated infrequently so it's fine to keep this field
around in all build configurations.

Assigns null to silence -Wunused-private-field in Release.

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

10 years agoclang-format: Fix bug in alignment of complex template parameters.
Daniel Jasper [Fri, 22 Nov 2013 07:48:15 +0000 (07:48 +0000)]
clang-format: Fix bug in alignment of complex template parameters.

Before:
  template <typename aaaaaaaaaaa, typename bbbbbbbbbbbbb, template <typename>
            class cccccccccccccccccccccc, typename ddddddddddddd>
  class C {};

After:
  template <typename aaaaaaaaaaa, typename bbbbbbbbbbbbb,
            template <typename> class cccccccccccccccccccccc,
            typename ddddddddddddd>
  class C {};

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

10 years agoclang-format: Recognize braced lists with trailing function call.
Daniel Jasper [Fri, 22 Nov 2013 07:26:53 +0000 (07:26 +0000)]
clang-format: Recognize braced lists with trailing function call.

Before:
  int count = set<int> { f(), g(), h() }
      .size();

After:
  int count = set<int>{f(), g(), h()}.size();

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

10 years agoFor AArch64, intrinsic vget_low_xxx can be optimized away.
Jiangning Liu [Fri, 22 Nov 2013 02:46:20 +0000 (02:46 +0000)]
For AArch64, intrinsic vget_low_xxx can be optimized away.

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

10 years agoComment parsing tests: XML schema: actually run the valid-function-10.xml test
Dmitri Gribenko [Fri, 22 Nov 2013 01:47:15 +0000 (01:47 +0000)]
Comment parsing tests: XML schema: actually run the valid-function-10.xml test

It was there all the time, but I missed adding a RUN line for it.

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

10 years agoObjectiveC migrator. Improve on definition, use
Fariborz Jahanian [Fri, 22 Nov 2013 00:02:22 +0000 (00:02 +0000)]
ObjectiveC migrator. Improve on definition, use
and testing of objc_bridgmutable attribute per
Aaron Ballman's comments.
// rdar://15498044

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

10 years agoPR18013: Don't assert diagnosing a bad std::initializer_list construction.
Richard Smith [Thu, 21 Nov 2013 23:30:57 +0000 (23:30 +0000)]
PR18013: Don't assert diagnosing a bad std::initializer_list construction.

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

10 years agoTest commit for the user "kromanova" to verify commit access. I removed "UNSUPPORTED...
Ekaterina Romanova [Thu, 21 Nov 2013 22:25:24 +0000 (22:25 +0000)]
Test commit for the user "kromanova" to verify commit access. I removed "UNSUPPORTED" comment because unsigned __int128 type is in fact supported.

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

10 years agoObjectiveC. Implement attribute 'objc_bridge_mutable'
Fariborz Jahanian [Thu, 21 Nov 2013 20:50:32 +0000 (20:50 +0000)]
ObjectiveC. Implement attribute 'objc_bridge_mutable'
whose semantic is currently identical to objc_bridge,
but their differences may manifest down the road with
further enhancements. // rdar://15498044

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

10 years agoObjectiveC migrator. delegate property must be
Fariborz Jahanian [Thu, 21 Nov 2013 17:49:34 +0000 (17:49 +0000)]
ObjectiveC migrator. delegate property must be
inferred as 'assign', not 'assign' and 'strong'.
// rdar://15509831

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

10 years agoFix a crash in EmitStoreThroughExtVectorComponentLValue for vectors of odd sizes.
Joey Gouly [Thu, 21 Nov 2013 17:09:05 +0000 (17:09 +0000)]
Fix a crash in EmitStoreThroughExtVectorComponentLValue for vectors of odd sizes.

In OpenCL a vector of 3 elements, acts like a vector of four elements.
So for a vector of size 3 the '.hi' and '.odd' accessors, would access
the elements {2, 3} and {1, 3} respectively.
However, in EmitStoreThroughExtVectorComponentLValue we are still operating on
a vector of size 3, so we should only access {2} and {1}. We do this by checking
the last element to be accessed, and ignore it if it is out-of-bounds.

EmitLoadOfExtVectorElementLValue doesn't have a similar problem, because it does
a direct shufflevector with undef, so an out-of-bounds access just gives an undef
value.

Patch by Anastasia Stulova!

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

10 years agoAdded testcase for r195255.
Enea Zaffanella [Thu, 21 Nov 2013 16:43:28 +0000 (16:43 +0000)]
Added testcase for r195255.

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

10 years ago[ARM] add basic support for Cortex-A7 and VFPv4 to Clang
Artyom Skrobov [Thu, 21 Nov 2013 14:04:38 +0000 (14:04 +0000)]
[ARM] add basic support for Cortex-A7 and VFPv4 to Clang

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

10 years agoBetter implementation of JavaScript === and !== operators.
Alexander Kornienko [Thu, 21 Nov 2013 12:43:57 +0000 (12:43 +0000)]
Better implementation of JavaScript === and !== operators.

Summary:
Now based on token merging. Now they are not only prevented from being
split, but are actually formatted as comparison operators.

Reviewers: djasper, klimek

Reviewed By: klimek

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

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

10 years agoARM: define & use __ARM_NEON on ARM32 (as per ACLE)
Tim Northover [Thu, 21 Nov 2013 12:36:34 +0000 (12:36 +0000)]
ARM: define & use __ARM_NEON on ARM32 (as per ACLE)

There seem to be quite a few references to the old macro __ARM_NEON__ on the
internet, so I don't think it's a good idea to remove it entirely (at least
yet), but the canonical name does not have the trailing underscores so we
should use that ourselves.

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

10 years agoImplemented Neon scalar vdup_lane intrinsics.
Ana Pazos [Thu, 21 Nov 2013 08:15:01 +0000 (08:15 +0000)]
Implemented Neon scalar vdup_lane intrinsics.

Fixed scalar dup alias and added test case.

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

10 years agoRevert "Add new attribute 'objc_suppress_protocol' to suppress protocol conformance...
Ted Kremenek [Thu, 21 Nov 2013 07:57:53 +0000 (07:57 +0000)]
Revert "Add new attribute 'objc_suppress_protocol' to suppress protocol conformance for a class."

After implementing this patch, a few concerns about the language
feature itself emerged in my head that I had previously not considered.
I want to resolve those design concerns first before having
a half-designed language feature in the tree.

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

10 years agoImplemented Neon scalar by element intrinsics.
Ana Pazos [Thu, 21 Nov 2013 07:36:33 +0000 (07:36 +0000)]
Implemented Neon scalar by element intrinsics.

Intrinsics implemented: vqdmull_lane, vqdmulh_lane, vqrdmulh_lane,
vqdmlal_lane, vqdmlsl_lane scalar Neon intrinsics.

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

10 years agoAdd new attribute 'objc_suppress_protocol' to suppress protocol conformance for a...
Ted Kremenek [Thu, 21 Nov 2013 07:20:42 +0000 (07:20 +0000)]
Add new attribute 'objc_suppress_protocol' to suppress protocol conformance for a class.

The idea is to allow a class to stipulate that its methods (and those
of its parents) cannot be used for protocol conformance in a subclass.
A subclass is then explicitly required to re-implement those methods
of they are present in the class marked with this attribute.

Currently the attribute can only be applied to an @interface, and
not a category or class extension.  This is by design.  Unlike
protocol conformance, where a category can add explicit conformance
of a protocol to class, this anti-conformance really needs to be
observed uniformly by all clients of the class.  That's because
the absence of the attribute implies more permissive checking of
protocol conformance.

This unfortunately required changing method lookup in ObjCInterfaceDecl
to take an optional protocol parameter.  This should not slow down
method lookup in most cases, and is just used for protocol conformance.

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

10 years agoRefactor some of handleObjCBridgeAttr to make it more concise and the diagnostic...
Ted Kremenek [Thu, 21 Nov 2013 07:20:34 +0000 (07:20 +0000)]
Refactor some of handleObjCBridgeAttr to make it more concise and the diagnostic reusable.

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

10 years agoProvide better diagnostic wording for initializers on static
Hans Wennborg [Thu, 21 Nov 2013 03:17:44 +0000 (03:17 +0000)]
Provide better diagnostic wording for initializers on static
data member definitions when the variable has an initializer
in its declaration.

For the following code:

  struct S {
    static const int x = 42;
  };
  const int S::x = 42;

This patch changes the diagnostic from:

  a.cc:4:14: error: redefinition of 'x'
  const int S::x = 42;
               ^
  a.cc:2:20: note: previous definition is here
    static const int x = 42;
                     ^
to:

  a.cc:4:18: error: static data member 'x' already has an initializer
  const int S::x = 42;
                   ^
  a.cc:2:24: note: previous initialization is here
    static const int x = 42;
                         ^

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

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

10 years agoPR10837: Warn if a null pointer constant is formed by a zero integer constant
Richard Smith [Thu, 21 Nov 2013 01:53:02 +0000 (01:53 +0000)]
PR10837: Warn if a null pointer constant is formed by a zero integer constant
expression that is not a zero literal, in C. This is a different, and more
targeted, approach than that in r194540.

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

10 years agoRefactored integer argument checking code into a helper method. Removes a considerabl...
Aaron Ballman [Thu, 21 Nov 2013 01:50:40 +0000 (01:50 +0000)]
Refactored integer argument checking code into a helper method. Removes a considerable amount of duplicated code.

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

10 years agoclang-format: Improve formatting of ObjC method expressions.
Daniel Jasper [Thu, 21 Nov 2013 01:46:33 +0000 (01:46 +0000)]
clang-format: Improve formatting of ObjC method expressions.

In particular, make breaking after a parameter's ":" more of a last
resort choice as it significantly affects the readability gained by
aligning the parameters.

Before (in Chromium style - which doesn't allow bin-packing):
  {
    popup_window_.reset([[RenderWidgetPopupWindow alloc]
        initWithContentRect:
            NSMakeRect(
                origin_global.x, origin_global.y, pos.width(), pos.height())
                  styleMask:NSBorderlessWindowMask
                    backing:NSBackingStoreBuffered
                      defer:NO]);
  }

After:
  {
    popup_window_.reset([[RenderWidgetPopupWindow alloc]
        initWithContentRect:NSMakeRect(origin_global.x,
                                       origin_global.y,
                                       pos.width(),
                                       pos.height())
                  styleMask:NSBorderlessWindowMask
                    backing:NSBackingStoreBuffered
                      defer:NO]);
  }

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

10 years agoObjectiveC migrator. use strong instead of
Fariborz Jahanian [Thu, 21 Nov 2013 00:58:17 +0000 (00:58 +0000)]
ObjectiveC migrator. use strong instead of
retain attribute for inferred properties.
// rdar://15519923

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

10 years agoObjectiveC. Allow toll free bridge cast warnings outside
Fariborz Jahanian [Thu, 21 Nov 2013 00:39:36 +0000 (00:39 +0000)]
ObjectiveC. Allow toll free bridge cast warnings outside
ARC and in objectiveC/ObjectiveC++ MRR mode as well.
// rdar://15454846

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

10 years agoImplemented DefaultIntArgument in the table generator and start using it in semantic...
Aaron Ballman [Thu, 21 Nov 2013 00:28:23 +0000 (00:28 +0000)]
Implemented DefaultIntArgument in the table generator and start using it in semantic analysis. Removes some magic numbers.

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

10 years ago[-cxx-abi microsoft] Emit linkonce_odr definitions for declarations of static data...
Hans Wennborg [Thu, 21 Nov 2013 00:15:56 +0000 (00:15 +0000)]
[-cxx-abi microsoft] Emit linkonce_odr definitions for declarations of static data members with inline initializers (PR17689)

This makes Clang emit a linkonce_odr definition for 'val' in the code below,
to be compatible with MSVC-compiled code:

  struct Foo {
    static const int val = 1;
  };

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

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

10 years agoFix new check for missing semicolon after struct definition to deal with the
Richard Smith [Wed, 20 Nov 2013 23:40:57 +0000 (23:40 +0000)]
Fix new check for missing semicolon after struct definition to deal with the
case where the type in the following declaration is specified as a template-id,
and refactor for clarity.

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

10 years agoObjectiveC ARC. warn in presense of __bridge casting to
Fariborz Jahanian [Wed, 20 Nov 2013 22:55:41 +0000 (22:55 +0000)]
ObjectiveC ARC. warn in presense of __bridge casting to
or from a toll free bridge cast. // rdar://15454846

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

10 years agoThere is no such thing as __declspec(ms_struct), this is a GNU attribute. Switched...
Aaron Ballman [Wed, 20 Nov 2013 22:22:04 +0000 (22:22 +0000)]
There is no such thing as __declspec(ms_struct), this is a GNU attribute. Switched the attribute to have the proper spelling, gave it a subject, updated the warning to be more accurate, and updated the test case as appropriate.

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

10 years agoRemoved a duplicate diagnostic related to attribute subjects for thread safety annota...
Aaron Ballman [Wed, 20 Nov 2013 21:41:42 +0000 (21:41 +0000)]
Removed a duplicate diagnostic related to attribute subjects for thread safety annotations, and replaced it with the more general attribute diagnostic. Updated the test case in the one instance where wording changed. No functional change intended.

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

10 years agoUpdated the thread safety attribute definitions to have subjects defined. These are...
Aaron Ballman [Wed, 20 Nov 2013 21:40:13 +0000 (21:40 +0000)]
Updated the thread safety attribute definitions to have subjects defined. These are based off what SemaDeclAttr.cpp is checking for in terms of diagnostic reporting. No functional change intended.

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

10 years ago[NVPTX] Update ABI handling
Justin Holewinski [Wed, 20 Nov 2013 20:35:34 +0000 (20:35 +0000)]
[NVPTX] Update ABI handling

For PTX, we want the target to handle struct returns directly.

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

10 years agoSet default Dwarf Version for -gline-tables-only on Darwin to 2.
Manman Ren [Wed, 20 Nov 2013 20:22:14 +0000 (20:22 +0000)]
Set default Dwarf Version for -gline-tables-only on Darwin to 2.

We are still using Dwarf Version 2 for Darwin systems, make it consistent
with -gline-tables-only.

This should fix an internal buildbot.

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

10 years agoObjectiveC ARC. Better checking of toll free briding
Fariborz Jahanian [Wed, 20 Nov 2013 19:01:50 +0000 (19:01 +0000)]
ObjectiveC ARC. Better checking of toll free briding
from qualified-id objects to CF types with
objc_bridge annotation. // rdar://15454846

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

10 years agoRefine 'deprecated' checking for Objective-C classes/methods.
Ted Kremenek [Wed, 20 Nov 2013 17:24:03 +0000 (17:24 +0000)]
Refine 'deprecated' checking for Objective-C classes/methods.

- If a deprecated class refers to another deprecated class, do not warn.
- @implementations of a deprecated class can refer to other deprecated things.

Fixes <rdar://problem/15407366> and <rdar://problem/15466783>.

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

10 years agoAdded an option to allow short function bodies be placed on a single line.
Alexander Kornienko [Wed, 20 Nov 2013 16:33:05 +0000 (16:33 +0000)]
Added an option to allow short function bodies be placed on a single line.

Summary:
The AllowShortFunctionsOnASingleLine option now controls short function
body placement on a single line independent of the BreakBeforeBraces option.
Updated tests using BreakBeforeBraces other than BS_Attach.

Addresses http://llvm.org/PR17888

Reviewers: klimek, djasper

Reviewed By: klimek

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

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

10 years agoWhen wrapping lazily generated builtins in an extern "C" context,
Enea Zaffanella [Wed, 20 Nov 2013 15:41:05 +0000 (15:41 +0000)]
When wrapping lazily generated builtins in an extern "C" context,
flag the LinkageSpecDecl as being implicitly generated too.

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

10 years agoSimplify fix proposed in r195240.
Daniel Jasper [Wed, 20 Nov 2013 14:54:39 +0000 (14:54 +0000)]
Simplify fix proposed in r195240.

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

10 years agoSupport for JavaScript === and !== operators.
Alexander Kornienko [Wed, 20 Nov 2013 14:30:26 +0000 (14:30 +0000)]
Support for JavaScript === and !== operators.

Reviewers: klimek, djasper

Reviewed By: klimek

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

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

10 years ago[Mips] Take in account the -mfp64 command line option when build paths
Simon Atanasyan [Wed, 20 Nov 2013 13:53:20 +0000 (13:53 +0000)]
[Mips] Take in account the -mfp64 command line option when build paths
to the crt*.o files, libraries and headers for the MIPS FSFS toolchain.

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

10 years agoFix bug where optimization would lead to strange line breaks.
Manuel Klimek [Wed, 20 Nov 2013 11:20:32 +0000 (11:20 +0000)]
Fix bug where optimization would lead to strange line breaks.

Before:
  void f() {
    CHECK_EQ(aaaa, (
                       *bbbbbbbbb)->cccccc)
        << "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq";
  }

After:
  void f() {
    CHECK_EQ(aaaa, (*bbbbbbbbb)->cccccc)
        << "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq";
  }

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

10 years agoUpdate to next release numbers.
Bill Wendling [Wed, 20 Nov 2013 10:13:37 +0000 (10:13 +0000)]
Update to next release numbers.

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

10 years agoRemoving a custom error diagnostic and replacing it with a stock one. Added a test...
Aaron Ballman [Wed, 20 Nov 2013 01:35:23 +0000 (01:35 +0000)]
Removing a custom error diagnostic and replacing it with a stock one. Added a test case to ensure the diagnostic was firing properly.

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

10 years agoComment parsing tests: introduce a little more structure in testcase
Dmitri Gribenko [Wed, 20 Nov 2013 01:23:26 +0000 (01:23 +0000)]
Comment parsing tests: introduce a little more structure in testcase

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

10 years agoEnsuring the warning for attribute decl types matches the error for attribute decl...
Aaron Ballman [Wed, 20 Nov 2013 01:14:35 +0000 (01:14 +0000)]
Ensuring the warning for attribute decl types matches the error for attribute decl types.

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

10 years agoRevert r195176, it is breaking buildbots for unclear reason
Dmitri Gribenko [Wed, 20 Nov 2013 00:59:02 +0000 (00:59 +0000)]
Revert r195176, it is breaking buildbots for unclear reason

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

10 years agoObjectiveC ARC. validate toll free bridge casting
Fariborz Jahanian [Wed, 20 Nov 2013 00:32:12 +0000 (00:32 +0000)]
ObjectiveC ARC. validate toll free bridge casting
to or from 'id' and qualified-id types.
// rdar://15454846

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

10 years agoComment parsing tests: introduce a little more structure in testcase
Dmitri Gribenko [Wed, 20 Nov 2013 00:15:58 +0000 (00:15 +0000)]
Comment parsing tests: introduce a little more structure in testcase

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

10 years ago[analyzer] Fix an infinite recursion in region invalidation by adding block count...
Anna Zaks [Wed, 20 Nov 2013 00:11:42 +0000 (00:11 +0000)]
[analyzer] Fix an infinite recursion in region invalidation by adding block count to the BlockDataRegion.

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

10 years agoAdd a mangler entry point for TBAA rather than using RTTI directly
Reid Kleckner [Tue, 19 Nov 2013 23:23:00 +0000 (23:23 +0000)]
Add a mangler entry point for TBAA rather than using RTTI directly

Summary:
RTTI is not yet implemented for the Microsoft C++ ABI and isn't expected
soon.  We could easily add the mangling, but the error is what prevents
us from silently miscompiling code that expects RTTI.

Instead, add a new mangleTypeName entry point that simply forwards to
mangleName or mangleType to produce a string that isn't part of the ABI.
Itanium can continue to use RTTI names to avoid unecessary test
breakage.

This also seems like the right design.  The fact that TBAA names happen
to be RTTI names is now an implementation detail of the mangler, rather
than part of TBAA.

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

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

10 years agoPR9547: If we're parsing a simple-declaration that contains a tag definition,
Richard Smith [Tue, 19 Nov 2013 22:47:36 +0000 (22:47 +0000)]
PR9547: If we're parsing a simple-declaration that contains a tag definition,
and we see an ill-formed declarator that would probably be well-formed if the
tag definition were just missing a semicolon, use that as the diagnostic
instead of producing some other mysterious error.

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

10 years agoSwitching some string literals to be generated by the AttributeList object itself.
Aaron Ballman [Tue, 19 Nov 2013 22:18:24 +0000 (22:18 +0000)]
Switching some string literals to be generated by the AttributeList object itself.

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

10 years agoMicrosoft Record Layout: zero sized base after base with vbtbl fix
Warren Hunt [Tue, 19 Nov 2013 22:11:09 +0000 (22:11 +0000)]
Microsoft Record Layout: zero sized base after base with vbtbl fix

Microsoft adds an extra byte of padding before laying out zero sized
non-virtual bases if the non-virtual base before it contains a vbptr.
This patch adds the same behavior to clang.

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

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

10 years agoFurther fixes when thiscall is the default for methods.
Rafael Espindola [Tue, 19 Nov 2013 21:07:04 +0000 (21:07 +0000)]
Further fixes when thiscall is the default for methods.

The previous patches tried to deduce the correct function type. I now realize
this is not possible in general. Consider

class foo {
    template <typename T> static void bar(T v);
};
extern template void foo::bar(const void *);

We will only know that bar is static after a lookup, so we have to handle this
in the template instantiation code.

This patch reverts my previous two changes (but not the tests) and instead
handles the issue in DeduceTemplateArguments.

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

10 years agoARM: embedded v7 'darwin' doesn't get min-version defines.
Jim Grosbach [Tue, 19 Nov 2013 20:18:39 +0000 (20:18 +0000)]
ARM: embedded v7 'darwin' doesn't get min-version defines.

Make sure armv7 doesn't get the iOS deployment version definitions when
it's being used for non-iOS.

rdar://15497681

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

10 years agoRemove full path from CHECK line
Dmitri Gribenko [Tue, 19 Nov 2013 19:29:32 +0000 (19:29 +0000)]
Remove full path from CHECK line

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

10 years agoObjectiveC ARC. Removes a bogus warning when a weak
Fariborz Jahanian [Tue, 19 Nov 2013 19:26:30 +0000 (19:26 +0000)]
ObjectiveC ARC. Removes a bogus warning when a weak
property is redeclared as 'weak' in class extension.
// rdar://15465916

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