|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | , such as list of forward @class decls, in a DeclGroup
node. Deal with its consequence throught clang. This
is in preparation for more Sema work ahead. // rdar://8843851.
Feel free to reverse if it breaks something important
and I am unavailable.
llvm-svn: 138709 | 
| | 
| 
| 
| 
| 
| 
| 
| | LLVM.h imports
them into the clang namespace.
llvm-svn: 135852 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Related result types apply Cocoa conventions to the type of message
sends and property accesses to Objective-C methods that are known to
always return objects whose type is the same as the type of the
receiving class (or a subclass thereof), such as +alloc and
-init. This tightens up static type safety for Objective-C, so that we
now diagnose mistakes like this:
t.m:4:10: warning: incompatible pointer types initializing 'NSSet *'
with an
      expression of type 'NSArray *' [-Wincompatible-pointer-types]
  NSSet *array = [[NSArray alloc] init];
         ^       ~~~~~~~~~~~~~~~~~~~~~~
/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:72:1:
note: 
      instance method 'init' is assumed to return an instance of its
      receiver
      type ('NSArray *')
- (id)init;
^
It also means that we get decent type inference when writing code in
Objective-C++0x:
  auto array = [[NSMutableArray alloc] initWithObjects:@"one",  @"two",nil];
  //    ^ now infers NSMutableArray* rather than id
llvm-svn: 132868 | 
| | 
| 
| 
| | llvm-svn: 131310 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - New isDefined() function checks for deletedness
 - isThisDeclarationADefinition checks for deletedness
 - New doesThisDeclarationHaveABody() does what
   isThisDeclarationADefinition() used to do
 - The IsDeleted bit is not propagated across redeclarations
 - isDeleted() now checks the canoncial declaration
 - New isDeletedAsWritten() does what it says on the tin.
 - isUserProvided() now correct (thanks Richard!)
This fixes the bug that we weren't catching
void foo() = delete;
void foo() {}
as being a redefinition.
llvm-svn: 131013 | 
| | 
| 
| 
| | llvm-svn: 130953 | 
| | 
| 
| 
| | llvm-svn: 129567 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | convention selection (AAPCS or
AAPCS+VFP), similar to fastcall / stdcall / whatevercall seen on x86.
In particular, all library functions should always be AAPCS regardless of floating point ABI used.
llvm-svn: 129534 | 
| | 
| 
| 
| 
| 
| | pageexec@freemail.hu, tweaks by me.
llvm-svn: 129206 | 
| | 
| 
| 
| 
| 
| 
| 
| | Change the interface to expose the new information and deal with the enormous fallout.
Introduce the new ExceptionSpecificationType value EST_DynamicNone to more easily deal with empty throw specifications.
Update the tests for noexcept and fix the various bugs uncovered, such as lack of tentative parsing support.
llvm-svn: 127537 | 
| | 
| 
| 
| 
| 
| | This reverts commit 126863.
llvm-svn: 126886 | 
| | 
| 
| 
| | llvm-svn: 126863 | 
| | 
| 
| 
| 
| 
| | thousand other things which were (generally inadvertantly) relying on that.
llvm-svn: 123814 | 
| | 
| 
| 
| 
| 
| 
| | more accurate, and makes it make sense for it to hold a delegating constructor
call.
llvm-svn: 123084 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | expansions with something that is easier to use correctly: a new
template argment kind, rather than a bit on an existing kind. Update
all of the switch statements that deal with template arguments, fixing
a few latent bugs in the process. I"m happy with this representation,
now.
And, oh look! Template instantiation and deduction work for template
template argument pack expansions.
llvm-svn: 122896 | 
| | 
| 
| 
| 
| 
| 
| | area of printing template arguments. The functionality changes here
are limited to cases of variadic templates that aren't yet enabled.
llvm-svn: 122250 | 
| | 
| 
| 
| | llvm-svn: 120701 | 
| | 
| 
| 
| | llvm-svn: 120700 | 
| | 
| 
| 
| | llvm-svn: 120421 | 
| | 
| 
| 
| 
| 
| | names.
llvm-svn: 120091 | 
|  | llvm-svn: 120089 |