| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
and C++ status pages. Also update the C++ status for default functions, which are complete now that we can generate move functions, and destructor exception specifications, which I did a while ago.
llvm-svn: 141558
|
|
|
|
|
|
|
|
| |
"_Complex float x = {1.0f, 2.0f};". See changes to docs/LanguageExtensions.html for a longer description.
<rdar://problem/9397672>.
llvm-svn: 140090
|
|
|
|
| |
llvm-svn: 139299
|
|
|
|
|
|
|
| |
Objective-C. The @encode'ing of such an enumeration type is the same
as its underlying type. <rdar://problem/5276348>.
llvm-svn: 139297
|
|
|
|
|
|
|
|
|
|
| |
'id' that can be used (only!) via a contextual keyword as the result
type of an Objective-C message send. 'instancetype' then gives the
method a related result type, which we have already been inferring for
a variety of methods (new, alloc, init, self, retain). Addresses
<rdar://problem/9267640>.
llvm-svn: 139275
|
|
|
|
|
|
|
| |
features, so clients can check for the availability of these features
even before we get around to implementing them.
llvm-svn: 138741
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch special cases the parser for thread safety attributes so that all
attribute arguments are put in the argument list (instead of a special
parameter) since arguments may not otherwise resolve correctly without two-token
lookahead.
This patch also adds checks to make sure that attribute arguments are
lockable objects.
llvm-svn: 137130
|
|
|
|
|
|
| |
because we don't support them yet.
llvm-svn: 137027
|
|
|
|
|
|
|
| |
analysis. This includes checking that the attributes are applied in the
correct contexts and with the correct number of arguments.
llvm-svn: 136383
|
|
|
|
| |
llvm-svn: 136370
|
|
|
|
|
|
| |
scoped_lockable, and no_thread_safety_analysis attributes, all for thread safety analysis
llvm-svn: 136364
|
|
|
|
|
|
| |
__underlying_type feature.
llvm-svn: 135402
|
|
|
|
| |
llvm-svn: 133693
|
|
|
|
| |
llvm-svn: 133678
|
|
|
|
|
|
|
|
|
| |
One weird thing is the addition of several <a name=""> tags where
previously there were id attributes on the <h3> tags. This is because
the id attribute must begin with a letter, not an underscore. The name
attribute is not so constrained, so links will continue to work.
llvm-svn: 133677
|
|
|
|
|
|
|
| |
In fact it does. For the driver anyway, and not cc1 which I'm supposed
to pretend doesn't exist.
llvm-svn: 133673
|
|
|
|
| |
llvm-svn: 133666
|
|
|
|
|
|
|
|
|
|
| |
Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.
Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.
llvm-svn: 133103
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
minor issues along the way:
- Non-type template parameters of type 'std::nullptr_t' were not
permitted.
- We didn't properly introduce built-in operators for nullptr ==,
!=, <, <=, >=, or > as candidate functions .
To my knowledge, there's only one (minor but annoying) part of nullptr
that hasn't been implemented: catching a thrown 'nullptr' as a pointer
or pointer-to-member, per C++0x [except.handle]p4.
llvm-svn: 131813
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
__has_extension is a function-like macro which takes the same set
of feature identifiers as __has_feature. It evaluates to 1 if the
feature is supported by Clang in the current language (either as a
language extension or a standard language feature) or 0 if not.
At the same time, add support for the C1X feature identifiers
c_generic_selections (renamed from generic_selections) and
c_static_assert, and document them.
Patch by myself and Jean-Daniel Dupas.
llvm-svn: 131308
|
|
|
|
|
|
|
| |
argument deduction failures. Only implemented in C++0x, since this is
a significant change in behavior from C++98/03.
llvm-svn: 131209
|
|
|
|
| |
llvm-svn: 130953
|
|
|
|
| |
llvm-svn: 129573
|
|
|
|
|
|
|
| |
As an extension, generic selection support has been added for all
supported languages. The syntax is the same as for C1X.
llvm-svn: 129554
|
|
|
|
|
|
| |
Patch by Dave Zarzycki!
llvm-svn: 129189
|
|
|
|
| |
llvm-svn: 128281
|
|
|
|
| |
llvm-svn: 128001
|
|
|
|
|
|
| |
a while back.
llvm-svn: 127866
|
|
|
|
|
|
|
| |
Find out that our C++0x status has only one field for noexcept expression and specification together, and that it was accidentally already marked as fully implemented.
This completes noexcept specification work.
llvm-svn: 127701
|
|
|
|
| |
llvm-svn: 126280
|
|
|
|
|
|
| |
templates, a C++0x feature.
llvm-svn: 124973
|
|
|
|
| |
llvm-svn: 124820
|
|
|
|
|
|
|
|
|
|
| |
catch:
lock_guard(my_mutex);
declares a variable instead of creating a temporary.
llvm-svn: 124398
|
|
|
|
|
|
| |
documentation.
llvm-svn: 124322
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
authors to write
class __attribute__((forbid_temporaries)) Name { ... };
when they want to force users to name all variables of the type. This protects
people from doing things like creating a scoped_lock that only lives for a
single statement instead of an entire scope.
The warning produced by this attribute can be disabled by
-Wno-forbid-temporaries.
llvm-svn: 124217
|
|
|
|
| |
llvm-svn: 124176
|
|
|
|
| |
llvm-svn: 124118
|
|
|
|
| |
llvm-svn: 124106
|
|
|
|
| |
llvm-svn: 124098
|
|
|
|
| |
llvm-svn: 123860
|
|
|
|
| |
llvm-svn: 120254
|
|
|
|
|
|
| |
what to use" in the message :)
llvm-svn: 118612
|
|
|
|
|
|
|
| |
tweak the documentation for deprecation-with-message. Provide __has_feature
tests for both. rdar://problem/8605692
llvm-svn: 118435
|
|
|
|
|
|
| |
__has_builtin.
llvm-svn: 116906
|
|
|
|
|
|
| |
bit by me).
llvm-svn: 116122
|
|
|
|
|
|
|
| |
And its documentation.
Finishes off // rdar: // 6734520.
llvm-svn: 115862
|
|
|
|
|
|
|
|
|
|
| |
auto f(int) -> int
from Daniel Wallin!
(With a few minor bug fixes from me).
llvm-svn: 115322
|
|
|
|
| |
llvm-svn: 112671
|
|
|
|
| |
llvm-svn: 103222
|